Oi, boa noite! Fiquei com duvida sobre o uso do Teste de Mann-Whitney, eu optei por usar o teste de Kruskal-Wallis por achar mais adequado. Pensando em:
- São grupos independentes teoricamente (O que também justifica Mann-Whitney);
- São não paramétricos, conforme teste de estatística abaixo (Usei Kolmogorov-Smirnov por ser uma amostra maior que 30).
import scipy.stats as stats
stat, p_value = stats.kstest(df_clean['contagem'], 'norm', args=(df_clean['contagem'].mean(), df_clean['contagem'].std()))
print('Estatística do teste: ', stat)
print('Valor-p: ', p_value)
Estatística do teste: 0.14846958993496928 Valor-p: 0.0 (Achei estranho, pode estar errado?)
- E mais importante, são 4 grupos ao todo: Inverno, Outono, Primavera, Verão.
# Teste estatístico
import scikit_posthocs as sp
# Teste de Kruskal-Wallis
stat, p_value = stats.kruskal(
df_clean[df_clean['estacao'] == 'Inverno']['contagem'],
df_clean[df_clean['estacao'] == 'Outono']['contagem'],
df_clean[df_clean['estacao'] == 'Primavera']['contagem'],
df_clean[df_clean['estacao'] == 'Verão']['contagem']
)
print('Estatística do teste de Kruskal-Wallis: ', stat)
print('Valor-p: ', p_value)
# Se o valor-p for significativo, conduza o post-hoc de Dunn
if p_value < 0.05:
dunn = sp.posthoc_dunn(
df_clean,
val_col='contagem',
group_col='estacao',
p_adjust='bonferroni'
)
print(dunn)
Estatística do teste de Kruskal-Wallis: 669.7665985294656 Valor-p: 7.543620508649512e-145 Inverno Outono Primavera Verão Inverno 1.000000e+00 1.506437e-49 6.356263e-30 3.140979e-144 Outono 1.506437e-49 1.000000e+00 3.101177e-03 1.234492e-25 Primavera 6.356263e-30 3.101177e-03 1.000000e+00 7.374353e-45 Verão 3.140979e-144 1.234492e-25 7.374353e-45 1.000000e+00
Usei o post hoc de Dunn para comparar dois a dois os valores e ver se tinha diferença de fato entre todos!
Minha lógica está correta? Poderia me explicar mais sobre a escolha de Mann Whitney para essa demonstração?