Вы находитесь на странице: 1из 23

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/319532129

Fundamentos de Estatística para Análise de Desempenho

Chapter · April 2017

CITATIONS READS

0 145

3 authors:

Aishameriane Venes Schmidt Laércio Lima Pilla


Federal University of Santa Catarina Federal University of Santa Catarina
8 PUBLICATIONS   68 CITATIONS    56 PUBLICATIONS   266 CITATIONS   

SEE PROFILE SEE PROFILE

Francieli Zanon Boito


National Institute for Research in Computer Science and Control
33 PUBLICATIONS   82 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Energy-efficient High-performance Computing View project

Survey on Parallel I/O View project

All content following this page was uploaded by Aishameriane Venes Schmidt on 07 September 2017.

The user has requested enhancement of the downloaded file.


Minicursos 3

Capítulo

1
Fundamentos de Estatística
para Análise de Desempenho

Aishameriane Venes Schmidt — aishameriane.schmidt@posgrad.ufsc.br1


Francieli Zanon Boito — francieli.boito@posgrad.ufsc.br2
Laércio Lima Pilla — laercio.pilla@ufsc.br3

Resumo

Este minicurso tem por objetivo prover a base de conhecimentos estatísticos ne-
cessária para que pesquisadoras e pesquisadores da área de computação de alto desem-
penho possam conduzir análises de desempenho adequadamente. O uso de uma meto-
dologia científica rigorosa e de uma metodologia estatística adequada caracterizam uma
pesquisa de alta qualidade, cujos resultados são relevantes e reprodutíveis.
Focando na etapa de análise de resultados, são discutidos métodos descritivos —
usados para obter características dos dados — e métodos inferenciais — usados para
extrapolar as características observadas em uma amostra para toda a população. O
texto provê a fundamentação teórica, que é complementada por exemplos, na linguagem
R, disponíveis abertamente em um repositório de suporte.

1 Aishameriane é Bacharel em Estatística pela Universidade Federal do Rio Grande do Sul — UFRGS
(2010). Atuou como estatista em áreas de inteligência de mercado, produtos financeiros para varejo, sis-
temas de recomendação e em pesquisa nas áreas de estatística aplicada à genética médica e estatística
matemática. Atualmente cursa o Bacharelado em Economia na Universidade do Estado de Santa Catarina
(UDESC) e o Mestrado em Economia com ênfase em Finanças e Mercado de Capitais na Universidade
Federal de Santa Catarina (UFSC).
2 Francieli é Doutora em Ciência da Computação pela UFRGS e pela Université Grenoble Alpes, na

França (2015), e Bacharel em Ciência da Computação pela UFRGS (2009). Atualmente realiza um pós-
doutorado na UFSC. Suas principais áreas de pesquisa são E/S paralela, sistemas de arquivos paralelos e
escalonamento de operações de E/S
3 Laércio é Doutor em Ciência da Computação pela UFRGS e pela Université Grenoble Alpes, na

França (2014), e Bacharel em Ciência da Computação pela UFRGS (2009). Atualmente é professor na
UFSC, atuando nas áreas de balanceamento de carga, tolerância a falhas em processadores gráficos e para-
lelização de aplicações.
4 Fundamentos de Estatística para Análise de Desempenho

1.1. Introdução
Métodos estatísticos para a avaliação e mensuração de fenômenos são utilizados nas mais
diversas áreas, como na medicina, com protocolos específicos para desenvolvimento de
novas drogas e impacto de tratamentos, e ciências econômicas, através de métodos econo-
métricos. Entretanto, uma análise da literatura em computação de alto desempenho revela
que métodos estatísticos são pouco aplicados nessa área. Para medir o desempenho dos
seus sistemas (ou outra métrica, como o consumo energético), pesquisadores e pesquisa-
doras frequentemente apresentam apenas a média aritmética de um número de repetições,
algumas vezes acompanhada do desvio padrão. Outras “heurísticas” que são encontra-
das em diversos trabalhos da área incluem descartar a maior e a menor mensurações ou
selecionar apenas os N melhores resultados [Lilja 2012, Georges et al. 2007].
Tempo médio (segundos)

Algoritmo Original Novo Algoritmo


60

Tempo (segundos)
56.78
38.80 40

20

0
Algoritmo Original Novo Algoritmo
Repetições

(a) Comparação de tempos médios (b) Detalhamento das repetições

Figura 1.1: Comparação de dois algoritmos pelo tempo médio

A Figura 1.1 traz um exemplo de como essa metodologia simplista pode levar
a conclusões enganosas. O tempo de execução de dois algoritmos é avaliado a fim de
mensurar ganhos trazidos pelo novo algoritmo. Na Figura 1.1a, as médias aritméticas de
diversas repetições são comparadas. Desse gráfico, seria possível alegar equivocadamente
que o novo algoritmo é 31% mais rápido do que o original. No entanto, se estudarmos
os tempos de todas as repetições (Figura 1.1b), podemos ver que o tempo médio do novo
algoritmo foi resultado de quatro repetições com tempo muito abaixo das demais. Além
disso, a maior parte das repetições apresentou resultado similar ao algoritmo original.
A validade científica das conclusões de uma pesquisa depende de uma metodolo-
gia rigorosa de experimentação e análise de resultados. É particularmente importante que
os resultados possam ser reproduzidos e, portanto, representem o comportamento espe-
rado dos sistemas avaliados. Para tal, devemos aproveitar de métodos estatísticos — uma
área do conhecimento extensivamente estudada — ao invés de inventar metodologias.
Neste curso abordaremos uma categoria específica de métodos estatísticos chama-
dos de testes de hipóteses (sempre sob o enfoque frequentista), com o objetivo de prover
a base necessária para a pesquisa em alto desempenho com uma análise adequada de
resultados. Devido a limitações da dimensão do minicurso, trataremos de conceitos bási-
cos em linhas gerais, provendo juntamente referências para conteúdos avançados. Além
disso, exemplos de códigos na linguagem de programação R e conjuntos de dados estão
Minicursos 5

disponíveis em um repositório de suporte 4 .

1.1.1. Métodos Descritivos e Métodos Inferenciais


Os métodos estatísticos, em sua grande maioria, podem ser classificados em dois grupos:
métodos descritivos e métodos inferenciais. Os métodos descritivos tratam de descrever
o conjunto de dados sem realizar extrapolações para outras situações. Eles são utiliza-
dos principalmente para a caracterização dos dados através do uso de informações ou
medidas descritivas, como a média, desvio padrão e quartis. Outras técnicas descritivas
comuns são gráficos, que permitem ter uma visão mais ampla dos dados obtidos e, em
conjunto com as medidas descritivas, auxiliam na decisão sobre quais métodos inferen-
ciais serão utilizados. A diferença entre os métodos descritivos e inferenciais está na
extrapolação das informações de uma amostra para a população. Para entender melhor o
que é isto, vamos definir alguns conceitos necessários.
A população-alvo ou população é todo o conjunto de interesse do estudo. Por
exemplo, se determinada pesquisa deseja avaliar o comportamento de algoritmos de or-
denação com complexidade de pior caso ∈ O(n2 ) (aqui chamados de algoritmos de or-
denação quadráticos, ou A.O.Q.), nossa população é composta de todos os algoritmos
desse tipo existentes (excluindo algoritmos de ordenação com complexidade de pior caso
∈ O(n log n), por exemplo). Na maioria das pesquisas, investigar a população em sua to-
talidade é inviável tanto por questões de custo como de tempo (por exemplo, o tempo de
máquina para todos os experimentos seria excessivamente longo, impedindo a execução
de outros experimentos). Assim, ao invés de coletar dados de todos os A.O.Q., podemos
investigar uma parcela da população, que chamaremos de amostra.
A amostra é sempre composta de elementos que fazem parte da população, porém
não são todos os elementos da população. No caso dos A.O.Q., poderíamos sortear n
algoritmos entre os N A.O.Q. existentes (n ∈ N < N). Neste curso não serão discutidas
técnicas de seleção da amostra ou técnicas de amostragem, assim como a maior parte
dos textos sobre inferência estatística pressupõem que a leitora ou o leitor possui uma
amostra representativa da população. Na Seção 1.1.2 discutiremos brevemente sobre
características desejáveis dos elementos da amostra (ou observações).
As características da população, como “tempo médio de execução em um Rasp-
berry Pi dos N A.O.Q. existentes” ou ainda “quantidade de memória ocupada pelos N
A.O.Q.” são chamadas de parâmetros populacionais ou simplesmente parâmetros5 . Es-
sas informações são, na maioria das vezes, desconhecidas e de difícil acesso. Já as carac-
terísticas da amostra, “tempo médio de execução em um Raspberry Pi dos n A.O.Q. que
compõe a amostra coletada” ou ainda “quantidade de memória ocupada pelos n A.O.Q.
da amostra” são informações que são mais acessíveis em pesquisas e são chamadas de es-
timativas. Sendo assim, métodos de inferência estatística visam, através das estimativas
obtidas na amostra, inferir algo a respeito dos parâmetros populacionais6 .

