J'examine actuellement certaines données produites par une simulation MC que j'ai écrite - je m'attends à ce que les valeurs soient normalement distribuées. Naturellement, j'ai tracé un histogramme et il semble raisonnable (je suppose?):
[En haut à gauche: histogramme avec dist.pdf()
, en haut à droite: histogramme cumulatif avec dist.cdf()
, en bas: tracé QQ, data
vs dist
]
J'ai alors décidé d'approfondir cette question avec des tests statistiques. (Notez que dist = stats.norm(loc=np.mean(data), scale=np.std(data))
.) Ce que j'ai fait et la sortie que j'ai obtenue était la suivante:
Test de Kolmogorov-Smirnov:
scipy.stats.kstest(data, 'norm', args=(data_avg, data_sig)) KstestResult(statistic=0.050096921447209564, pvalue=0.20206939857573536)
Test 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)
Mes conclusions en seraient les suivantes:
en regardant l'histogramme et l'histogramme cumulatif, je suppose certainement une distribution normale
il en va de même après avoir regardé l'intrigue QQ (cela s'améliore-t-il jamais?)
le test KS dit: «oui, c'est une distribution normale»
Ma confusion est: le test SW dit qu'il n'est pas normalement distribué (valeur p bien plus petite que la signification alpha=0.05
, et l'hypothèse initiale était une distribution normale). Je ne comprends pas, est-ce que quelqu'un a une meilleure interprétation? Ai-je merdé à un moment donné?
args
argument de révéler si les paramètres ont été dérivés des données ou non. La documentation n'est pas claire , mais son absence de mention de ces distinctions suggère fortement qu'elle n'effectue pas le test de Lilliefors. Ce test est décrit, avec un exemple de code, sur stackoverflow.com/a/22135929/844723 .