Ich untersuche derzeit einige Daten, die von einer von mir geschriebenen MC-Simulation erstellt wurden. Ich erwarte, dass die Werte normal verteilt sind. Natürlich habe ich ein Histogramm gezeichnet und es sieht vernünftig aus (denke ich?):
[Oben links: Histogramm mit dist.pdf()
, oben rechts: kumulatives Histogramm mit dist.cdf()
, unten: QQ-Plot, data
vs dist
]
Dann habe ich mich entschlossen, dies mit einigen statistischen Tests genauer zu untersuchen. (Beachten Sie das dist = stats.norm(loc=np.mean(data), scale=np.std(data))
.) Was ich getan habe und die Ausgabe, die ich bekam, war die folgende:
Kolmogorov-Smirnov-Test:
scipy.stats.kstest(data, 'norm', args=(data_avg, data_sig)) KstestResult(statistic=0.050096921447209564, pvalue=0.20206939857573536)
Shapiro-Wilk-Test:
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)
Meine Schlussfolgerungen daraus wären:
Wenn ich mir das Histogramm und das kumulative Histogramm anschaue, würde ich definitiv eine Normalverteilung annehmen
Gleiches gilt nach dem Betrachten des QQ-Diagramms (wird es jemals viel besser?)
Der KS-Test sagt: "Ja, das ist eine Normalverteilung."
Meine Verwirrung ist: Der SW-Test sagt, dass er nicht normal verteilt ist (p-Wert viel kleiner als die Signifikanz alpha=0.05
, und die anfängliche Hypothese war eine Normalverteilung). Ich verstehe das nicht, hat jemand eine bessere Interpretation? Habe ich es irgendwann vermasselt?
args
Argument gibt keine Möglichkeit , anzugeben, ob die Parameter aus den Daten abgeleitet wurden oder nicht. Die Dokumentation ist nicht klar , aber das Fehlen jeglicher Erwähnung dieser Unterscheidungen deutet stark darauf hin, dass der Lilliefors-Test nicht durchgeführt wird. Dieser Test wird anhand eines Codebeispiels unter stackoverflow.com/a/22135929/844723 beschrieben .