4 https://github.com/llpilla/estatistica2017erad
5 Neste texto, “parâmetro” sempre será empregado para se referir a uma característica da população.
6É usual utilizar letras gregas para denotar os parâmetros (que são desconhecidos). Os estimadores são
denotados por um acento circunflexo (chamado de “chapéu”) ou então, como no caso da média amostral (X)
e variância amostral (S2 ), por letras latinas.
6 Fundamentos de Estatística para Análise de Desempenho

Uma vez que é possível coletar diversas amostras de uma mesma população, a
palavra estimador serve para designar uma equação cujas entradas serão os valores amos-
trais e a estimativa é quando calculamos o estimador para uma amostra específica.

Exemplo 1.1. Suponha que você tem uma população de N A.O.Q. e coleta dados do
tempo de execução (em uma dada plataforma e com uma dada carga de trabalho) de 3
deles (N > 3) — por exemplo, Bubble Sort, Insertion Sort e Quick Sort — e obtém os
valores (55, 65, 54). Um estimador para o tempo de execução populacional (µ) dos N
3
1
algoritmos é a média amostral dos tempos, dada por X̄ = 3 ∑ Xi . Utilizando os tempos
i=1
da amostra7 , chegamos ao valor de x̄ = 58 como nossa estimativa pontual para µ.

1.1.2. Estabelecendo Hipóteses e Planejando Experimentos


Os experimentos são planejados tendo em vista os objetivos da pesquisa, que pode nor-
malmente ser formulada através de uma hipótese, como “o uso da estrutura de dados heap
melhora o desempenho de operações sobre uma fila de prioridade”. Essa hipótese será
testada nos experimentos, que devem ser formulados de forma não tendenciosa. Nesse
caso, o objetivo dos experimentos não seria “provar que heap é a melhor estrutura para
fila de prioridade”, mas “avaliar diferentes estruturas de dados para implementação de
uma fila de prioridade”. Portanto, o ambiente experimental, a carga de trabalho e todas as
configurações devem ser escolhidas de forma justa, e não para favorecer alguma opção.
Além disso, devem refletir o uso real dos sistemas comparados [Mellor-Crummey 2005].
As métricas avaliadas devem ser relevantes para o problema e todos os fatores
com alguma influência devem ser analisados. Técnicas de planejamento de experimentos
devem ser utilizadas para decidir os testes a serem executados tendo em vista os objetivos
do experimento. Essas técnicas não serão abordadas nesse curso, então para mais detalhes
recomendamos a leitura de [Lilja 2012] e do material disponível em [Legrand 2016].
O mesmo programa, com as mesmas entradas, na mesma máquina, vai apresentar
alguma variabilidade no tempo de execução. Isso acontece por diversos fatores, tanto
relacionados ao ambiente — DVFS, funcionamento da cache, interferência do sistema
operacional, execução especulativa, etc. — quanto ao método de mensuração — ruídos,
imprecisão, etc. [Touati et al. 2013]. Uma estratégia para facilitar a análise posterior é
minimizar tanto quanto possível os fatores que causam variabilidade: garantir que outros
usuários não estão usando a máquina ao mesmo tempo, “limpar” a cache entre execuções
(ou evitar o seu uso em testes de acesso ao disco), entre outras. É claro que essas técnicas
só devem ser usadas quando fizerem sentido no contexto do experimento — por exemplo,
podemos estar interessados no desempenho de uma aplicação sob concorrência.
É importante observar que muitas análises estatísticas da literatura (inclusive as
deste curso) pressupõem que os dados são provenientes de uma amostra aleatória 8 , o
7 Por convenção, letras maiúsculas denotam os valores possíveis da amostra, que ainda são consideradas
variáveis aleatórias. Quando uma amostra é coletada, perde-se a característica aleatória, passando a ser uma
constante, então utilizamos letras minúsculas.
8 Formalmente, dizemos que se as variáveis aleatórias X , X , . . . , X têm distribuição conjunta f (x ) ·
1 2 n 1
f (x2 ) · . . . · f (xn ), onde f (·) é a função densidade de probabilidade de cada Xi , então X1 , . . . , Xn é uma
amostra aleatória (a.a.). A questão da independência é porque, se variáveis aleatórias são independentes,
Minicursos 7

que implica que as observações são independentes entre si. Isso significa que não é cor-
reta a abordagem de executar um programa N vezes, na sequência, para observar o seu
desempenho. Sistemas computacionais possuem diversos componentes que procuram se
adaptar à carga de trabalho, de forma que cada execução afeta o desempenho da próxima e
portanto elas não são independentes. Uma abordagem útil nesse caso é executar todos os
testes — com diferentes aplicações, diferentes configurações, etc. — em ordem aleatória.
Outra boa prática é a coleta do máximo possível de informações relevantes do
ambiente experimental: que usuários estão ativos, que processos estão executando, versão
dos pacotes de software utilizados, variáveis de ambiente, etc. Essa informação pode ser
valiosa depois, quando for necessário investigar a causa de um resultado inesperado.

1.1.3. Analisando os Resultados


Este curso foca nos procedimentos a serem adotados uma vez que os dados da amostra
já tenham sido obtidos. Primeiramente aplicamos métodos descritivos, discutidos na Se-
ção 1.2, para investigar a qualidade e as características das informações. Partimos então
para métodos inferenciais, discutidos na Seção 1.3, a fim de testar hipóteses e extrapolar
as informações obtidas para toda a população. Essa parte da análise é feita em etapas,
testando primeiramente a normalidade (Seção 1.3.1) para definir se devem ser emprega-
dos métodos paramétricos (Seções 1.3.2, 1.3.3 e 1.3.4) ou não paramétricos (Seção 1.3.5).
Adicionalmente, métodos para comparação de três ou mais amostras são discutidos bre-
vemente na Seção 1.3.6, e a Seção 1.3.7 discute a relação dos métodos apresentados com
os intervalos de confiança. A Seção 1.4 conclui este documento.

1.2. Métodos Descritivos


Os métodos descritivos têm função essencial em qualquer estudo que vise investigar al-
guma ocorrência ou fenômeno utilizando dados. Sem uma boa análise descritiva, todas
as outras análises podem ser comprometidas, gerando retrabalho e desperdício de recur-
sos. As análises descritivas podem ser feitas através do cálculo de algumas informações
ou ainda com o uso de gráficos, podendo ser aplicadas tanto às variáveis isoladamente
(análise univariada) ou de maneira conjunta (análises bivariadas ou multivariadas).
Um exemplo clássico sobre a importância da realização da análise descritiva dos
dados de forma completa é o chamado quarteto de Anscombe [Anscombe 1973]. Frank
Anscombe introduziu em seu artigo de 1973 quatro conjuntos de dados, representados
na Figura 1.2, que possuem as mesmas características descritivas — média, mediana,
desvio padrão, correlação entre x e y — e que produzem a mesma reta de regressão linear.
Apesar das similaridades nas medidas, existem diferenças visuais grandes entre cada os
conjuntos, o que reforça a necessidade de uma inspeção completa nos dados.

1.2.1. Análise Univariada


O primeiro passo para realizar a análise descritiva é investigar isoladamente cada uma das
variáveis do conjunto de dados. O objetivo é avaliar a qualidade das informações (pre-
sença de dados discrepantes, faltantes ou não condizentes com o fenômeno investigado)
e também suas características (formato, distribuição, etc).
então a sua função densidade de probabilidade é o produtório das densidades individuais.
8 Fundamentos de Estatística para Análise de Desempenho

Parâmetros e estimadores se dividem principalmente em medidas de: posição ou


tendência central, de dispersão ou variabilidade e de assimetria. Elas “resumem” os dados
quantitativos9 , uma vez que fazer análises apenas das informações brutas é inviável.
As principais medidas de tendência central são a média10 , a moda e a mediana. A
média é amplamente empregada pela simplicidade de cálculo e pela interpretabilidade di-
reta de seu resultado. A média populacional e a média amostral são calculadas da mesma
forma. A moda e a mediana, em situações onde a distribuição dos dados é simétrica (os
dados se distribuem de maneira igual à direita e à esquerda da média), serão iguais à mé-
dia. Elas são portanto mais informativas nas situações onde há assimetria dos dados. A
primeira informa sobre o dado mais frequente (valor que mais se repete) da distribuição.
Já a mediana é o valor que separa os dados em dois grupos: os 50% menores e os 50%
maiores. Não há diferença no cálculo amostral ou populacional em termos da equação
utilizada e muitas linguagens de programação já têm implementado seu cálculo. Para o
procedimento do cálculo, uma referência é o capítulo 6 de [Barbetta 2010].
Exemplo 1.2. Temos os tempos de execução de 5 repetições de dois algoritmos — A
e B — representados, respectivamente, por tA e tB . Os dados são: (10, 12, 13, 15, 100)
e (30, 30, 30, 30, 30). As médias amostrais serão idênticas, com t A = t B = 30, porém a
mediana do algoritmo A (13) é 57% menor que o tempo mediano do algoritmo B (30). A
interpretação da mediana é: “os 50% menores tempos do A são de até 13 u.t. (unidades
de tempo)” ou “metade dos tempos de execução do A foram de até 13 u.t.”.

Medianas são úteis quando lidamos com dados que apresentam “caudas” (valores
extremos com baixas ocorrências), pois essa medida não sofre influência dos dados dis-
crepantes. Complementarmente, podemos analisar os outros quartis da variável, que são
os valores que dividem o conjunto de dados (ordenados) em 4 partes de mesmo tamanho.
Para um conjunto de n observações de uma variável, o primeiro quartil separa os 25% me-
nores valores, o segundo (que é a mediana) separa os próximos 25% e o terceiro quartil
9 Focamos em métodos para dados quantitativos, pois é o caso mais comum em análise de desempenho.
Uma referência para análise de dados categóricos, para variáveis nominais ou ordinais, é [Agresti 2007].
10 Neste texto, “média” se refere sempre à média aritmética.

Conjunto 1 Conjunto 2 Conjunto 3 Conjunto 4

12.5

10.0
y=3+0.5x y=3+0.5x y=3+0.5x y=3+0.5x
Y

7.5
Média(X) = 9.00 Média(X) = 9.00 Média(X) = 9.00 Média(X) = 9.00
D.P.(X) = 3.31 D.P.(X) = 3.31 D.P.(X) = 3.31 D.P.(X) = 3.31
5.0 Média(Y) = 7.50 Média(Y) = 7.50 Média(Y) = 7.50 Média(Y) = 7.50
D.P.(Y) = 2.03 D.P.(Y) = 2.03 D.P.(Y) = 2.03 D.P.(Y) = 2.03
cor(X,Y) = 0.82 cor(X,Y) = 0.82 cor(X,Y) = 0.82 cor(X,Y) = 0.82

6 9 12 15 18 6 9 12 15 18 6 9 12 15 18 6 9 12 15 18
X

Figura 1.2: O quarteto de Anscombe [Anscombe 1973]


Minicursos 9

separa os 75% valores mais baixos dos 25% mais altos. Uma variação é o uso dos decis,
que dividem os dados em 10 partes, ou dos percentis, que dividem em 100 partes.
As medidas de variabilidade medem o “espalhamento” dos dados: o quão con-
centrados ou dispersos ao longo de um ponto (usualmente a média) estão. Geralmente
é desejável que os dados tenham pequena variabilidade, pois isso significa uma menor
incerteza sobre os valores possíveis de serem obtidos. Uma das medidas de variabilidade
mais conhecidas é a variância, que calcula o quadrado das distâncias entre cada ponto e a
média e divide pelo total de dados disponíveis, isto é, a variância é a média dos quadrados
dos desvios em relação à média. O problema em utilizar a variância é que ela não tem a
mesma dimensão que a média. Se a variável coletada é tempo em segundos, a variância
estará em segundos ao quadrado, o que dificulta uma comparação direta. Sendo assim,
em geral, utilizamos o desvio padrão, que é a raiz quadrada (positiva) da variância.
Ao contrário das medidas de tendência central, a variância e o desvio padrão têm
cálculo diferente para amostra e população. Essa diferença — no numerador — serve
para que os estimadores das medidas populacionais sejam não viesados11 . Na prática, à
medida que o tamanho da amostra aumenta, isso faz pouca diferença no cálculo.

Exemplo 1.3. Considere os dados do Exemplo 1.2. A variância amostral


q do algoritmo A,
s2A será aproximadamente 1534, 5 u.t.2 com desvio padrão d pA = s2A ≈ 39, 17. Já para
o algoritmo B, temos s2B = d pB = 0 (não há variabilidade para constantes). Isso indica
que os tempos do algoritmo B estão concentrados em um único valor enquanto que o A
apresentou tempos que têm grande variabilidade em torno de sua média.

Uma maneira usual de comparar variáveis que tenham médias muito diferentes ou
até mesmo unidades de medida distintas é através do coeficiente de variação (C.V). Ele
é dado pela razão entre o desvio padrão e a média e funciona como uma medida auxiliar
para avaliar a variabilidade de uma variável quando comparada com outras.
Além das medidas acima citadas, é importante fazer uma inspeção visual nos da-
dos, utilizando gráficos. Essa inspeção busca compreender a natureza dos dados quanto a
assimetria, presença de dados discrepantes ou até anomalias (como tempos negativos).
Para variáveis contínuas, os gráficos mais utilizados são o histograma e o boxplot.
Ambos possibilitam visualizar como os dados se distribuem ao longo dos seus valores,
com a diferença de que, enquanto o boxplot permite localizar os quartis e outliers, o
histograma permite verificar a concentração de dados em determinadas faixas de valores.

Exemplo 1.4. Considere o cenário do Exemplo 1.2 porém agora com 100 repetições
de cada algoritmo. Os dados obtidos ainda apresentam médias de tempo de execução
t A = t B = 30. Ao compararmos os dois boxplots (Figura 1.3a), percebemos que o al-
goritmo B apresenta valores mais dispersos (pois a “caixa” é maior) e também mais
valores discrepantes (pontos acima da linha do gráfico). Já o algoritmo A apresentou
uma quantidade menor de valores discrepantes e também menor variabilidade. Observe
que a linha preta, que indica a mediana, está em um valor inferior do eixo y para as
11 Um estimador θ̂ de um parâmetro θ é dito não viesado quando sua esperança é igual ao valor do
estimador, isto é, E[θ̂ ] = θ .
10 Fundamentos de Estatística para Análise de Desempenho

Tempo de execução (u.t.)

Número de ocorrências
200

150 20
A
100
10 B
50

0 0
A B 0 50 100 150 200
Algoritmo Tempo de execução (u.t.)

(a) Boxplot (b) Histograma

Figura 1.3: Gráficos para variáveis quantitativas (Exemplo 1.4)

repetições do algoritmo B, mas mesmo assim, neste exemplo, seu desempenho pode ser
considerado pior. Os histogramas (Figura 1.3b) reforçam que de fato as repetições do B
apresentam uma cauda à direita (causada em parte pelos outliers identificados no box-
plot) e maior amplitude do gráfico, se comparado com a distribuição das repetições do
algoritmo A. É importante reforçar que embora neste exemplo os dois gráficos estejam
quase redundantes, eles não são substitutos perfeitos um do outro na análise de variáveis.

1.2.2. Análise Bivariada (e Multivariada)


Após verificar a integridade e características das variáveis via análise univariada, passa-
mos a estudar as relações entre as variáveis para auxiliar nas análises inferenciais.
O coeficiente de correlação de Pearson (ρ) é uma das mais conhecidas medidas
descritivas para relacionar duas variáveis quantitativas. Este coeficiente mede o grau de
associação linear entre duas variáveis, que pode ser pensado como a resposta da seguinte
pergunta: “se X aumenta, qual o comportamento de Y ?”. Os valores que ρ assumem
estão no intervalo [−1, 1], onde quanto maior a magnitude, mais forte a relação. O sinal
indica a direção da relação entre as variáveis: valores positivos indicam que as variáveis
crescem conjuntamente e valores negativos indicam uma relação inversa. O cálculo da
correlação pode ajudar, por exemplo, para determinar quais variáveis serão incluídas em
um próximo experimento ou determinar covariáveis em um modelo de regressão.
É importante perceber, no entanto, que o coeficiente de correlação tem suas defici-
ências: no exemplo do quarteto de Anscombe (Figura 1.2), os quatro conjuntos de dados
apresentam a mesma correlação linear (0, 82, que é considerada uma correlação alta),
porém claramente apenas nos conjuntos 1 e 2 percebe-se que de fato a variável X está
aumentando ao mesmo tempo que a variável Y . No conjunto de dados 2 elas apresentam
uma relação quadrática e no conjunto 4, com a exceção do outlier, as variações em Y não
estão relacionadas com as variações em X, que é constante.
Outra ressalva importante, e que se aplica a todos os métodos que abordaremos
neste curso, é de que a presença de correlação não implica que existe uma relação de
causa e efeito nas variáveis12 . Este fenômeno de presença de correlação alta mas sem
12 https://xkcd.com/552/
Minicursos 11

