So führen Sie einen Mann-Kendall-Trendtest in Python durch

Von Fabian
Kategorie: Python
Lesezeit: 2 Minuten

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 der Daten gemacht wird.

Die Hypothesen für den Test lauten wie folgt:

H 0 (Nullhypothese): Es ist kein Trend in den Daten vorhanden.

H A (Alternativhypothese): In den Daten ist ein Trend vorhanden. (Dies kann ein positiver oder negativer Trend sein)

Wenn der p-Wert des Tests niedriger als ein bestimmtes Signifikanzniveau ist (übliche Auswahlmöglichkeiten sind 0,10, 0,05 und 0,01), gibt es statistisch signifikante Hinweise darauf, dass in den Zeitreihendaten ein Trend vorhanden ist.

Dieses Tutorial erklärt, wie man einen Mann-Kendall-Trendtest in Python durchführt.

Beispiel: Mann-Kendall-Trendtest in Python

Um einen Mann-Kendall-Trendtest in Python durchzuführen, installieren wir zunächst das Paket pymannkendall:

pip install pymannkendall

Sobald wir dieses Paket installiert haben, können wir den Mann-Kendall-Trendtest mit einer Reihe von Zeitreihendaten durchführen:

#Datensatz erstellen
data = [31, 29, 28, 28, 27, 26, 26, 27, 27, 27, 28, 29, 30, 29, 30, 29, 28]

#Mann-Kendall-Trendtest durchführen
import pymannkendall as mk

mk.original_test(data)

Mann_Kendall_Test(trend='no trend', h=False, p=0.422586268671707,
                  z=0.80194241623, Tau=0.147058823529, s=20.0,
                  var_s=561.33333333, slope=0.0384615384615, intercept=27.692307692)

So interpretieren Sie die Ausgabe des Tests:

  • trend: Zeigt den Trend an. Mögliche Ausgabe umfasst steigenden, fallenden oder keinen Trend.
  • h: True, wenn Trend vorhanden ist. False, wenn kein Trend vorhanden ist.
  • p: Der p-Wert des Tests.
  • z: Die Normalisierungsteststatistik.
  • Tau: Kendall Tau.
  • s: Mann-Kendal-Score
  • var_s: Varianz S
  • slope: Theil-Sen-Schätzer/Steigung
  • intercept: Schnittpunkt der Kendall-Theil Robust Line

Der Hauptwert, an dem wir interessiert sind, ist der p-Wert, der uns sagt, ob es einen statistisch signifikanten Trend in den Daten gibt oder nicht.

In diesem Beispiel beträgt der p-Wert 0,4226, was nicht weniger als 0,05 ist. Somit gibt es keinen signifikanten Trend in den Zeitreihendaten.

Zusammen mit der Durchführung des Mann-Kendall-Trendtests können wir mit Matplotlib ein schnelles Liniendiagramm erstellen, um die tatsächlichen Zeitreihendaten zu visualisieren:

import matplotlib.pyplot as plt

plt.plot(data)

Mannkendallpython

Aus dem Diagramm können wir erkennen, dass die Daten ein wenig verstreut sind, was bestätigt, dass es keinen klaren Trend in den Daten gibt.

Zusätzliche Ressourcen

So zeichnen Sie eine Zeitreihe in Matplotlib

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: