- Es gibt viele Methoden, um zu testen, ob eine Variable eine Normalverteilung hat. In diesem Artikel erfährst du, welche du verwenden solltest!
- 1.1. Einführung
- 1.2. Interpretation
- 1.3. Implementierung
- 1.4. Fazit
- 2.1. Einführung
- 2.2 Interpretation
- 2.3. Implementierung
- 2.4. Fazit
- 3.1. Einführung
- 3.2. Interpretation
- 3.3. Implementierung
- 3.4. Schlussfolgerung
- Kolmogorov Smirnov Test
- 4.2. Interpretation
- 4.3. Implementierung
- 4.4. Fazit
- Lilliefors-Test
- 5.2. Interpretation
- 5.3. Implementierung
- 5.4. Schlussfolgerung
- Shapiro-Wilk-Test
- 6.2. Interpretation
- 6.3. Implementierung
- 6.4. Schlussfolgerung
- Schlussfolgerung – welcher Ansatz zu verwenden ist!
Es gibt viele Methoden, um zu testen, ob eine Variable eine Normalverteilung hat. In diesem Artikel erfährst du, welche du verwenden solltest!
1.1. Einführung
Die erste Methode, die fast jeder kennt, ist das Histogramm. Das Histogramm ist eine Datenvisualisierung, die die Verteilung einer Variablen darstellt. Es gibt uns die Häufigkeit des Auftretens pro Wert im Datensatz, worum es bei Verteilungen geht.
Das Histogramm ist eine großartige Möglichkeit, die Verteilung einer einzelnen Variable schnell zu visualisieren.
1.2. Interpretation
In der folgenden Abbildung zeigen zwei Histogramme eine Normalverteilung und eine Nicht-Normalverteilung.
- Links ist die Abweichung der Stichprobenverteilung (in grau) von der theoretischen Glockenkurvenverteilung (rote Linie) sehr gering.
- Rechts sehen wir eine ganz andere Form im Histogramm, die uns direkt sagt, dass es sich nicht um eine Normalverteilung handelt.
1.3. Implementierung
Ein Histogramm kann in Python wie folgt einfach erstellt werden:
1.4. Fazit
Das Histogramm ist eine gute Möglichkeit, die Verteilung einer einzelnen Variablen schnell zu visualisieren.
2.1. Einführung
Der Box Plot ist eine weitere Visualisierungstechnik, die zur Erkennung nicht-normaler Stichproben verwendet werden kann. Der Box Plot stellt die 5-Zahlen-Zusammenfassung einer Variablen dar: Minimum, erstes Quartil, Median, drittes Quartil und Maximum.
Der Boxplot ist eine großartige Möglichkeit, Verteilungen mehrerer Variablen gleichzeitig zu visualisieren.
2.2 Interpretation
Der Boxplot ist eine großartige Visualisierungstechnik, da er es ermöglicht, viele Boxplots nebeneinander darzustellen. Diese sehr schnelle Übersicht über die Variablen gibt uns eine Vorstellung von der Verteilung und als „Bonus“ erhalten wir die vollständige 5-Zahlen-Zusammenfassung, die uns bei der weiteren Analyse helfen wird.
Sie sollten zwei Dinge beachten:
- Ist die Verteilung symmetrisch (wie die Normalverteilung)?
- Entspricht die Breite (das Gegenteil der Spitzigkeit) der Breite der Normalverteilung? Dies ist auf einem Boxplot schwer zu erkennen.
2.3. Implementierung
Ein Boxplot kann wie folgt einfach in Python implementiert werden:
2.4. Fazit
Der Boxplot ist eine großartige Möglichkeit, Verteilungen mehrerer Variablen gleichzeitig zu visualisieren, aber eine Abweichung in der Breite/Punktzahl ist mit Boxplots schwer zu erkennen.
3.1. Einführung
Mit QQ-Plots beginnen wir, uns mit den ernsteren Dingen zu befassen, da dies ein wenig mehr Verständnis erfordert als die zuvor beschriebenen Methoden.
QQ Plot steht für Quantile vs. Quantile Plot, was genau das ist, was es tut: Theoretische Quantile gegen die tatsächlichen Quantile unserer Variablen auftragen.
Der QQ Plot erlaubt es uns, die Abweichung einer Normalverteilung viel besser zu sehen als in einem Histogramm oder Box Plot.
3.2. Interpretation
Wenn unsere Variable einer Normalverteilung folgt, müssen die Quantile unserer Variablen perfekt mit den „theoretischen“ Normalquantilen übereinstimmen: eine gerade Linie auf dem QQ-Plot sagt uns, dass wir eine Normalverteilung haben.
Wie auf dem Bild zu sehen ist, folgen die Punkte auf einem normalen QQ-Plot einer geraden Linie, während andere Verteilungen stark abweichen.
- Die Gleichverteilung hat zu viele Beobachtungen in beiden Extrembereichen (sehr hohe und sehr niedrige Werte).
- Die Exponentialverteilung hat zu viele Beobachtungen in den unteren Werten, aber zu wenig in den höheren Werten.
In der Praxis sehen wir oft etwas weniger ausgeprägtes, aber ähnlich geformtes. Eine Über- oder Unterrepräsentation im Schwanzbereich sollte Zweifel an der Normalität aufkommen lassen; in diesem Fall sollten Sie einen der unten beschriebenen Hypothesentests anwenden.
3.3. Implementierung
Die Implementierung eines QQ-Plots kann mit der statsmodels api in Python wie folgt erfolgen:
3.4. Schlussfolgerung
Der QQ Plot erlaubt es uns, die Abweichung einer Normalverteilung viel besser zu sehen als in einem Histogramm oder Box Plot.
Kolmogorov Smirnov Test
Wenn der QQ Plot und andere Visualisierungstechniken nicht schlüssig sind, kann statistische Inferenz (Hypothesentest) eine objektivere Antwort darauf geben, ob unsere Variable signifikant von einer Normalverteilung abweicht.
Wenn Sie Zweifel daran haben, wie und wann Sie Hypothesentests verwenden sollten, finden Sie hier einen Artikel, der eine intuitive Erklärung zu Hypothesentests gibt.
Der Kolmogorov-Smirnov-Test berechnet die Abstände zwischen der empirischen Verteilung und der theoretischen Verteilung und definiert die Teststatistik als das Supremum der Menge dieser Abstände.
Der Vorteil ist, dass derselbe Ansatz für den Vergleich beliebiger Verteilungen verwendet werden kann, nicht notwendigerweise nur für die Normalverteilung.
Der KS-Test ist bekannt, aber er hat nicht viel Aussagekraft. Er kann für andere Verteilungen als die Normalverteilung verwendet werden.
4.2. Interpretation
Die Teststatistik des KS-Tests ist die Kolmogorov-Smirnov-Statistik, die einer Kolmogorov-Verteilung folgt, wenn die Nullhypothese wahr ist.
Wenn die beobachteten Daten vollkommen einer Normalverteilung folgen, wird der Wert der KS-Statistik 0 sein. Der P-Wert wird verwendet, um zu entscheiden, ob der Unterschied groß genug ist, um die Nullhypothese zurückzuweisen:
- Wenn der P-Wert des KS-Tests größer als 0,05 ist, wird eine Normalverteilung angenommen
- Wenn der P-Wert des KS-Tests kleiner als 0,05 ist, wird keine Normalverteilung angenommen
4.3. Implementierung
Der KS-Test in Python mit Scipy kann wie folgt implementiert werden. Er liefert die KS-Statistik und ihren P-Wert.
4.4. Fazit
Der KS-Test ist zwar bekannt, hat aber nur eine geringe Aussagekraft. Das bedeutet, dass eine große Anzahl von Beobachtungen erforderlich ist, um die Nullhypothese zurückzuweisen. Er ist auch empfindlich gegenüber Ausreißern. Andererseits kann er für andere Arten von Verteilungen verwendet werden.
Lilliefors-Test
Der Lilliefors-Test basiert stark auf dem KS-Test. Der Unterschied besteht darin, dass beim Lilliefors-Test akzeptiert wird, dass der Mittelwert und die Varianz der Grundgesamtheit geschätzt und nicht vom Benutzer vorgegeben werden.
Deshalb verwendet der Lilliefors-Test die Lilliefors-Verteilung und nicht die Kolmogorov-Verteilung.
Zum Leidwesen des Lilliefors-Tests ist seine Aussagekraft immer noch geringer als die des Shapiro-Wilk-Tests.
5.2. Interpretation
- Wenn der P-Wert des Lilliefors-Tests größer als 0,05 ist, wird eine Normalverteilung angenommen
- Wenn der P-Wert des Lilliefors-Tests kleiner als 0,05 ist, wird keine Normalverteilung angenommen
5.3. Implementierung
Die Lilliefors-Test-Implementierung in statsmodels gibt den Wert der Lilliefors-Teststatistik und den P-Wert wie folgt zurück.
Achtung: In der statsmodels-Implementierung werden P-Werte kleiner als 0.001 werden als 0.001 und P-Werte über 0.2 als 0.2 angegeben.
5.4. Schlussfolgerung
Obwohl der Lilliefors-Test eine Verbesserung des KS-Tests darstellt, ist seine Aussagekraft immer noch geringer als die des Shapiro-Wilk-Tests.
Shapiro-Wilk-Test
Der Shapiro-Wilk-Test ist der aussagekräftigste Test für die Prüfung einer Normalverteilung. Er wurde speziell für die Normalverteilung entwickelt und kann nicht zum Testen gegen andere Verteilungen verwendet werden, wie zum Beispiel der KS-Test.
Der Shapiro-Wilk-Test ist der leistungsfähigste Test beim Testen auf eine Normalverteilung.
6.2. Interpretation
- Wenn der P-Wert des Shapiro-Wilk-Tests größer als 0,05 ist, wird eine Normalverteilung angenommen
- Wenn der P-Wert des Shapiro-Wilk-Tests kleiner als 0,05 ist, wird keine Normalverteilung angenommen
6.3. Implementierung
Der Shapiro-Wilk-Test kann wie folgt implementiert werden. Er liefert die Teststatistik W und den P-Wert.
Achtung: für N > 5000 ist die Teststatistik W genau, aber der p-Wert ist es möglicherweise nicht.
6.4. Schlussfolgerung
Der Shapiro-Wilk-Test ist der leistungsfähigste Test, wenn es um die Prüfung einer Normalverteilung geht. Sie sollten diesen Test auf jeden Fall verwenden.
Schlussfolgerung – welcher Ansatz zu verwenden ist!
Für eine schnelle und visuelle Identifizierung einer Normalverteilung verwenden Sie ein QQ-Diagramm, wenn Sie nur eine Variable zu betrachten haben, und ein Box-Diagramm, wenn Sie viele haben. Verwenden Sie ein Histogramm, wenn Sie Ihre Ergebnisse einem nicht-statistischen Publikum präsentieren müssen.
Als statistischen Test zur Bestätigung Ihrer Hypothese verwenden Sie den Shapiro-Wilk-Test. Er ist der aussagekräftigste Test, der das entscheidende Argument sein sollte.
Wenn Sie gegen andere Verteilungen testen, können Sie den Shapiro-Wilk-Test nicht verwenden und sollten zum Beispiel den Anderson-Darling-Test oder den KS-Test benutzen.