Análise estatística 1

Jacques Wainer

Tipos de dados

categóricos: dados que são nomes.

A unica operação possível é contar cada categoria, proporção de pessoas de SP, estado de origem mais frequente (moda)

binários: categóricos com apenas 2 valores.

São categóricos mas de vez em quando a codificação 0/1 permite que a média faça sentido. 0->homem, 1-> mulher entao é média é a proporção de mulheres

ordinais: valores/nomes ou números mas onde apenas a ordem é valida

Diferenças não fazem sentido. Passar da classe B2 para A nao é o mesmo que passar de D para B2. A operação de resumo que faz sentido é a mediana: qual o valor que divide o grupo em 2 (quase metades). Media não faz sentido pois

numérico: números com um zero arbitrario

Media, desvio padrão etc fazem sentido

ratio: números com um zero fixo (normalmente só positivos)

Medias “diferentes” harmonica, geométrica fazem sentido.

A diferença entre categóricos e numéricos é a mais importante do ponto de vista de estatística, mas há coisas mais testes estatísticos mais exóticos para ordinais, e para binarios.

Testes estatísticos de significância

Erros de amostragem (ou diferenças devido a sorte apenas)

Dados retirados (amostrados) de uma mesma fonte podem ter médias diferentes. A diferença é apenas por causa da sorte ou do azar. Isso é chamado de “erro de amostragem”. O nome erro não é um bom nome, pense como “ruído de amostragem”

set.seed(1234)
fonte=rnorm(10000,100,30)

O set.seed é para fixar o gerador de números aleatórios e portanto o exemplo será reprodutível.

a variável fonte contem 10000 dados amostrados de uma normal de media 100 e desvio padrão 30

Vamos ver que os dados em fonte parecem realmente vir de uma normal

hist(fonte,breaks=30)

Vamos tirar duas amostras aleatórias da fonte. a terá 7 dados e b terá 12 dados (escolhidos aleatoriamente da fonte)

a=fonte[sample(1:10000,7)]
b=fonte[sample(1:10000,12)]

Embora a e b são amostras da mesma fonte, eles tem médias diferentes

> mean(a)
[1] 110.6293
> mean(b)
[1] 95.70708

Vamos assumir que b são os tempos de execução do seu programa e a são os tempos de execução de um programa conhecido publicado na literatura, e seu mestrado é fazer uma implementação mais rápida do programa a

Voce pode dizer a sua orientadora que vc terminou o mestrado ja que voce criou um programa que é 13% mais rápido que o estado da arte?

testes estatísticos

Um teste estatístico informa a probabilidade de que os dados sejam tão (ou mais) diferentes quanto eles são tendo em vista que eles vieram da mesma fonte de dados. Esse valor é chamado de p-valor ou p-value

Se a probabilidade é alta então é provável que a diferença que voce encontrou na média (ou outras medidas - mais abaixo) é apenas devido a sorte.

Se a probabilidade é baixa então voce pode dizer que é pouco provável que os dados vieram de uma mesma fonte e que a diferença é apenas por causa do ruído de amostragem.

Se a probabilidade é baixa voce pode dizer que é bem provável que os dados realmente vieram de 2 fontes diferentes.

O termo oficial para dizer que “é bem provável que os dados realmente vieram de 2 fontes diferente” é a diferença é estatisticamente significante ou a diferença é estatisticamente significativa

> t.test(a,b)

    Welch Two Sample t-test

data:  a and b
t = 0.78595, df = 8.0367, p-value = 0.4544
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -28.82529  58.66978
sample estimates:
mean of x mean of y 
110.62933  95.70708

Veja o p-value

> d = rnorm(12,150,30)
> mean(d)
[1] 159.3009
> t.test(a,d)

    Welch Two Sample t-test

data:  a and d
t = -2.5849, df = 7.7994, p-value = 0.03305
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -92.287107  -5.055969
sample estimates:
mean of x mean of y 
 110.6293  159.3009 

