Jak wykonać test trendu manna-kendalla w pythonie
Test trendu Manna-Kendalla służy do określenia, czy istnieje trend w danych szeregów czasowych. Jest to test nieparametryczny, co oznacza, że nie przyjmuje się żadnych założeń dotyczących normalności danych.
Hipotezy testowe są następujące:
H 0 (hipoteza zerowa): w danych nie ma trendu.
H A (hipoteza alternatywna): W danych występuje trend. (Może to być tendencja pozytywna lub negatywna)
Jeśli wartość p testu jest poniżej pewnego poziomu istotności (najczęściej wybierane wartości to 0,10, 0,05 i 0,01), wówczas istnieje statystycznie istotny dowód na obecność trendu w danych z szeregów czasowych.
W tym samouczku wyjaśniono, jak przeprowadzić test trendu Manna-Kendalla w języku Python.
Przykład: test trendu Manna-Kendalla w Pythonie
Aby wykonać test trendu Manna-Kendalla w Pythonie, najpierw zainstalujemy pakiet pymannkendall :
pip install pymannkendall
Po zainstalowaniu tego pakietu możemy wykonać test trendu Manna-Kendalla na zbiorze danych szeregów czasowych:
#create dataset data = [31, 29, 28, 28, 27, 26, 26, 27, 27, 27, 28, 29, 30, 29, 30, 29, 28] #perform Mann-Kendall Trend Test 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)
Oto jak zinterpretować wynik testu:
- trend : Wskazuje trend. Możliwy wynik obejmuje tendencję rosnącą, malejącą lub brak trendu.
- h: prawda, jeśli trend jest obecny. Fałsz, jeśli nie ma trendu.
- p: Wartość p testu.
- z: statystyka testu normalizacyjnego.
- Tau: Kendall Tau.
- s: Wynik Manna-Kendala
- var_s: odchylenie S
- nachylenie: Theil-Sen/estymator nachylenia
- przechwycenie: Przechwycenie mocnej linii Kendall-Theil
Główną wartością, która nas interesuje, jest wartość p, która mówi nam, czy istnieje statystycznie istotny trend w danych.
W tym przykładzie wartość p wynosi 0,4226 , czyli nie mniej niż 0,05. W związku z tym nie ma istotnego trendu w danych szeregów czasowych.
Oprócz wykonania testu trendu Manna-Kendalla możemy utworzyć szybki wykres liniowy za pomocą Matplotlib w celu wizualizacji rzeczywistych danych szeregów czasowych:
import matplotlib. pyplot as plt plt. plot (data)
czasy
Z wykresu widać, że dane są nieco rozproszone, co potwierdza brak wyraźnego trendu w danych.
Dodatkowe zasoby
Jak wykreślić szereg czasowy w Matplotlib
Jak wykonać rozszerzony test Dickeya-Fullera w Pythonie
Jak wykreślić wiele serii z ramki danych Pandas