relação real entre as variáveis é chamado de correlação espúria (spurious correlation13 ).


Outro coeficiente de correlação que pode ser utilizado é o coeficiente de correla-
ção de Spearman (rs ). Da mesma forma que o ρ, ele busca medir a relação entre duas
variáveis (com a exigência de que sejam pelo menos categóricas ordinais). Ele é uma
medida mais flexível que o ρ pois além de permitir escalas ordinais, permite também ava-
liar relações que não apenas sejam lineares. Isto ocorre por ser uma medida baseada em
postos. Para ver os detalhes do seu cálculo, consulte [Siegel and Castellan 2006].
Ambos coeficientes de correlação podem ser utilizados para inferir se as medidas
têm correlação na população, a partir dos dados da amostra. Para isso, a amostra deve
ser aleatória e no, caso do coeficiente de Pearson, é preciso que a variável na população
seja normalmente distribuída. Além disso, é necessário calcular o nível de significância
do coeficiente para verificar se é estatisticamente diferente de zero. Voltaremos a este
assunto (significância) mais adiante no texto.
Graficamente, podemos analisar o comportamento de uma variável contínua com
relação a outra categórica utilizando boxplots, da mesma forma como foi feito no Exem-
plo 1.4: cada boxplot corresponde a uma “categoria” e comparamos como que a variável
contínua se comporta em cada uma delas. Já o gráfico recomendado para analisar duas
variáveis contínuas é o gráfico de dispersão (scatterplot): cada ponto do gráfico corres-
ponde a um ponto (x, y), onde x é o valor que a primeira variável assume e y o valor da
segunda variável. Um exemplo de gráfico de dispersão são os gráficos do quarteto de Ans-
combe (Figura 1.2) — com exceção da reta que está plotada neles. Para montar o gráfico
de dispersão, não basta “juntar” duas variáveis contínuas em um gráfico: é necessário que
ambas sejam observadas em uma mesma unidade amostral. Por exemplo, se temos um
processador A, podemos mensurar o tempo de execução de 100 repetições de uma rotina
ao mesmo tempo que avaliamos a quantidade de faltas de páginas. O gráfico de disper-
são não poderia ser utilizado para comparar os tempos de execução de dois algoritmos
que fossem executados de maneira independente (não relacionada). Para outras medidas
descritivas, recomendamos a leitura dos capítulos 4 a 6 de [Barbetta 2010].

1.3. Métodos Inferenciais


Os métodos inferenciais permitem aos pesquisadores e pesquisadoras fazerem extrapo-
lações de uma amostra para uma população-alvo, sem que para isso precisem realizar
um censo. Em outras palavras, os métodos inferenciais são procedimentos (cálculos) que
utilizam as informações da amostra para inferir as características da população.
Existem duas grandes subaéreas da inferência estatística que são a estimação de
parâmetros e os testes de hipóteses. Neste curso abordamos exclusivamente os testes de
hipóteses, principalmente os de comparações duplas (duas médias, duas proporções, etc).
Também são discutidos os testes de normalidade14 (ou testes de aderência).
Testes de hipóteses que envolvem somente uma variável buscam responder per-
guntas do tipo: “qual a distribuição destes dados?”, “em média ocorrem 5 erros por hora?”
ou ainda “a proporção de erros é inferior a 20%?”. Já os testes de hipóteses de compa-

13 http://www.tylervigen.com/spurious-correlations
14 Para uma revisão sobre a distribuição normal, recomendamos a Seção 3.3 de [Casella and Berger 2002].
12 Fundamentos de Estatística para Análise de Desempenho

ração entre duas quantidades se relacionam com perguntas do tipo “o algoritmo A tem
menor tempo de execução que o algoritmo B?” ou “a taxa de falhas de cache exibida nos
procedimentos do tipo M é maior do que nos procedimentos do tipo N?”. Em um primeiro
momento pode parecer tentador calcular tempo de execução médio de cada algoritmo e
fazer uma comparação direta. A base do pensamento inferencial é a de que a menos que se
tenha acesso a todos os dados, a comparação direta é incorreta, pois fatores como a varia-
bilidade e tamanho da amostra afetarão os resultados. Uma vez que é impossível realizar
um censo para um caso desses, pois podemos executar um algoritmo infinitas vezes, pode-
mos usar os testes de hipóteses para responder nossas perguntas. Todo conteúdo discutido
pode ser encontrado de maneira formal no Capítulo 8 de [Casella and Berger 2002].
As hipóteses do teste são a respeito dos parâmetros populacionais, que são desco-
nhecidos15 . É necessário estabelecer uma hipótese nula, denotada por H0 , e uma hipótese
alternativa, H1 . Em geral elas devem ser complementares16 , então ao determinar uma
das hipóteses a outra também estará estabelecida. A hipótese nula, na maioria dos casos,
coincide com o que não temos interesse, ou seja, é a hipótese que queremos refutar. Isso
ocorre porque o teste é construído de forma a tentar rejeitar a hipótese nula.

Exemplo 1.5. Imagine que você quer garantir que o seu programa apresente, em média,
menos de 5 faltas de página por execução. Podemos então definir as hipóteses do teste
como H0 : µ ≥ 5 e H1 : µ < 5, onde µ é o verdadeiro número médio de faltas de página
por execução do programa.

Um teste de hipóteses é uma regra que estabelece sob quais condições (valores
amostrais) toma-se a decisão de não rejeitar17 H0 e as condições para as quais rejeita-
se H0 . Onde um teste estatístico é executado, podem ser cometidos erros de decisão:

• Erro tipo I: quando rejeitamos a hipótese nula mesmo ela sendo verdadeira, e

• Erro tipo II: quando não rejeitamos a hipótese nula e ela é falsa.

Os erros tipo I e II ocorrem pois não conhecemos os verdadeiros valores dos pa-
râmetros populacionais e tomamos a decisão com base em uma amostra. A probabilidade
de cometer um erro tipo I é denotada por α e é a significância do teste (a confiança do
teste é 1 − α). Uma vez que estabelecemos esse valor a priori, fica claro que queremos
minimizar a probabilidade de rejeitar a hipótese nula com ela sendo verdadeira (e por isso
a hipótese nula é aquilo em que não estamos interessados). A probabilidade de cometer
um erro do tipo II é denotada por β . A Tabela 1.1 traz um resumo.
15 Éimportante notar que as hipóteses do teste não necessariamente são iguais às hipóteses de pesquisa.
As hipóteses de pesquisa dão subsídios para formulação das hipóteses do teste, porém as exigências para
que uma hipótese possa ser utilizada nos testes são mais específicas.
16 Por simplicidade, no texto usamos apenas hipóteses mutuamente exclusivas.
17 Discute-se a melhor terminologia a ser usada, pois aceitar H significa que aceitamos como verdadeiras
0
as condições dessa hipótese, enquanto que não rejeitar H0 significa “não aceitar totalmente, mas não ter
elementos que comprovem que não é verdadeira”. Uma discussão similar pode ser feita entre “rejeitar H0 ”
e “aceitar H1 ” ([Casella and Berger 2002]). Neste curso, não faremos distinção entre as afirmações.
Minicursos 13

Tabela 1.1: Erros associados às decisões de um teste de hipóteses

Realidade/Decisão do teste Aceitar H0 Rejeitar H0


Erro tipo I
H0 é verdadeira Decisão correta
P(Erro tipo I) = α
Erro tipo II
H0 é falsa Decisão correta
P(Erro tipo I) = β

Obtemos como resultado o valor da estatística de teste. O valor será confrontado


com os valores de referência da distribuição tabelada18 , assumindo que a hipótese nula
seja verdadeira, e é calculado com uma fórmula “pronta”, que varia para cada teste.

Exemplo 1.6. Uma amostra aleatória (a.a.) de uma distribuição normal possui média
desconhecida µ e variância populacional conhecida. Elaboramos um teste tal que H0 :
µ = 0 e H1 : µ 6= 0, isto é, testamos a hipótese de que µ seja igual zero. Para um nível de
significância α = 0, 05, buscamos na tabela da distribuição normal qual o valor crítico do
teste, que é o valor que separa os 2, 5% menores e maiores valores na distribuição. Neste
caso, temos que zcrit = |1, 96|, o que significa que se a estatística de teste estiver entre
−1, 96 e 1, 96, nós aceitamos a hipótese nula. Alternativamente, poderíamos calcular
a estatística de teste e então o p-valor, que é a probabilidade, sob a hipótese nula, de
encontrar o valor calculado ou mais extremo. Se o p-valor for menor do que o nível de
significância, nós rejeitamos a hipótese nula.

