Der Shapiro-Wilk Test ist ein Hypothesentest, der auf eine Stichprobe angewendet wird und dessen Nullhypothese darin besteht, dass die Stichprobe aus einer Normalverteilung erzeugt wurde.
Datenwissenschaftler müssen normalerweise prüfen, ob Daten normal verteilt sind . Ein Beispiel ist die Normalitätsprüfung der Residuen einer linearen Regression , um den F-Test korrekt verwenden zu können. Eine Möglichkeit hierfür ist der Shapiro-Wilk Test, ein Hypothesentest, der auf eine Stichprobe mit der Nullhypothese angewendet wird, dass die Stichprobe einer Normalverteilung entstammt.
Was ist Normalität?
Normalität bedeutet, dass eine bestimmte Stichprobe aus einer Gauß-Verteilung generiert wurde . Es muss sich nicht unbedingt um eine standardisierte Normalverteilung mit einem Mittelwert von Null und einer Varianz von eins handeln.
Es gibt mehrere Situationen, in denen Datenwissenschaftler normalverteilte Daten benötigen:
- Vergleichen Sie die Residuen der linearen Regression im Trainingstest mit den Residuen im Testsatz mithilfe eines F-Tests.
- Um den Mittelwert einer Variablen über verschiedene Gruppen hinweg mithilfe einer univariaten Varianzanalyse (ANOVA) oder eines Student-t-Tests zu vergleichen .
- Um die lineare Korrelation zwischen zwei Variablen mithilfe eines geeigneten Tests für ihren Pearson-Korrelationskoeffizienten zu beurteilen.
- Um zu beurteilen, ob die Wahrscheinlichkeit eines Merkmals gegenüber einem Ziel in einem Naive-Bayes-Modell zulässig ist, können wir ein Gaussian Naive-Bayes -Klassifizierungsmodell verwenden .
Dies alles sind unterschiedliche Beispiele, die im Berufsalltag eines Datenwissenschaftlers häufig vorkommen können.
Leider sind Daten nicht immer normal verteilt. Allerdings können wir bestimmte Transformationen anwenden, um eine Verteilung symmetrischer zu machen, wie beispielsweise bei einer Potenztransformation.
Eine gute Möglichkeit, die Normalität eines Datensatzes zu beurteilen, wäre die Verwendung eines QQ-Diagramms , das uns eine grafische Visualisierung der Normalität bietet. Aber wir brauchen oft ein quantitatives Ergebnis zur Überprüfung und ein Diagramm reicht dafür nicht aus. Deshalb können wir einen Hypothesentest verwenden, um die Normalität einer Stichprobe zu beurteilen.
Was ist der Shapiro-Wilk Test?
Der Shapiro-Wilk Test ist ein Hypothesentest, der auf eine Stichprobe mit der Nullhypothese angewendet wird, dass die Stichprobe aus einer Normalverteilung generiert wurde. Wenn der p-Wert niedrig ist, können wir eine solche Nullhypothese ablehnen und sagen, dass die Stichprobe nicht aus einer Normalverteilung generiert wurde.
Es ist ein einfach zu verwendendes Statistiktool, das uns helfen kann, eine Antwort auf die von uns benötigte Normalitätsprüfung zu finden, aber es hat einen Fehler: Es funktioniert nicht gut mit großen Datensätzen. Die maximal zulässige Größe eines Datensatzes hängt von der Implementierung ab, aber in Python sehen wir, dass eine Stichprobengröße von über 5.000 uns eine ungefähre Berechnung des p-Werts liefert.
Dieser Test ist jedoch immer noch ein sehr leistungsfähiges Werkzeug, das wir verwenden können. Sehen wir uns ein praktisches Beispiel in Python an.
Shapiro-Wilk Testbeispiel in Python
Lassen Sie uns zunächst NumPy und Matplotlib importieren .
Jetzt müssen wir die Funktion importieren, die den p-Wert eines Shapiro-Wilk Tests berechnet. Es ist die „Shapiro“-Funktion in scipy.stats.
Lassen Sie uns nun zwei Datensätze simulieren, von denen einer aus einer Normalverteilung und der andere aus einer Gleichverteilung generiert wurde.
Dies ist das Histogramm für „x“:
Wir können deutlich erkennen, dass die Verteilung einer Normalverteilung sehr ähnlich ist.
Und dies ist das Histogramm für „y“:
Wie erwartet ist die Verteilung sehr weit von der Normalverteilung entfernt.
Daher erwarten wir, dass ein Shapiro-Wilk Test uns einen ziemlich großen p-Wert für die „x“-Stichprobe und einen kleinen p-Wert für die „y“-Stichprobe liefert, da dieser nicht normal verteilt ist.
Berechnen wir solche p-Werte:
Wie wir sehen können, ist der p-Wert für die „x“-Stichprobe nicht niedrig genug, um die Nullhypothese abzulehnen.
Wenn wir den p-Wert für „y“ berechnen, erhalten wir ein anderes Ergebnis.
Der p-Wert ist niedriger als 5 Prozent, daher können wir die Nullhypothese der Normalität des Datensatzes ablehnen.
Wenn wir versuchen, den p-Wert für eine Stichprobe mit mehr als 5.000 Punkten zu berechnen, erhalten wir eine Warnung:
So können wir den Shapiro-Wilk Test auf Normalität in Python durchführen. Stellen Sie einfach sicher, dass Sie einen richtig geformten Datensatz verwenden, damit Sie nicht mit approximierten p-Werten arbeiten müssen roel navarro.
Vorteile des Shapiro-Wilk Tests
Der Shapiro-Wilk Test auf Normalität ist ein sehr einfach zu verwendendes Statistiktool zur Beurteilung der Normalität eines Datensatzes. Normalerweise wende ich ihn an, nachdem ich einen Datenvisualisierungssatz entweder über ein Histogramm und/oder ein QQ-Diagramm erstellt habe . Es ist ein sehr nützliches Tool, um sicherzustellen, dass eine Normalitätsanforderung jedes Mal erfüllt ist, wenn wir sie brauchen, und es sollte im Werkzeugkasten jedes Datenwissenschaftlers vorhanden sein.