Atualmente, estou analisando alguns dados que foram produzidos por uma simulação de MC que escrevi - espero que os valores sejam normalmente distribuídos. Naturalmente, plotei um histograma e parece razoável (eu acho?):
[Canto superior esquerdo: histograma com dist.pdf()
, canto superior direito: histograma cumulativo com dist.cdf()
, inferior: gráfico QQ, data
vs dist
]
Então eu decidi dar uma olhada mais profunda nisso com alguns testes estatísticos. (Observe que dist = stats.norm(loc=np.mean(data), scale=np.std(data))
.) O que fiz e o resultado que obtive foi o seguinte:
Teste de Kolmogorov-Smirnov:
scipy.stats.kstest(data, 'norm', args=(data_avg, data_sig)) KstestResult(statistic=0.050096921447209564, pvalue=0.20206939857573536)
Teste de Shapiro-Wilk:
scipy.stats.shapiro(dat) (0.9810476899147034, 1.3054057490080595e-05) # where the first value is the test statistic and the second one is the p-value.
QQ-plot:
stats.probplot(dat, dist=dist)
Minhas conclusões disso seriam:
olhando para o histograma e o histograma cumulativo, eu definitivamente assumiria uma distribuição normal
O mesmo vale depois de analisar o gráfico QQ (isso nunca fica muito melhor?)
o teste KS diz: 'sim, esta é uma distribuição normal'
Minha confusão é: o teste SW diz que não é normalmente distribuído (valor p muito menor que a significância alpha=0.05
, e a hipótese inicial era uma distribuição normal). Eu não entendo isso, alguém tem uma interpretação melhor? Eu estraguei tudo em algum momento?
args
argumentar se os parâmetros foram derivados dos dados ou não. A documentação não é clara , mas sua falta de menção a essas distinções sugere fortemente que ela não está realizando o teste de Lilliefors. Esse teste é descrito, com um exemplo de código, em stackoverflow.com/a/22135929/844723 .