De maneira intuitiva, o que o teste de hipóteses faz é, com base nos dados de
uma amostra, verificar o quão “crível” é que eles sejam provenientes de uma amostra
que tem a distribuição estipulada na hipótese nula. Quando lidamos com mais amostras,
desejamos verificar se as diferenças observadas entre, por exemplo, as médias podem ser
consideradas frutos do acaso ou se são de fato significativamente diferentes.
A Figura 1.4 ilustra o funcionamento do teste de hipóteses. A curva vermelha
(mais à esquerda) mostra a distribuição sob a hipótese nula (H0 aqui é µ0 = 0). Em azul
(à direita) temos a distribuição sob H1 . Note que este exemplo é apenas ilustrativo, pois
não conhecemos realmente a curva azul, dado que o testamos apenas para igualdade e
desigualdade. Apenas sabemos que a hipótese alternativa inclui todas as curvas onde
a média é diferente de zero. Cometeremos um erro tipo I se H0 for verdadeira mas o
valor da estatística de teste para a amostra estiver em uma das pontas da curva vermelha.
Nesses casos, o valor é tão extremo, que ao assumirmos a distribuição vermelha, ele
é pouco provável de ser encontrado ao acaso, e portanto rejeitamos H0 , mesmo sendo
verdadeira. De maneira análoga, é possível que a verdadeira distribuição seja a linha azul,
mas como ela intercepta a vermelha, existem valores de estatística para os quais H1 é
verdadeira, mas falhamos em rejeitar H0 , cometendo um erro tipo II. O raciocínio é: se
18 A tabela contém os valores de z com os respectivos P(Z ≥ z) — “a probabilidade de que a variável
aleatória Z assuma valores iguais ou maiores que z”). “Distribuição tabelada” remete ao tempo em que não
havia computadores para calcular os valores das áreas sob as curvas das funções densidade (que dão as pro-
babilidades), portanto foram criadas tabelas com os valores das probabilidades de acordo com a distribuição
e seus parâmetros. Hoje qualquer pacote estatístico tem funções para obter essas probabilidades.
14 Fundamentos de Estatística para Análise de Desempenho

𝜇 = 1.5 (verdadeiro valor)


𝜎 = 3 (desvio padrão)
Distribuição amostral 𝑛 = 50
𝐻0 : 𝜇 = 0 𝐻1 : 𝜇 ≠ 0
Se 𝐻0 é verdadeira ℙ 𝐸𝑟𝑟𝑜 𝑡𝑖𝑝𝑜 1 = 0.05
Se 𝐻1 é verdadeira ℙ(𝐸𝑟𝑟𝑜 𝑡𝑖𝑝𝑜 𝐼𝐼) = 0.06
Erros
Erro tipo I
Erro tipo II

Figura 1.4: Exemplo de teste de hipóteses paramétrico para uma média


Fonte: Elaboração própria com base em https://istats.shinyapps.io/power/

a linha vermelha representa a realidade, nossos valores devem estar na área branca no
centro da distribuição, que são mais prováveis de ocorrer. Se eles estiverem nas caudas
(extremos), então são valores pouco prováveis e por isso rejeitamos H0 .
O roteiro básico de um teste de hipóteses é:

1. Elabore as hipóteses mutuamente excludentes. Usualmente a hipótese nula, H0 ,


estabelece que os resultados são frutos do acaso. A hipótese nula pode ser uma
igualdade (obtém um teste bilateral) ou desigualdade (para um teste unilateral);

2. Verifique para quais testes os seus dados são adequados. Sempre que possível,
opte pelos testes paramétricos pois, sob as suas condições de regularidade, eles têm
maior poder do que os testes não paramétricos correspondentes;

3. Estabeleça um nível de significância (geralmente utilizamos α = 0, 05 = 5%);

4. Calcule a estatística de teste e o p-valor associado, ou calcule o valor crítico e


verifique se a estatística de teste está na área de aceitação ou rejeição de H0 ;

5. Interprete os resultados.

Como apontado pelo item 2 acima, existem métodos paramétricos e não paramé-
tricos. Os métodos paramétricos se baseiam em distribuições conhecidas dos parâmetros.
Eles são usados quando, mesmo não conhecendo o valor verdadeiro do parâmetro, assu-
mimos que ele vem de uma distribuição conhecida (por exemplo, normal). Essa suposição
deve ser embasada por uma verificação, como um teste de aderência.
Os testes paramétricos pressupõem que os dados seguem determinadas condições.
Quando bem especificados, os testes paramétricos costumam ser mais poderosos que os
não paramétricos, pois as regiões onde são cometidos os erros tipo I e tipo II são menores.
Para garantir um teste correto, suas suposições devem ser atendidas. Quando há violação
dos pressupostos do teste, não há garantias a respeito de suas características, incluindo
a distribuição dos valores calculados. Por exemplo, é possível que a estatística de teste
tenha distribuição t de Student, mas está sendo verificada em uma tabela normal. Dado
Minicursos 15

que para amostras pequenas as duas distribuições apresentam diferenças nas caudas (a
distribuição t apresenta caudas pesadas, precisando de valores mais extremos para rejeitar
H0 ), estaríamos aumentando a probabilidade de cometer um erro tipo I.
Os testes não paramétricos buscam possibilitar inferências relaxando as suposi-
ções a respeito das distribuições populacionais. Por não assumirem uma distribuição dos
dados, são baseados em medidas de ordenamento (como a mediana) ou em postos. Posto
é a posição que um elemento assume quando ordenamos a amostra.
É necessário um método para verificar se os dados seguem uma distribuição nor-
mal, descrito na Seção 1.3.1, para definir o tipo de teste a ser empregado. Métodos para-
métricos são discutidos nas Seções 1.3.2 e 1.3.3 para análise de médias e na Seção 1.3.4
para proporções. A Seção 1.3.5 discute um método não paramétrico para comparação de
duas médias, e métodos para comparação de três ou mais médias são discutidos breve-
mente na Seção 1.3.6. A Seção 1.3.7 toca no assunto de intervalos de confiança.

1.3.1. Testes de Normalidade


Os testes paramétricos discutidos neste curso assumem que os dados seguem uma distri-
buição normal. Como usualmente não conhecemos previamente a distribuição dos dados,
usamos um teste para verificar a aderência à distribuição normal. As hipóteses são H0 : os
dados aderem a uma distribuição normal e H1 : os dados não aderem.
Apresentaremos o teste de Kolmogorov-Smirnov (teste K-S). Ele não é unica-
mente um teste de normalidade, e pode também ser utilizado para outras distribuições.

Exemplo 1.7. Um algoritmo foi executado n = 100 vezes e temos o tempo de cada exe-
cução. Desejamos testar, com significância α = 5%, as hipóteses H0 : os tempos do
algoritmo seguem uma distribuição normal contra H1 : não seguem. Para os dados ob-
tidos, calculamos a estatística do teste K-S, D = 0, 50073, com p-valor19 < 0, 001. Isso
significa que, se os dados fossem provenientes de uma distribuição normal (que é o es-
tabelecido por H0 ), a probabilidade de encontrar o valor D (ou mais extremo20 ) seria
menor do que 0, 1%. Como essa probabilidade é menor do que o α, rejeitamos a hipótese
nula de que os dados são provenientes de uma população com distribuição normal. A
Figura 1.5a mostra o histograma desses dados, que deixa clara a não aderência.

O Exemplo 1.7, apesar de utilizar dados simulados, mostra que nem sempre um
grande tamanho de amostra é suficiente para garantir normalidade. Essa crença comum (e
errada) vem da aplicação incorreta do teorema limite central21 (TLC). Para o uso correto
do teorema, não basta que o número de repetições — o tamanho amostral n — seja grande,
mas também precisamos que sejam calculadas as médias de várias amostras.
19 No R, o p-valor exibido é de 2.2e−16 , que é o menor valor na implementação da linguagem.
20 A expressão “mais extremo” pode indicar um valor somente à direita ou somente à esquerda de D para

os testes unilaterais ou ainda valores que são maiores que o módulo de D, para testes bilaterais.
21 O teorema do limite central estabelece que se X , . . . , X são variáveis aleatórias independentes e identi-
1 n
camente distribuídas e atendem certas condições de regularidade, então a distribuição assintótica (no limite,
quando n → ∞) da média amostral é Normal(µ, σ 2 /n), onde µ é a média populacional de Xi ∀i e σ 2 sua
variância. O teorema fala do que acontece com a distribuição da média amostral de uma amostra aleatória
de qualquer distribuição, porém não significa que os Xi têm distribuição normal assintótica.
16 Fundamentos de Estatística para Análise de Desempenho

