Introdução
Experimentos
Cleidson de Souza
LABES - DI - UFPA
[email protected]
Vantagens
!
Ajudar a construir uma base de conhecimento
confiável e reduzir assim incertezas sobre quais
teorias, ferramentas e metodologias são mais
adequadas para certos contextos;
!
!
!
!
!
!
Exemplo
!
!
Ex: o efeito de determinados medicamentos;
Pode acelerar o processo de escolhas, eliminando
abordagens inúteis e suposições errôneas;
Devido às rápidas mudanças tecnológicas na
computação, experimentos podem ajudar os
pesquisadores a explorar a consequência destas
mudanças;
Os experimentos são provavelmente o
método científico mais famoso. São
baseados na mesma abordagem e tradição
das ciências naturais como física e química;
Eles oferecem um modo sistemático,
disciplinado, e controlado de avaliação.
Idealmente, novos métodos, técnicas,
linguagens e ferramentas não deveriam ser
sugeridos, publicados ou vendidos sem
experimentação e validação.
A produtividade dos programadores aumenta
com a utilização de dois monitores?
Projeto:
!
!
!
!
!
10 programadores usando 1 monitor
10 programadores usando 2 monitores
Programar um problema de dificuldade média em
1 hora
Análise dos programas ao final do prazo
Controle: habilidade de programação, IDE,
tarefa a ser executada, produtividade
(qualidade do código / número de erros, etc
etc etc.
Componentes de um
Experimento
Componentes …
!
!
Variáveis independentes referem-se à entrada do
experimento e apresentam a causa que afeta o resultado
do experimento. Também são chamados fatores;
Os valores dos fatores são chamados tratamentos;
!
!
!
Número de monitores usados;
Nível de dificuldade do programa a ser escrito;
Variáveis dependentes referem-se à saída do
experimento e apresentam o efeito que é causado pelos
fatores do experimento;
!
“produtividade” dos programadores --> operacionalizando, uma
função do tempo necessário para resolver a tarefa e da qualidade
do código produzido;
Um parênteses
Operacionalização (importante!)
!
!
Todos os conceitos considerados em um tratamento
precisam ser “operacionalizados”, ou seja, convertidos
em valores concretos que possam ser efetivamente
medidos sem ambigüidade!
produtividade” dos programadores --> uma função do
tempo necessário para resolver a tarefa e da qualidade
do código produzido;
!
!
Tempo necessário para resolver a tarefa --> cronometrar cada
indivíduo;
Qualidade do código produzido --> número de bugs encontrados
no código;
!
Bugs --> não conformidade com o resultado do teste;
!
E se eu não puder testar o código?
Componentes …
!
!
Durante a execução do experimento, os tratamentos
são aplicados aos objetos e os resultados estão
sendo avaliados.
Os participantes ou sujeitos são os indivíduos que
foram especialmente selecionados da população
para conduzir o experimento;
!
!
Os programadores;
Para se generalizar os resultados do tratamento para
uma população, o conjunto de participantes tem de
ser representativo daquela população.
!
Alunos do CBCC aumentaram a sua produtividade, então
posso argumentar que 2 monitores aumentariam a
produtividade de qualquer programador?
Componentes …
!
O contexto descreve as condições em que o
experimento está sendo executado:
!
In-vitro vs. In-vivo: laboratório sob condições
controladas ou em uma situação real;
!
!
Alunos vs. profissionais: os participantes do
experimento;
!
!
Ver classificação de [MacGrath, 2000];
Possibilidade de generalização?
“Toy problem” vs. problema real: O tamanho e
complexidade do problema sendo executado.
!
Possibilidade de generalização?
Terminologia
!
Grupo de Controle
!
!
!
!
Grupo de participantes que não recebe tratamento;
O efeito do tratamento é calculado comparando o
grupo tratado com o grupo de controle;
!
Cegar (Blinding):
!
Prevenir as pessoas envolvidas no tratamento de
saber que participantes receberam qual tratamento
!
Os participantes;
As pessoas administrando o tratamento;
!
As pessoas calculando os resultados;
!
!
Placebo:
Um tratamento sem resultado.
!
Ex: Pílulas de farinha;
Efeito Placebo:
Resposta causada nas pessoas pela
simples idéia de que foram tratados;
Cegar Duplamente (Double blind);
Princípio Fundamental
Agrupar o que for possível e tornar
aleatório o que não for possível (Block
what you can and randomize what you
cannot.)
Projeto de Experimentos
!
Agrupar para garantir comparações com respeito a
fatores que são reconhecidamente importantes, ou
seja, agrupar para fazer comparações entre
grupos relativamente similares de pessoas
!
Não se deve comparar excelentes programadores de
um lado e péssimos programadores de outro;
Projeto …
!
Randomizar, ou tornar aleatório, outros fatores
que não se sabe se podem ter efeito no resultado
!
!
!
Conceituação Teórica
Idade e sexo dos programadores;
Randomizar também permite que se possa
calcular a probabilidade dos resultados conterem
erros;
A aleatoriedade implica que a alocação dos
objetos e dos participantes e a ordem da
execução dos testes experimentais são aleatórias.
Conceituação …
!
!
!
Um experimento geralmente é formulado para
testar uma hipótese;
A hipótese principal se chama hipótese nula e
declara que não há nenhum relacionamento
estatisticamente significante entre a causa e o
efeito;
Estatisticamente significante - a probabilidade que
o resultado de um experimento ocorreu por acaso
(não por causa do tratamento);
Conceituação …
!
Em um experimento, definem-se:
!
Hipótese nula (H0): não existe diferença na
produtividade dos programadores;
!
!
A hipótese nula mais comum é a que diz “que não
existe diferença” entre duas abordagens, mas
existem outras.
Hipótese alternativa (H1): programadores que
usam 2 monitores tem maior produtividade
que programadores que usam 1 monitor;
Conceituação …
!
!
O objetivo do experimento é rejeitar a
hipótese nula em favor das hipóteses
alternativas (H1,H2, etc);
A decisão sobre a rejeição da hipótese nula
é tomada baseada nos resultados da sua
verificação com um teste estatístico que
calcula o “valor-p” (p-value);
!
Chi-quadrado, Estudante t-teste (student’s ttest), Correlações, etc.
Conceituação …
!
!
!
Um alto valor de p não implica que a hipótese
nula (H0) é verdadeira;
Um valor-p pequeno é evidência de um efeito
do tratamento, mas não diz nada sobre o
tamanho deste efeito;
Em resumo, você NUNCA pode afirmar com
certeza absoluta que o tratamento é o fator de
decisão;
Conceituação …
!
!
!
(p<.05), ou seja, existe 5% de probabilidade
que a produtividade de programadores com 2
monitores seja maior que a produtividade de
programadores com 1 monitor ocorra por
acaso (ou por outros fatores);
Quanto menor o valor-p, maior a evidência
contra a hipótese nula (H0);
Quanto menor for o p, maior certeza você pode
ter que a diferença ocorreu devido ao
“tratamento” e não por acaso;
Conceituação …
TABLE 9.3.2 Interpreting the S ize of a P -Value
Approximate size
of P -Value
> 0.12
(12%)
0.10
(10%)
0.05
(5%)
0.01
(1%)
0.001 (0.1%)
Translation
No evidence against H0
Weak evidence against H0
S ome evidence against H0
S trong evidence against H0
Very S trong evidence against H0
These translations are the authors' and are not universally
accepted. For further discussion, see the surrounding text.
Testes Estatísticos
!
Tipos de Variáveis
A escolha do teste estatístico depende:
!
!
!
Do tipo das variáveis (independentes e
dependentes);
Da distribuição destas variáveis
(distribuição normal, gaussiana, etc);
Etc.
Types of Variables
Quantitative
(measurements and counts)
Continuous
Discrete
(few repeated values) (many repeated values)
Figure 2.1.1
Qualitative
(define groups)
Categorical
(no idea of order)
Ordinal
(fall in natural order)
Tree diagram of types of variable.
From Chance Encounters by C.J. Wild and G.A.F. Seber, © John Wiley & Sons, 2000.
Em resumo, os passos são:
!
!
!
!
!
Definir objetivos do experimento;
Definir hipóteses nula e alternativas;
Operacionalizar as variáveis;
Executar o experimento;
Calcular resultados;
!
!
!
Escolher testes estatísticos de acordo com as
variáveis;
Comparar com a hipótese Nula;
Escrever;
!
Não é uma boa prática criar hipóteses
no decorrer do processo de análise
!
Quando se testam diversas hipóteses,
existe uma probabilidade de se encontrar
valores estatisticamente significantes
devido ao acaso…
Conclusões
!
!
!
Experimentos são, simplificadamente, o principal
método de pesquisa científico adotado por
diversas ciências;
Porém, eles são usados raramente na
computação. Acredita-se que com a utilização
destes, a computação se torne mais próxima de
uma ciência do que de uma engenharia;
Entretanto, lembre-se que experimentos não
provam o efeito de algo com absoluta certeza.
Eles apenas nos oferecem a certeza de que outros
fatores (tratados) não são responsáveis pelo efeito
causado.
Download

Experimentos