Ein Mann-Kendall-Trendtest wird verwendet, um festzustellen, ob in Zeitreihendaten ein Trend vorhanden ist oder nicht. Es ist ein nichtparametrischer Test, was bedeutet, dass keine zugrunde liegende Annahme über die Normalität …
Mit dem Kolmogorov-Smirnov-Test wird geprüft, ob eine Probe aus einer bestimmten Verteilung stammt oder nicht.
Um einen Kolmogorov-Smirnov-Test in Python durchzuführen, können wir scipy.stats.kstest() für einen Test mit einer Stichprobe oder scipy.stats.ks_2samp() für einen Test mit zwei Stichproben verwenden.
Dieses Tutorial zeigt ein Beispiel für die praktische Verwendung der einzelnen Funktionen.
Beispiel 1: Kolmogorov-Smirnov-Test mit einer Probe
Angenommen, wir haben die folgenden Beispieldaten:
from numpy.random import seed
from numpy.random import poisson
# Dieses Beispiel reproduzierbar machen
seed(0)
# Generieren Sie einen Datensatz mit 100 Werten, die einer Poisson-Verteilung mit Mittelwert = 5 folgen
data = poisson(5, 100)
Der folgende Code zeigt, wie ein Kolmogorov-Smirnov-Test an dieser Stichprobe von 100 Datenwerten durchgeführt wird, um festzustellen, ob sie aus einer Normalverteilung stammen:
from scipy.stats import kstest
# Kolmogorov-Smirnov-Test durchführen
kstest(data, 'norm')
KstestResult(statistic=0.9072498680518208, pvalue=1.0908062873170218e-103)
Aus der Ausgabe können wir erkennen, dass die Teststatistik 0,9072 und der entsprechende p-Wert 1,0908e-103 beträgt. Da der p-Wert kleiner als 0,05 ist, lehnen wir die Nullhypothese ab. Wir haben genügend Beweise, um zu sagen, dass die Probendaten 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 einer Poisson-Verteilung folgen.
Beispiel 2: Kolmogorov-Smirnov-Test mit zwei Proben
Angenommen, wir haben die folgenden zwei Beispieldatensätze:
from numpy.random import seed
from numpy.random import randn
from numpy.random import lognormal
# Dieses Beispiel reproduzierbar machen
seed(0)
# Generieren Sie zwei Datensätze
data1 = randn(100)
data2 = lognormal(3, 1, 100)
Der folgende Code zeigt, wie ein Kolmogorov-Smirnov-Test an diesen beiden Proben durchgeführt wird, um festzustellen, ob sie aus derselben Verteilung stammen:
from scipy.stats import ks_2samp
# Kolmogorov-Smirnov-Test durchführen
ks_2samp(data1, data2)
KstestResult(statistic=0.99, pvalue=4.417521386399011e-57)
Aus der Ausgabe können wir erkennen, dass die Teststatistik 0,99 und der entsprechende p-Wert 4,4175e-57 beträgt. Da der p-Wert kleiner als 0,05 ist, lehnen wir die Nullhypothese ab. Wir haben genügend Beweise, um zu sagen, dass die beiden Beispieldatensätze nicht aus derselben Verteilung stammen.
Dieses Ergebnis sollte auch nicht überraschen, da wir Werte für die erste Stichprobe unter Verwendung der Standardnormalverteilung und Werte für die zweite Stichprobe unter Verwendung der logarithmischen Normalverteilung generiert haben.
Zusätzliche Ressourcen
So führen Sie einen Shapiro-Wilk-Test in Python durch
So führen Sie einen Anderson-Darling-Test in Python durch
So führen Sie einen Mann-Kendall-Trendtest in Python durch
So führen Sie einen Chow-Test in Python durch
Ein Chow-Test wird verwendet, um zu testen, ob die Koeffizienten in zwei verschiedenen Regressionsmodellen auf verschiedenen Datensätzen gleich sind.
Dieser Test wird typischerweise im Bereich der Ökonometrie mit Zeitreihendaten verwendet …