Número de ocorrências

Número de ocorrências
15
75

10 50

5 25

0 0
0.0 0.5 1.0 1.5 0.25 0.30 0.35 0.40 0.45
Tempo de execução (u.t.) Tempo de execução (u.t.)

(a) Histograma dos tempos de execução (b) Histograma das médias dos tempos

Figura 1.5: Ilustração do Teorema do Limite Central com dados dos Exemplos 1.7 e 1.8

Exemplo 1.8. Vamos tentar “arrumar” os dados do Exemplo 1.7 de forma a utilizar o
TLC para obter uma distribuição aproximadamente normal. Agora repetimos por 1000
vezes o seguinte experimento: são feitas n = 100 execuções do algoritmo e calcula-se
a sua média. Então temos uma amostra de 1000 médias de amostras de tamanho 100.
Obtemos assim um histograma, mostrado na Figura 1.5b, mais próximo de uma normal.
O resultado do teste K-S agora é D ≈ 0, 02 (p-valor= 0, 8208). Como o p-valor é maior
do α, não rejeitamos a hipótese de normalidade dos dados. Isso acontece pois, conforme
n aumenta, o desvio padrão da média amostral diminui, se aproximando, no limite, do
desvio padrão populacional. A curva fica cada vez mais simétrica em torno de sua média.

1.3.2. Teste t para Uma Média


Para as duas próximas situações, temos uma amostra aleatória de n elementos X1 , . . . , Xn
extraídas de uma população com distribuição Normal(µ, σ 2 ) (a distribuição é normal
com média µ e variância σ 2 ), cuja normalidade foi verificada com um teste como o K-S, e
queremos testar hipóteses sobre µ. Especificamente, testar H0 : µ = µ0 contra H1 : µ 6= µ0
(teste bilateral) ou testar H0 : µ < µ0 contra H1 : µ ≥ µ0 (teste unilateral).
Há versões desses testes para situações onde a variância populacional é conhecida
ou desconhecida. Como em casos de avaliação de desempenho não é possível conhe-
cer qual o verdadeiro valor da variância populacional, abordaremos somente o teste que
pressupõe variâncias desconhecidas, conhecido como teste t para uma amostra.

1.3.2.1. Teste Unilateral

Considerando as hipóteses H0 : µ ≤ µ0 e H1 : µ > µ0 , a estatística de teste será:


X − µ0
tteste = √ (1)
S/ n
onde X é a média amostral, S é o desvio padrão da amostra e n é o tamanho amostral. Este
valor será comparado com o valor tabelado de uma variável t com n − 1 graus de liberdade
(tcrit ) que tenha à sua direita o equivalente a α% da área sob a curva. Se tteste > tcrit ,
rejeitamos H0 . De maneira equivalente, se o valor da área à direita de tteste (p-valor) na
tabela t com n − 1 graus de liberdade for menor do que α, rejeitamos H0 .
Minicursos 17

Exemplo 1.9. Suponha que você está testando a eficiência (ψ) de um novo algoritmo e
deseja verificar, para um nível de significância de 5%, se ela é de pelo menos 80%. Após
coletar dados de 100 repetições e verificar que a suposição de normalidade foi atendida,
você estabelece as hipóteses do teste como H0 : ψ ≤ 80% e H1 : ψ > 80%.
Os dados apresentam média amostral (ψ) aproximadamente 80, 78. A estatística
de teste calculada foi t ≈ 0, 74 e o p − valor igual a 0, 2296. Isso significa que a probabi-
lidade de encontrarmos uma estatística de teste como a calculada em uma distribuição de
média menor ou igual a 80% é de aproximadamente 23%. Então, não é possível rejeitar
a hipótese nula de que a eficiência é menor ou igual a 80%.

1.3.2.2. Teste Bilateral

Considere as hipóteses H0 : µ = µ0 e H1 : µ 6= µ0 . A estatística do teste continua sendo


dada pela Equação 1. A diferença do teste unilateral é que agora compararemos tteste com
o valor absoluto de tcrit utilizando α2 para localizá-lo na tabela, isto é, tcrit será o valor que
satisfaz P(tn−1 < −tcrit ) = α2 % e P(tn−1 > tcrit ) = α2 %. Por exemplo, para um caso onde
α = 5%, as áreas à esquerda de −tcrit e à direita de tcrit são de 2, 5% cada.

Exemplo 1.10. Espera-se que um servidor receba r = 90 requisições por minuto, com
um desvio padrão de 10. É de interesse verificar essa expectativa para dimensionar
a infraestrutura, evitando desperdício de recursos enquanto mantendo um bom tempo
de resposta. Você coleta dados de 200 minutos e, após verificar que a suposição de
normalidade foi atendida, deseja testar, para α = 5%, as hipóteses H0 : r = 90 contra
H1 : r 6= 90. A média amostral de requisições é r ≈ 90, 32 e a estatística de teste calculada
foi de t ≈ 0, 42. O p-valor associado é de 0, 6759. Então, com base na amostra, não
rejeitamos a hipótese nula de que o número médio de requisições é 90.

1.3.3. Teste t para Duas Médias


O teste para a comparação entre duas médias tem duas versões: uma para quando as
variâncias das amostras, apesar de desconhecidas, são iguais; e outra para quando são
diferentes. A diferença está na estimativa do desvio padrão populacional. Essa suposição
de igualdade de variâncias não é exata: os valores não precisam ser exatamente iguais e
sim estatisticamente iguais. Isto significa que, antes de podermos comparar as médias de
duas amostras utilizando o teste t, precisamos comparar suas variâncias.
Considere a seguinte situação: duas amostras aleatórias de n1 e n2 elementos,
extraídas de duas populações com distribuições Normal(µ1 , σ12 ) e Normal(µ2 , σ22 ). Po-
demos montar um teste cujas hipóteses são H0 : σ12 = σ22 e H1 : σ12 6= σ22 . A estatística
de teste é dada por Fteste = S12 /S22 , onde S12 e S22 são as variâncias amostrais. O valor será
confrontado com o Fcrit referente à tabela da distribuição F de Snedecor com n1 − 1 graus
de liberdade no numerador e n2 − 1 graus de liberdade no denominador. Rejeitaremos a
hipótese nula caso Fteste > |Fcrit |. Esse teste é conhecido como teste F.

Exemplo 1.11. Suponha que você quer comparar a eficiência do algoritmo do Exem-
plo 1.9 — representada por θ — com a de um novo algoritmo, ψ. Após coletar amos-
tras de tamanho 200 de cada algoritmo, foram obtidas médias amostrais θ ≈ 94, 89 e
18 Fundamentos de Estatística para Análise de Desempenho

ψ ≈ 80, 42 e variâncias amostrais Sθ2 ≈ 97, 62 e Sψ 2 ≈ 89, 83. Você executou o teste de

normalidade K-S para ambas amostras e aceitou as hipóteses de normalidades dos dados.
Antes de fazer o teste de comparação das médias, você executa um teste F para verificar
a igualdade das variâncias e obtém estatística de teste F ≈ 0, 6964 (p − valor = 0, 5582).
Então, com base na amostra, você não rejeita a H0 de que as variâncias são iguais.

1.3.3.1. Teste t para médias com variâncias iguais

Duas amostras aleatórias de n1 e n2 elementos foram extraídas de duas populações com


distribuições Normal(µ1 , σ12 ) e Normal(µ2 , σ22 ), onde σ12 = σ22 . Deseja-se verificar H0 :
µ1 = µ2 contra H1 : µ1 6= µ2 . Por simplicidade, mostramos apenas o teste bilateral, pois o
procedimento para o unilateral é análogo, com a adaptação para encontrar o valor crítico
do teste e a elaboração das hipóteses. A estatística do teste bilateral é dada por:
X1 − X2
tteste = (2)
SX 1 −X 2

Onde SX 1 −X 2 é o estimador do desvio padrão de X 1 − X 2 dado por:


s  
(n1 − 1)S12 + (n2 − 1)S22 1 1
SX 1 −X 2 = + (3)
n1 + n2 − 2 n1 n2

É possível mostrar que, sob a hipótese nula, tteste segue uma distribuição t de Student com
n1 + n2 − 2 graus de liberdade. Comparamos o valor de tteste com −tcrit e com tcrit , que
apresentam α2 % de área à sua esquerda e direita, respectivamente. Este teste é conhecido
como teste t para duas amostras.
Exemplo 1.12. Continuando a análise do Exemplo 1.11, como você não rejeitou a hipó-
tese de que as variâncias são iguais, aplicou o teste t bilateral para comparação de duas
amostras supondo variâncias iguais e obteve t = −14, 943 (p − valor < 0, 001). Portanto,
você rejeita a hipótese nula de que os tempos médios dos algoritmos são iguais.

1.3.3.2. Teste t para médias com variâncias diferentes

Em uma situação semelhante a do teste da Seção 1.3.3.1, mas com σ12 6= σ22 , a estatís-
tica de teste será dada pela Equação 4, onde S1 e S2 são os desvios padrões amostrais.
Pode-se mostrar que tteste , sob a hipótese nula, segue aproximadamente uma distribuição
t de Student com v graus de liberdade dado pela Equação 5. Fora essas diferenças, o
procedimento para o teste é análogo ao anterior.

X1 − X2
tteste = q 2 (4)
S1 S22
n1 + n2

2
S12 /n1 + S22 /n2
v= 2 (5)
(S1 /n1 )2 /(n1 − 1) + (S22 /n2 )2 /(n2 − 1)
Minicursos 19

1.3.4. Teste para Uma Proporção


Imagine o seguinte experimento: um algoritmo é executado n vezes e registramos ni , que
será igual a 1 caso tenha havido pelo menos uma falha na i-ésima execução e 0 caso
n
contrário. Calculamos então a proporção p̂, dada por p̂ = ∑ ni /n e que representa a
i=1
proporção das n execuções que apresentaram pelo menos um erro. Suponha ainda que
a probabilidade de ocorrer um erro é um parâmetro desconhecido mas fixo para todas
execuções, denotado por p, e que as execuções são independentes entre si.
Montamos então um teste com H0 : p ≤ p0 e H1 : p > p0 , onde 0 < p0 < 1 é uma
quantia que representa o valor máximo tolerável para a proporção de execuções com erro.
A estatística de teste é dada pela Equação 6.
p̂ − p0
zteste = p (6)
p̂(1 − p̂)/n

Para grandes amostras e se a hipótese nula for verdadeira, zteste segue uma distri-
buição aproximadamente Normal(0, 1) e podemos calcular o p-valor associado.
Note que estamos utilizando o resultado enunciado pelo TLC para falar da distri-
buição de zteste sob H0 . Esse fato é bem estabelecido em uma situação teórica, porém não
há consenso sobre o quão grande a amostra precisa ser para a obtenção de convergência.

Exemplo 1.13. Pacotes são enviados entre duas pontas através de um canal de comuni-
cação, onde há uma probabilidade p dos dados serem corrompidos. Nesse caso, o pacote
falha uma verificação ao chegar no destino e é descartado. Suponha que você está inte-
ressado em verificar que a proporção de pacotes descartados seja no máximo 5%.
Você conduz 500 experimentos com 1000 repetições cada um, anotando, a cada
experimento, a proporção de pacotes descartados p̂. O objetivo é testar H0 : p̂ ≤ 5%
versus H1 : p̂ > 5%. O valor da estimativa para a proporção obtido foi de 0, 06 e o valor
da estatística zteste foi de ≈ 1, 47. Como este é um teste unilateral, compara-se zteste com
o valor crítico zcrit = 1, 64 e, portanto, não se rejeita a hipótese nula de que a proporção
de pacotes descartados é menor ou igual que 5% (p-valor ≈ 0, 07).

1.3.5. Teste de Wilcoxon-Mann-Whitney para duas Amostras


As seções anteriores discutiram testes paramétricos, que assumem a normalidade dos da-
dos. Quando esta não pode ser confirmada por um teste de normalidade, devemos apli-
car métodos não paramétricos. O teste U de Mann-Whitney, também chamado teste de
Wilcoxon-Mann-Whitney, verifica se duas amostras são provenientes da mesma popula-
ção. A formulação do teste é diferente para amostras pequenas (se as duas amostras têm
tamanho até 10), mas isso é transparente em softwares de estatística.

Exemplo 1.14. Temos dois algoritmos, A e B, e resultados de 100 execuções independen-


tes de cada um. Desejamos testar, com nível de significância α = 5%, as hipóteses H0 :
“os tempos de execução dos algoritmos são provenientes de uma mesma distribuição”
contra H1 : “os tempos são de distribuições diferentes”. Observe que não temos mais
uma hipótese sobre parâmetros, mas uma hipótese sobre a distribuição dos dados.
20 Fundamentos de Estatística para Análise de Desempenho

A estatística de teste é W = 7460 (p-valor< 0, 001). Então rejeitamos a H0 de que


as amostras são de uma mesma distribuição e, portanto, de uma mesma população.
Exemplo 1.15. Agora imagine que você desconfia que algo interferiu nas execuções do
algoritmo A e afetou os resultados. Para verificar, você realiza outras 100 execuções do
algoritmo e compara com as 100 execuções anteriores. A estatística de teste é W = 4800
(p-valor = 0, 6259). Não rejeitamos a hipótese nula de que as amostras são de populações
iguais, ou seja, há evidências de que o desempenho não havia sido impactado.

1.3.6. One-Way ANOVA


Vimos como comparar duas amostras independentes, quando ambas seguem uma distri-
buição normal e quando a suposição de normalidade não é atendida. Porém, muitos ex-
perimentos envolvem a comparação de mais amostras, por exemplo, desempenho de três
ou mais algoritmos. Comparar as amostras duas a duas, através de N(N − 1)/2 testes t,
inflacionaria a probabilidade de um erro tipo I, tornando o teste mal especificado.
Para resolver esse problema, utilizamos a chamada one-way ANOVA, ou análise
de variância de um fator22 . Ela deve ser usada para três ou mais amostras, independentes
entre si, comparando uma mesma variável de interesse (chamada variável dependente),
que deve ser contínua. As demais suposições para utilização da ANOVA são que (i) a
variável dependente deve ser normalmente distribuída em cada amostra; e (ii) deve haver
homogeneidade de variâncias. O teste de Levene pode ser usado para verificar isso, pois
também não é correto aplicar o teste F em cada par de amostras.
A hipótese nula da ANOVA é de que as médias dos grupos (amostras) são iguais,
isto é, com k grupos, a hipótese nula será H0 : µ1 = µ2 = . . . = µn ∀i ∈ {1, . . . , k}. A hipó-
tese alternativa estabelece que pelo menos uma das médias é diferente, isto é, H1 : µi 6= µ j ,
para algum i, j ∈ k. Isso significa que, ao rejeitarmos a hipótese nula de igualdade, não é
possível dizer qual das médias é menor, qual é maior, etc. É necessário um teste adicio-
nal que é chamado de “complemento da ANOVA”. Esses testes são ditos de comparações
múltiplas, pois eles comparam os grupos para identificar quais médias são diferentes, sem
incorrer no problema da amplificação da probabilidade do erro tipo I. Um exemplo é
o teste de Tukey (ou TukeyHSD), que só pode ser utilizado quando as suposições para a
ANOVA foram atendidas e esta rejeitou a hipótese nula. O nível de significância é sempre
aquele utilizado na ANOVA. Mais detalhes em [Casella and Berger 2002].
Exemplo 1.16. Temos tempos de 200 execuções de três algoritmos, A, B e C, e esses re-
sultados passaram no teste K-S de normalidade. O boxplot pode ser visto na Figura 1.6, e
nele o tempo médio do algoritmo B parece ser maior que os demais. No entanto, é neces-
sário que um teste verifique se isso pode ser considerado estatisticamente significativo.
No teste de Levene para homogeneidade das variâncias dos três grupos, não re-
jeitamos a hipótese nula de igualdade das variâncias (F = 0, 4316, p-valor = 0, 6497).
Então aplicamos a ANOVA e obtemos estatística de teste F= 214, 3 e p-valor< 0, 001.
Com isso, rejeitamos a hipótese nula de que os tempos médios dos algoritmos são iguais.
Usamos então o teste de Tukey, que identificou que as médias dos algoritmos A, B
e C — 80, 43, 94, 9 e 75, 27 — são diferentes entre si com significância de 5%.
22 Para detalhes do método de cálculo consultar [Casella and Berger 2002].
Minicursos 21

Tempo de execução (u.t.)


120

100

80

60

A B C
Algoritmo

Figura 1.6: Boxplot dos tempos de execução dos algoritmos A, B e C

É importante observar que essa metodologia não serve para situações com mais de
uma variável de controle — por exemplo, comparar tempos de execução simultaneamente
por algoritmos, tamanhos de entrada e máquinas.
Quando as suposições da ANOVA não são atendidas ou temos heterogeneidade de
variâncias, uma alternativa não paramétrica é o teste de Kruskal-Wallis, que é um teste de
comparação de medianas. Assim como a ANOVA, quando a hipótese nula é rejeitada, o
Kruskal-Wallis precisa do complemento de um teste de comparações múltiplas. Um dos
mais utilizados nesse caso é o teste de Dunn, que pode ser usado mesmo quando as amos-
tras não têm o mesmo tamanho. Mais sobre esses testes em [Siegel and Castellan 2006].

