Testes de normalidade

Fundamentos de Inferência em Python

Paul Savala

Assistant Professor of Mathematics

Altura de homens nos EUA

Um histograma aproximadamente normal, com altura média de 180 centímetros, altura mínima de 160 centímetros e máxima de 200 centímetros.

Fundamentos de Inferência em Python

Resíduos do modelo

Um gráfico de dispersão com anos de emprego no eixo x, salário anual no eixo y, e uma tendência linear positiva. Uma linha vermelha de melhor ajuste também está traçada.

Espere distribuição igual acima e abaixo da previsão

Fundamentos de Inferência em Python

Resíduos do modelo

Um histograma com "residual (error)" no eixo x, "count" no eixo y, e uma distribuição bimodal com um modo em torno de menos dez mil e outro em torno de mais trinta mil.

Fundamentos de Inferência em Python

Aplicações de distribuições normais

  • Testes paramétricos - Testes de hipótese que assumem normalidade
  • Teste t para comparar médias:
    • Assume que as médias amostrais são normalmente distribuídas
    • Se não, as conclusões são inválidas
Fundamentos de Inferência em Python

Um histograma com salários entre sessenta mil e noventa e cinco mil no eixo x, e frequência no eixo y. O histograma é relativamente próximo do normal.

Fundamentos de Inferência em Python

Teste de Anderson-Darling para normalidade

  • Testa a suposição de normalidade

$H_0$: Dados são normalmente distribuídos

$H_a$: Dados não são normalmente distribuídos

Fundamentos de Inferência em Python

Teste de Anderson-Darling no SciPy

result = stats.anderson(police_df['Annual Salary'])

result.statistic
27.41
result.critical_values
[0.574, 0.654, 0.784, 0.915, 1.088]
result.significance_level[result.statistic > result.critical_values]
[15.  10.   5.   2.5  1. ]
Fundamentos de Inferência em Python

Ajustando uma distribuição normal

mu, std = stats.norm.fit(police_df['Annual Salary'])

estimated_pct_under_70k = stats.norm.cdf(70000, loc=mu, scale=std)
print(estimated_pct_under_70k)
0.27
actual_under_70k = police_df[police_df['Annual Salary'] < 70000]

print(len(actual_under_70k) / len(police_df))
0.20
Fundamentos de Inferência em Python

Vamos praticar!

Fundamentos de Inferência em Python

Preparing Video For Download...