No segundo caso nós geramos dados que realmente vieram de uma outra fonte bem diferente da original (media = 150 em vez de media = 100) e o teste estatístico mostra que o p-value é bem menor no segundo caso.

P valor como decisão: p<0.05

Tradicionalmente, na maioria das Ciências e em particular em Comutação usa-se o valor de 0.05 de p-valor para afirmar que a diferença é estatisticamente significante

Na prática, se o p-valor do seu teste der 0.051 vc não tem um paper para publicar!!! Há criticas mais modernas sobre usar o p-valor como decisão, e veremos isso numa próxima aula, mas tradicionalmente essa é a prática.

Resumo: teste estatísticos

Quando você precisa de testes estatísticos?

Se não há custos para tomar a decisão

Se há custos diferentes para a decisão, é preciso mais evidência

O que testes estatísticos não fazem

Existem muitos testes estatísticos!

Poder de um teste

Testes pareados e não pareados

Tabela (parcial) de testes

Dois conjuntos de dados

  pareado não pareado
paramétrico teste T pareado teste T não pareado
não paramétrico Wilcoxon signed rank Wilcoxon sum rank

Mais de dois conjuntos de dados

  pareado não pareado
paramétrico repeated ANOVA ANOVA
não paramétrico Friedman Kruskal-Wallis

Testes para mais de um conjunto de dados são um pouco complicados. Os testes acima se baseiam não hipótese nula que todos os grupos vieram da mesma fonte. E portanto um p-valor pequeno apenas indica que não é provável que todas as médias sejam iguais. Mas o teste não diz quais grupos são estatisticamente diferentes dos outros.

Para determinar isso é preciso fazer testes post hoc Este blog tem alguma explicação sobre post hoc tests mas não vai muito a fundo. Na aula de problemas com o p-value veremos porque isso testes post hoc não são tão simples. Se voce precisa usar post hoc tests me procure.

outros tipos de dados

Há outros testes para outras situações (dados não numéricos, dados 0/1 pareados e não pareados, etc), e

Há testes para outras perguntas: os dois conjuntos de dados tem a mesma variância? Os dados de um conjunto estão distribuídos segundo uma Gaussiana? etc

Exemplos

> t.test(a,b)

    Welch Two Sample t-test

data:  a and b
t = 0.78595, df = 8.0367, p-value = 0.4544
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -28.82529  58.66978
sample estimates:
mean of x mean of y 
110.62933  95.70708 

> wilcox.test(a,b)

    Wilcoxon rank sum test

data:  a and b
W = 51, p-value = 0.4824
alternative hypothesis: true location shift is not equal to 0

wilcox.test roda o sum rank (dados não pareados), que é um teste não paramétrico

veja que o teste T deu um p-valor menor, e confirma o que foi dito que teste T é mais poderoso. Mas veja:

> t.test(a,d)

    Welch Two Sample t-test

data:  a and d
t = -2.5849, df = 7.7994, p-value = 0.03305
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -92.287107  -5.055969
sample estimates:
mean of x mean of y 
 110.6293  159.3009 

> wilcox.test(a,d)

    Wilcoxon rank sum test

data:  a and d
W = 12, p-value = 0.009764
alternative hypothesis: true location shift is not equal to 0

Na verdade a,b, e d não satisfazem as pressuposições do teste T (n>30) e então não deveríamos ter usado e teste T em nenhum dos exemplos.

Testes estatísticos em computação

Testes para um só conjunto de dados

?t.test

Note o parâmetro mu

Testes em R

Em python https://machinelearningmastery.com/statistical-hypothesis-tests-in-python-cheat-sheet/

Links

A maioria das aulas de estatistica no Youtube que eu conheco nao seguem a abordagem de fonte de dados que eu usei acima. Eles usam mais frequentemente a ideia de comparar um conjunto de medidas com 1 valor apenas (que eu menciono apenas brevemente). Mas ha varios vides sobre isso e voce certamente aprenderá algo útil neles.

Outra forma de entender