Warum sollten alle Normalitätstests die Nullhypothese ablehnen?


12

Der Kolgomorov-Smirnov-Test, der Shapiro-Test usw. lehnen alle die Hypothese ab, dass eine Verteilung normal ist. Wenn ich jedoch die normalen Quantile und das Histogramm zeichne, sind die Daten eindeutig normal. Vielleicht, weil die Leistung der Tests hoch ist?

Die Stichprobengröße liegt bei 650. Sollte also nicht mindestens einer dieser Tests die Nullhypothese nicht ablehnen?

Ergebnisse:

           Kolmogorov-Smirnov    D          0.05031          Pr > D       <0.010
           Cramer-von Mises      W-Sq       0.30003          Pr > W-Sq    <0.005
           Anderson-Darling      A-Sq       1.66965          Pr > A-Sq    <0.005
           Chi-Square            Chi-Sq  3250.43596     18   Pr > Chi-Sq  <0.001

1
Willkommen auf der Website. Die Macht kann in der Tat ein Problem sein. Können Sie Ihre Ergebnisse veröffentlichen, damit wir genauer darauf eingehen können?
StasK

1
Es ist fast unmöglich, die Normalität anhand eines Histogramms oder der Quantile mit großer Genauigkeit zu beurteilen. Die ersten drei dieser Tests messen Abweichungen in einem Wahrscheinlichkeitsdiagramm (normales qq-Diagramm). Wie linear sieht dieses Diagramm aus?
whuber

Antworten:


13

Normalitätstests sind Zeitverschwendung und Ihr Beispiel zeigt, warum. Bei kleinen Stichproben hat der Normalitätstest eine geringe Leistung. Daher müssen Entscheidungen darüber, welche statistischen Modelle verwendet werden sollen, auf a priori Wissen basieren . In diesen Fällen beweist das Versäumnis, die Null abzulehnen, nicht, dass die Null auf Bevölkerungsebene sogar annähernd wahr ist.

Wenn Sie große Stichproben haben, werden Normalitätstests lächerlich leistungsfähig, aber sie sagen Ihnen nichts, was Sie noch nicht wussten. Keine reale Menge ist genau normal verteilt. Die Normalverteilung ist nur eine mathematische Abstraktion, die in vielen Fällen eine hinreichend gute Annäherung darstellt. Der einfachste Beweis dafür ist, dass es keine reale Menge gibt (zumindest keine, an die ich denken kann), die eine reale Zahl als Wert annehmen könnte . Zum Beispiel gibt es im Universum nur so viele Moleküle. Es gibt nur so viele Dollar in der Geldmenge. Die Lichtgeschwindigkeit ist endlich. Computer können nur Zahlen endlicher Größe speichern. Selbst wenn etwas alle reellen Zahlen unterstützen würde, könnten Sie es nicht messen.

Der Punkt ist, dass Sie bereits wussten, dass Ihre Daten nicht genau normal verteilt sind, aber die Normalitätstests sagen nichts darüber aus, wie nicht normal die Daten sind. Sie geben Ihnen absolut keinen Hinweis darauf, ob Ihre Daten ungefähr normal verteilt sind, sodass statistische Inferenzmethoden, die Normalität voraussetzen, korrekte Antworten liefern würden. Ironischerweise sind gängige Tests (z. B. T-Test und ANOVA), bei denen Normalität angenommen wird, bei großen Stichprobengrößen robuster als Nicht-Normalität.


Nach Ihrer Antwort habe ich eine Frage gestellt, was einen guten Index für Nicht-Normalität ausmacht : stats.stackexchange.com/questions/16646/… Irgendwelche Gedanken?
Jeromy Anglim

In Bezug auf alles auf der Welt, was quantisiert wird: Können nicht auch diskrete Daten normal verteilt werden?
xmjx

Noch ein Kommentar zum Computerproblem: Bitte beachten Sie, dass der Mechanismus, der häufig zum Speichern von Dezimalzahlen in Computern verwendet wird, eine unterschiedliche Granularität für den Bereich kleiner und großer Zahlen aufweist. Daher ist der minimale Unterschied zwischen Zahlen, die der Computer speichern kann, bei kleinen Zahlen kleiner und bei großen Zahlen größer. Bei einem Computer sind 100000.1 und 100000.2 möglicherweise gleich, während 0.1 und 0.2 nicht identisch sind. (Nur ein Beispiel - in der realen Welt ist es nicht so schlimm.)
XMJX

@xmjx: Diskrete Daten können ungefähr normal verteilt werden, was bedeutet, dass sie für fast jeden praktischen Zweck nahe genug sind. Theoretisch wird jedoch jede diskrete Verteilung einige Tests auf Normalität nicht bestehen, wenn die Stichprobengröße groß genug ist. Die Normalverteilung ist kontinuierlich und daran führt kein Weg vorbei.
Dsimcha

