So führen sie einen shapiro-wilk-test in python durch


Der Shapiro-Wilk-Test ist ein Normalitätstest. Es wird verwendet, um zu bestimmen, ob eine Stichprobe aus einerNormalverteilung stammt oder nicht.

Um einen Shapiro-Wilk-Test in Python durchzuführen, können wir die Funktion scipy.stats.shapiro() verwenden, die die folgende Syntax verwendet:

scipy.stats.shapiro(x)

Gold:

  • x: eine Tabelle mit Beispieldaten.

Diese Funktion gibt eine Teststatistik und einen entsprechenden p-Wert zurück.

Wenn der p-Wert unter einem bestimmten Signifikanzniveau liegt, verfügen wir über ausreichende Beweise dafür, dass die Stichprobendaten nicht aus einer Normalverteilung stammen.

Dieses Tutorial zeigt einige Beispiele, wie Sie diese Funktion in der Praxis nutzen können.

Beispiel 1: Shapiro-Wilk-Test für normalverteilte Daten

Angenommen, wir haben die folgenden Beispieldaten:

 from numpy.random import seed
from numpy.random import randn

#set seed (eg make this example reproducible)
seed(0)

#generate dataset of 100 random values that follow a standard normal distribution
data = randn(100)

Der folgende Code zeigt, wie man an dieser Stichprobe von 100 Datenwerten einen Shapiro-Wilk-Test durchführt, um festzustellen, ob sie aus einer Normalverteilung stammen:

 from scipy.stats import shapiro

#perform Shapiro-Wilk test
shapiro(data)

ShapiroResult(statistic=0.9926937818527222, pvalue=0.8689165711402893)

Aus dem Ergebnis können wir ersehen, dass die Teststatistik 0,9927 und der entsprechende p-Wert 0,8689 beträgt.

Da der p-Wert nicht kleiner als 0,05 ist, können wir die Nullhypothese nicht ablehnen. Wir haben keine ausreichenden Beweise dafür, dass die Stichprobendaten nicht aus einer Normalverteilung stammen.

Dieses Ergebnis sollte nicht überraschen, da wir die Beispieldaten mit der Funktion randn() generiert haben, die Zufallswerte generiert, die einer Standardnormalverteilung folgen.

Beispiel 2: Shapiro-Wilk-Test für nicht normalverteilte Daten

Nehmen wir nun an, wir haben die folgenden Beispieldaten:

 from numpy.random import seed
from numpy.random import fish

#set seed (eg make this example reproducible)
seed(0)

#generate dataset of 100 values that follows a Poisson distribution with mean=5
data = fish(5, 100)

Der folgende Code zeigt, wie man an dieser Stichprobe von 100 Datenwerten einen Shapiro-Wilk-Test durchführt, um festzustellen, ob sie aus einer Normalverteilung stammen:

 from scipy.stats import shapiro

#perform Shapiro-Wilk test
shapiro(data)

ShapiroResult(statistic=0.9581913948059082, pvalue=0.002994443289935589)

Aus dem Ergebnis können wir ersehen, dass die Teststatistik 0,9582 und der entsprechende p-Wert 0,00299 beträgt.

Da der p-Wert kleiner als 0,05 ist, lehnen wir die Nullhypothese ab. Wir haben genügend Beweise dafür, dass die Stichprobendaten nicht aus einer Normalverteilung stammen.

Dieses Ergebnis sollte auch nicht überraschen, da wir die Beispieldaten mit der Funktion Poisson() generiert haben, die Zufallswerte generiert, die einerPoisson-Verteilung folgen.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere Normalitätstests in verschiedenen Statistikprogrammen durchführen:

So führen Sie einen Shapiro-Wilk-Test in R durch
So führen Sie einen Anderson-Darling-Test in Python durch
So führen Sie einen Kolmogorov-Smirnov-Test in Python durch

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert