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?
quelle
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 .Antworten:
Es gibt unzählige Möglichkeiten, wie sich eine Verteilung von einer Normalverteilung unterscheiden kann. Kein Test konnte alle erfassen. Infolgedessen unterscheidet sich jeder Test darin, wie überprüft wird, ob Ihre Verteilung mit der Normalverteilung übereinstimmt. Der KS-Test untersucht beispielsweise das Quantil, in dem sich Ihre empirische kumulative Verteilungsfunktion maximal von der theoretischen kumulativen Verteilungsfunktion der Normalen unterscheidet. Dies ist oft irgendwo in der Mitte der Verteilung, wo wir uns normalerweise nicht um Fehlanpassungen kümmern. Der SW-Test konzentriert sich auf die Schwänze. Hier ist es uns normalerweise wichtig, ob die Verteilungen ähnlich sind. Infolgedessen wird üblicherweise die SW bevorzugt. Darüber hinaus ist der KW-Test nicht gültig, wenn Sie Verteilungsparameter verwenden, die anhand Ihrer Stichprobe geschätzt wurden (siehe:Was ist der Unterschied zwischen dem Shapiro-Wilk-Normalitätstest und dem Kolmogorov-Smirnov-Normalitätstest? ). Sie sollten die SW hier verwenden.
Diagramme werden jedoch im Allgemeinen empfohlen und Tests nicht (siehe: Sind Normalitätstests „im Wesentlichen nutzlos“? ). Sie können aus all Ihren Darstellungen ersehen, dass Sie einen schweren rechten Schwanz und einen leichten linken Schwanz relativ zu einer echten Normalität haben. Das heißt, Sie haben ein wenig Rechtsversatz.
quelle
Sie können keine Normalitätstests basierend auf den Ergebnissen auswählen. In diesem Fall gehen Sie entweder mit der Ablehnung in einem durchgeführten Test vor oder verwenden sie überhaupt nicht. Der KS-Test ist nicht sehr leistungsfähig, er ist kein "spezialisierter" Normalitätstest. Wenn überhaupt, ist SW in diesem Fall wahrscheinlich vertrauenswürdiger.
Für mich hat Ihr QQ-Plot Anzeichen von entweder fettem rechten Schwanz oder Schrägstellung nach links oder von beidem. Ich würde vorschlagen, Tukeys Werkzeug zu verwenden, um die Fettigkeit von Schwänzen zu untersuchen. Es gibt Ihnen einen Hinweis darauf, wie sehr eine Verteilung normal oder Cauchy ist.
quelle