@dsimcha Die Normalverteilung ist jedoch nur eine Wahrscheinlichkeitsdichtefunktion, die die Anzahl der Beobachtungen in einem bestimmten Bin der diskreten Variablen vorhersagen kann. Ich würde also verstehen, wenn Sie sagen würden, dass "keine echte Variable genau normalverteilt ist und deshalb Normalitätstests irgendwann fehlschlagen". Aber für "diskrete Daten können nicht normal verteilt werden, da sie nicht kontinuierlich sind" möchte ich eine Referenz. Ich interessiere mich wirklich für solche Sachen. Ich möchte hier keinen Kampf beginnen.
xmjx

4

Das überrascht mich nicht - bei einer ausreichend großen Stichprobengröße sollte jeder gute Test die Nullhypothese ablehnen, es sei denn, die Verteilung der Datenerzeugung ist wirklich (und genau) normal.

Beim Testen von Hypothesen ist man normalerweise daran interessiert, einen "leistungsfähigen" Test zu finden, bei dem sehr kleine Abweichungen von der Nullhypothese mit möglichst wenigen Daten festgestellt werden können.

Versuchen Sie, den Test mit einer Teilstichprobe der Größe 20, 50, 100, 200 auszuführen, und prüfen Sie, ab welcher Größe die Tests abgelehnt werden. Es ist leicht zu erkennen, ob ein Histogramm symmetrisch und im Allgemeinen glockenförmig ist, aber die Schwänze der Verteilung sind mit dem Auge schwerer zu beurteilen. Vielleicht gibt es Ausreißer in den Daten, die dazu führen, dass die Tests abgelehnt werden? Wenn ja, sehen Sie, was passiert, wenn Sie sie herausschneiden.


Danke für die Antwort. Der Zweck besteht darin, zu testen, ob die Residuen normal sind. Ich denke, ein Normal-Quantil-Diagramm zu betrachten und zu sehen, ob es auf y = x liegt, ist die beste Wahl?
Robbie

@Robbie Wenn Sie nur herausfinden möchten, ob Ihre Residuen normal sind, sollte eine Sichtprüfung in Ordnung sein. Statistische Tests der Verteilung sind dafür nicht wirklich erforderlich - wie bereits erwähnt, werden Abweichungen von der Normalität festgestellt, auch solche, die nicht wirklich wichtig sind.
Fomite

@EpiGrad Ich bin anderer Meinung. Normalitätstests haben eine notorisch geringe Leistung. Siehe meine Antwort oben. Bearbeiten auf der anderen Seite, Regression ist ziemlich robust zu Nicht-Normalität, so dass ich zustimmen würde , dass , wenn es normal aussieht, sind Sie wahrscheinlich gut für diesen Zweck.
David J. Harris

@ David J. Harris: "Notorisch geringe Leistung"? Für Stichprobengrößen von 650? Dies widerspricht allem, was ich gelesen oder erlebt habe. Hast du ein Zitat?
whuber

@ DavidJ.Harris Ich denke, im Kern, geringe Leistung oder falsche Bedeutung aufgrund einer großen Stichprobe, ist die gesamte Übung für die routinemäßige Prüfung der Normalitätsannahme nicht erforderlich.
Fomite

3

Die wahrscheinliche Ursache ist, dass Ihre Daten leicht nicht normal sind und Ihre Stichprobengröße groß genug ist, um dies aufzudecken.

Wenn die Verteilung wirklich normal ist, sollte sie normalerweise diese Tests bestehen, wie im folgenden R-Beispiel, in dem alle Tests bis auf einen bestanden werden.

> require(nortest)
> 
> set.seed(1)
> dat <- rnorm(650,mean=100, sd=5)
> 
> ad.test(dat)

        Anderson-Darling normality test

data:  dat 
A = 0.439, p-value = 0.2924

> cvm.test(dat)

        Cramer-von Mises normality test

data:  dat 
W = 0.0882, p-value = 0.1619

> lillie.test(dat)

        Lilliefors (Kolmogorov-Smirnov) normality test

data:  dat 
D = 0.0334, p-value = 0.08196

> pearson.test(dat)

        Pearson chi-square normality test

data:  dat 
P = 37.96, p-value = 0.035

> sf.test(dat)

        Shapiro-Francia normality test

data:  dat 
W = 0.9978, p-value = 0.5186

> shapiro.test(dat)

        Shapiro-Wilk normality test

data:  dat 
W = 0.9981, p-value = 0.675

Möglicherweise möchten Sie ein qqplot erstellen. Wenn dies nahe genug an einer geraden Linie liegt, können Sie es für Ihre Zwecke als nahe genug an der Normalität behandeln. Es kommt vielmehr darauf an, was diese Zwecke sind.


Der Zweck besteht darin, zu testen, ob die Residuen in der linearen Regression normal sind.
Robbie

1
@ Robbie. Anscheinend sind sie es nicht, aber sie können nahe genug sein, damit dies nicht viel ausmacht. Probieren Sie den qqplot aus.
Henry

Das Pearson-Chi-Quadrat-Ergebnis sieht so aus, als ob die Daten nicht normal verteilt sind. Nur sagen. Was tun mit einem solchen Ergebnis?
xmjx

@xmjx: Nicht viel - Wenn Sie ein 0,05-Kriterium anwenden, sollten Sie nicht überrascht sein, wenn Sie in 5% der Fälle ein falsch positives Ergebnis erhalten.
Henry

@ Henry Ich weiß. Was ich meine: Die Auswahl eines Normalitätstests im Voraus hat eine gewisse Wahrscheinlichkeit, einen zu wählen, der "signifikant" sagt. Ist es also besser, eine Batterie zu betreiben und dann ... was? Durchschnittlich? Mit der Mehrheit gehen?
xmjx

2

Lassen Sie mich der Antwort von dsimcha nicht zustimmen: "Normalitätstests sind Zeitverschwendung, und Ihr Beispiel zeigt, warum." Normalitätstests sind nie Zeitverschwendung, Sie können immer aus Ihren Daten lernen. Darüber hinaus müssen Sie einige Bedingungen testen, bevor Sie eine Analyse durchführen (z. B. ANOVA, Regression usw.). Relativ große Stichprobengrößen sollten besser mit einem Plot (QQplot, Histogramm) getestet werden. In solchen Fällen liefert die Visualisierung viel mehr Informationen über multimodales Verhalten und so weiter.

ANOVA und Regression sind robust gegenüber Nicht-Normalität, wenn große Stichprobengrößen behandelt werden. Der Hauptdatentyp, der Probleme verursacht, sind jedoch multimodale Datenstichproben.

Bei kleinen Stichproben ist der Kolgomorov-Smirnov-Test vor allem aufgrund seiner Empfindlichkeit die beste Option.


1

Ich werde den anderen bisher veröffentlichten Antworten leicht widersprechen: Diese Normalitätstests haben notorisch wenig Leistung, selbst bei relativ großen Stichproben, zumindest für bestimmte Arten von Abweichungen.

Hier ist ein kurzes Beispiel. Ich habe eine Mischung aus zwei Normalen erzeugt, deren Mittelwerte durch eine ganze SD getrennt sind.

set.seed(1)
reps = replicate(
  10000, 
  shapiro.test(c(rnorm(325, mean = 0), rnorm(325, mean = 1)))$p.value
)
mean(reps < .05)
[1] 0.0525

Wenn man bedenkt, dass es in 5% der Fälle Abweichungen von der Normalität "erkennt", selbst wenn es wirklich normal wäre, ist das nicht sehr beeindruckend.

Hier ist ein weiteres Beispiel: Ich füge ein gleichmäßiges Rauschen über einen Bereich von der Größe von zwei Standardabweichungen hinzu. Dieser ist sichtlich nicht normal.

set.seed(1)
reps = replicate(
  10000, 
  shapiro.test(rnorm(650) + 2 * runif(650))$p.value
)
mean(reps < .05)
[1] 0.0523

Wieder extrem niedrige Leistung für eine ziemlich große Abweichung von der Normalität.

Sind Sie sicher, dass Sie den qqplot richtig lesen? Könnten Sie es hochladen, damit wir es sehen können?

Bearbeiten auf der anderen Seite, ist Regression ziemlich robust zu Nicht-Normalität, so dass ich zustimmen würde , dass die visuelle Inspektion wahrscheinlich genug für die meisten Zwecke sein soll.


3
Ich denke, Sie verwechseln möglicherweise die scheinbare Größe einer "Abweichung", wie sie in einer Formel geschrieben ist, mit der tatsächlichen Abweichung zwischen zwei Verteilungen. In beiden Fällen liegt das Ergebnis bemerkenswert nahe am Normalwert. In Fall 1 ist es schwierig, das PDF visuell von einem normalen PDF zu unterscheiden. Alle seine seltsamen Momente sind (offensichtlich)0;; seine Kurtosis ist73/.25, nur ein kleines bisschen weniger als das eines normalen Normal (75/.25) Usw. Die Tatsache , dass der Shapiro-Wilks - Test hat jeden Strom diese Mischung als Nicht-Normal mit einer Pseudoprobe 625 zu identifizieren , ist bemerkenswert. Der zweite Fall ist ähnlich.
whuber
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.