1.3.7. Relação dos Testes Paramétricos com Intervalos de Confiança


Intervalos de confiança são uma ferramenta bastante utilizada em pesquisas. Por exemplo,
podemos estar interessados não somente em testar se o desempenho de dois algoritmos é
diferente ou não, mas também em estabelecer um intervalo para essa diferença.
Os intervalos de confiança são considerados variáveis aleatórias. Quando falamos
em probabilidade para esses intervalos, estamos falando da probabilidade de um intervalo
conter o parâmetro analisado. No entanto, uma vez que os dados da amostra sejam “co-
locados” na equação do intervalo, ele deixa de ser aleatório. Assim, a probabilidade dele
conter o parâmetro passa a ser 0 ou 1: ou o parâmetro está no intervalo, ou não está.
Um erro bastante encontrado na literatura é a afirmação que o intervalo calculado
para uma dada amostra tem probabilidade 1 − α de conter o parâmetro. Dizer que esse
intervalo tem 95% de confiança pode ser interpretado como se coletássemos 100 amos-
tras de mesmo tamanho daquela mesma população, e calculássemos os 100 intervalos,
esperaríamos que 95 deles contivessem o verdadeiro valor do parâmetro23 .
De maneira informal24 , podemos relacionar os testes paramétricos vistos no curso
com um intervalo de confiança que teria, para os mesmos dados de amostra, a mesma
conclusão do teste. Por exemplo, o teste t de duas médias (Seção 1.3.3) tem como hipótese
nula que a diferença das médias é igual a zero (no caso do teste bilateral). Podemos
construir um intervalo de confiança para esta diferença, baseado nos dados da amostra.
23 Uma simulação animada pode ser vista acessada em: http://rpsychologist.com/d3/CI/
24 Para uma discussão formal sobre intervalos de confiança, recomendamos os capítulos 8 de
[Mood et al. 1974] e 9 de [Casella and Berger 2002].
22 Fundamentos de Estatística para Análise de Desempenho

Se o intervalo de confiança contém o valor 0, concluímos que a diferença das médias não
é estatisticamente diferente de zero, para um nível de confiança de 95%.
Exemplo 1.17. Considere a situação do Exemplo 1.12. O intervalo de 95% de confiança
para a diferença das médias é (−16, 37; −12, 56), então concluímos que a diferença entre
as médias é significativamente diferente de zero, para um nível de confiança de 95%.

1.4. Conclusão
Neste curso buscamos fazer uma introdução aos métodos de análise de resultados de ex-
perimentos, a fim de fornecer noções básicas para pesquisadores e pesquisadoras da área
de computação de alto desempenho. Foram discutidos métodos descritivos, usados para
estudar características das amostras, e métodos inferenciais, usados para extrapolar essas
características para as populações. Focou-se nos testes de hipótese, discutindo versões
para uma, duas ou mais amostras, com ou sem pressuposto de normalidade dos dados.
A Figura 1.7 apresenta um fluxograma com os métodos apresentados e as situ-
ações onde são adequados. Nela assume-se que diferentes amostras são independentes,
comparações são feitas com a mesma variável e todas variáveis são contínuas.
Espera-se que o público, agora munido de noções básicas de análise estatística,
seja capaz de identificar os passos a serem seguidos para analisar seus resultados. A bibli-
ografia apresentada pode auxiliar as pessoas que desejarem aumentar o seu conhecimento
na área, e suprir informações sobre os métodos que não puderam ser tratados no escopo
desse minicurso. Além disso, o repositório do curso contém exemplos, na linguagem R,

Tipo de n=1 Número de n≥3


Teste K-S de
variável? amostras? normalidade
Quantitativa Proporção Rejeita H0 para
n=2 Aceita H0 para todas
pelo menos 1
Teste K-S de n*p̂ ≥ 10
normalidade O formato dos Teste de
n*p̂*(1-p̂) ≥ 10
histogramas é Levene para
Aceita H0 p̂ é proporção amostral
similar? variâncias
(regra prática)
Teste t para sim Rejeita H0 Aceita H0
uma média sim
Teste z Kruskal-Wallis Kruskal-Wallis, One-way
para uma transformação ANOVA
proporção nos dados ou
outros métodos
Teste K-S de normalidade
Aceita H0 para ambas
Teste F de Rejeita H0 para pelo menos 1
homogeneidade
de variâncias Teste de
Rejeita H0 Aceita H0 Wilcoxon-Mann-Whitney

Teste t para 2 médias Teste t para 2 médias


com variâncias com variâncias iguais
diferentes

Figura 1.7: Fluxograma para a análise estatística de resultados.


Minicursos 23

de como realizar os testes discutidos, além de algumas técnicas não discutidas aqui.

Referências
[Agresti 2007] Agresti, A. (2007). An introduction to categorical data analysis. Wiley-
Interscience, 2 edition.

[Anscombe 1973] Anscombe, F. J. (1973). Graphs in statistical analysis. The American


Statistician, 27(1):17.

[Barbetta 2010] Barbetta, P. A. (2010). Estatística aplicada às ciências sociais. Ed. da


UFSC.

[Casella and Berger 2002] Casella, G. and Berger, R. L. (2002). Statistical infence. Dux-
bury, 2 edition.

[Chen et al. 2015] Chen, T., Guo, Q., Temam, O., Wu, Y., Bao, Y., Xu, Z., and Chen,
Y. (2015). Statistical performance comparisons of computers. IEEE Transactions on
Computers, 64(5):1442–1455.

[Curtsinger and Berger 2013] Curtsinger, C. and Berger, E. D. (2013). Stabilizer: Statis-
tically sound performance evaluation. In Proceedings of the Eighteenth International
Conference on Architectural Support for Programming Languages and Operating Sys-
tems, ASPLOS ’13, pages 219–228. ACM.

[de Oliveira et al. 2013] de Oliveira, A. B., Fischmeister, S., Diwan, A., Hauswirth, M.,
and Sweeney, P. F. (2013). Why you should care about quantile regression. In Pro-
ceedings of the Eighteenth International Conference on Architectural Support for Pro-
gramming Languages and Operating Systems, ASPLOS ’13, pages 207–218. ACM.

[Draper and Smith 1998] Draper, N. R. and Smith, H. (1998). Applied regression analy-
sis. Willey Series in Probability and Statistics. Wiley, 3 edition.

[Georges et al. 2007] Georges, A., Buytaert, D., and Eeckhout, L. (2007). Statistically
rigorous java performance evaluation. In Proceedings of the 22Nd Annual ACM
SIGPLAN Conference on Object-oriented Programming Systems and Applications,
OOPSLA ’07, pages 57–76. ACM.

[Kalibera and Jones 2012] Kalibera, T. and Jones, R. (2012). Technical report: Quan-
tifying performance changes with effect size confidence intervals. Technical report,
School of Computing, University of Kent.

[Legrand 2016] Legrand, A. (2016). Scientific methodology and performance evaluation


for computer scientists. https://github.com/alegrand/SMPE. Acessado
em 16 de fevereiro de 2017.

[Lilja 2012] Lilja, D. J. (2012). Measuring computer performance: a practitioner’s


guide. Cambridge University Press.
24 Fundamentos de Estatística para Análise de Desempenho

[Mellor-Crummey 2005] Mellor-Crummey, J. (2005). Computer systems performance


analysis: an introduction. https://www.cs.rice.edu/~johnmc/comp528/
lecture-notes/Lecture1.pdf. Acessado em 16 de fevereiro de 2017.

[Mood et al. 1974] Mood, A. M., Graybill, F. A., and Boes, D. C. (1974). Introduction
to the theory of statistics. McGraw-Hill International, 3 edition.

[Mytkowicz et al. 2009] Mytkowicz, T., Diwan, A., Hauswirth, M., and Sweeney, P. F.
(2009). Producing wrong data without doing anything obviously wrong! In Procee-
dings of the 14th International Conference on Architectural Support for Programming
Languages and Operating Systems, ASPLOS XIV, pages 265–276. ACM.

[Siegel and Castellan 2006] Siegel, S. and Castellan, N. J. (2006). Estatística não-
paramétrica para ciências do comportamento. Artmed, 2 edition.

[Touati et al. 2013] Touati, S.-A.-A., Worms, J., and Briais, S. (2013). The speedup-test:
a statistical methodology for programme speedup analysis and computation. Concur-
rency and Computation: Practice and Experience, 25(10):1410–1426.

View publication stats