Bisher habe ich die Shapiro-Wilk-Statistik verwendet, um Normalitätsannahmen in kleinen Stichproben zu testen.
Könnten Sie bitte eine andere Technik empfehlen?
Bisher habe ich die Shapiro-Wilk-Statistik verwendet, um Normalitätsannahmen in kleinen Stichproben zu testen.
Könnten Sie bitte eine andere Technik empfehlen?
Antworten:
Das fBasics- Paket in R (Teil von Rmetrics ) enthält mehrere Normalitätstests , die viele der beliebten Frequentistentests abdecken - Kolmogorov-Smirnov, Shapiro-Wilk, Jarque-Bera und D'Agostino - sowie einen Wrapper für die Normalitätstests im nördlichsten Paket - Anderson-Liebling, Cramer-von-Mises, Lilliefors (Kolmogorov-Smirnov), Pearson-Chi-Quadrat und Shapiro-Francia. Die Paketdokumentation enthält auch alle wichtigen Hinweise. Hier ist eine Demo, die zeigt, wie die Tests von Nortest verwendet werden .
Ein Ansatz, wenn Sie die Zeit haben, besteht darin, mehr als einen Test zu verwenden und auf Übereinstimmung zu prüfen. Die Tests variieren in vielerlei Hinsicht, so dass es nicht ganz einfach ist, "die Besten" zu wählen. Was verwenden andere Forscher in Ihrem Fachgebiet? Dies kann variieren und es ist möglicherweise am besten, die akzeptierten Methoden einzuhalten, damit andere Ihre Arbeit akzeptieren. Ich benutze häufig den Jarque-Bera-Test, teilweise aus diesem Grund, und Anderson-Darling zum Vergleich.
Einen Vergleich und eine Diskussion der Probleme finden Sie unter "Vergleich von Tests für univariate Normalität" (Seier 2002) und "Vergleich verschiedener Normalitätstests" (Yazici; Yolacan 2007).
Es ist auch trivial, diese Methoden zum Vergleich in R zu testen, dank aller Verteilungsfunktionen . Hier ist ein einfaches Beispiel mit simulierten Daten (ich werde die Ergebnisse nicht ausdrucken, um Platz zu sparen), obwohl eine umfassendere Darstellung erforderlich wäre:
library(fBasics); library(ggplot2)
set.seed(1)
# normal distribution
x1 <- rnorm(1e+06)
x1.samp <- sample(x1, 200)
qplot(x1.samp, geom="histogram")
jbTest(x1.samp)
adTest(x1.samp)
# cauchy distribution
x2 <- rcauchy(1e+06)
x2.samp <- sample(x2, 200)
qplot(x2.samp, geom="histogram")
jbTest(x2.samp)
adTest(x2.samp)
Sobald Sie die Ergebnisse der verschiedenen Tests über verschiedene Verteilungen haben, können Sie vergleichen, welche am effektivsten waren. Zum Beispiel ergab der p-Wert für den Jarque-Bera-Test über 0,276 für die Normalverteilung (Akzeptieren) und <2,2e-16 für den Cauchy (Ablehnen der Nullhypothese).
Normalerweise hat Shapiro-Wilk in relativ kleinen Samples eine gute Leistung.
Der Hauptkonkurrent in Studien, den ich gesehen habe, ist der allgemeinere Anderson-Darling, der ziemlich gut abschneidet, aber ich würde nicht sagen, dass es besser war. Wenn Sie klären können, welche Alternativen Sie interessieren, ist möglicherweise eine bessere Statistik offensichtlicher. [edit: wenn du parameter abschätzt, sollte der AD test dafür angepasst werden.]
[Ich rate dringend davon ab, Jarque-Bera in kleinen Stichproben zu berücksichtigen (die in statistischen Kreisen wahrscheinlich besser als Bowman-Shenton bekannt sind - sie untersuchten die Verteilung kleiner Stichproben). Die asymptotische Gelenkverteilung von Schiefe und Kurtosis ist nicht vergleichbar mit der Verteilung in kleinen Stichproben. Ebenso sieht eine Banane nicht wie eine Orange aus. Es hat auch eine sehr geringe Leistung gegenüber einigen interessanten Alternativen - zum Beispiel hat es eine geringe Leistung, um eine symmetrische bimodale Verteilung aufzunehmen, die eine Kurtosis aufweist, die der einer normalen Verteilung nahekommt.]
Häufig testen Menschen die Passgenauigkeit aus nicht besonders guten Gründen, oder sie beantworten eine andere Frage als die, die sie tatsächlich beantworten möchten.
Zum Beispiel wissen Sie mit ziemlicher Sicherheit bereits, dass Ihre Daten nicht ganz normal sind (nicht genau). Es macht also keinen Sinn, eine Frage zu beantworten, auf die Sie die Antwort kennen - und der Hypothesentest beantwortet sie auch nicht .
Wenn Sie wissen, dass Sie noch keine exakte Normalität haben, gibt Ihnen Ihr Hypothesentest der Normalität tatsächlich eine Antwort auf eine Frage, die näher bei "Ist meine Stichprobengröße groß genug, um den Betrag an Nicht-Normalität aufzunehmen, den ich habe" liegt Die eigentliche Frage, die Sie beantworten möchten, ist in der Regel eher "Was bewirkt diese Nicht-Normalität bei diesen anderen Dingen, die mich interessieren?". Der Hypothesentest misst die Stichprobengröße, während die Frage, die Sie beantworten möchten, nicht sehr stark von der Stichprobengröße abhängt.
Es gibt Zeiten, in denen das Testen der Normalität sinnvoll ist, aber diese Situationen treten bei kleinen Stichproben so gut wie nie auf.
Warum testest du Normalität?
Es gibt eine ganze Wikipedia-Kategorie für Normalitätstests, einschließlich:
Ich denke, AD ist wahrscheinlich der beste von ihnen.
Der Vollständigkeit halber mögen Ökonomen auch den Kiefer- und Lachs-Test aus ihrer 1983 erschienenen Veröffentlichung in Economics Letters - er summiert "normalisierte" Ausdrücke von Schiefe und Kurtosis, die dann Chi-Quadrat-verteilt werden. Ich habe eine alte C ++ - Version, die ich während meiner Schulzeit geschrieben habe und die ich in R übersetzen konnte.
Edit: Und hier ist ein neuer Artikel von Bierens, der Jarque-Bera und Kiefer-Salmon (wieder) herleitet.
Edit 2: Ich habe den alten Code durchgesehen und es scheint, dass es wirklich der gleiche Test zwischen Jarque-Bera und Kiefer-Salmon ist.
Tatsächlich unterscheiden sich der Kiefer-Lachs-Test und der Jarque-Bera-Test kritisch, wie an mehreren Stellen gezeigt, aber zuletzt hier - Momententests für standardisierte Fehlerverteilungen: Ein einfacher robuster Ansatz von Yi-Ting Chen. Der konstruktive Kiefer-Lachs-Test ist im Gegensatz zum standardmäßigen Jarque-Bera-Test gegenüber Fehlerstrukturen vom Typ ARCH robust. Der Artikel von Yi-Ting Chen entwickelt und diskutiert, was meiner Meinung nach derzeit die besten Tests sind.
Bei Stichprobengrößen <30 Probanden gilt Shapiro-Wilk als robust - Seien Sie vorsichtig , wenn Sie das Signifikanzniveau des Tests anpassen, da dies zu einem Typ-II-Fehler führen kann! [1]