Як виконати тест тенденції манна-кендалла в python
Критерій тенденції Манна-Кендалла використовується, щоб визначити, чи є тенденція в даних часових рядів. Це непараметричний тест, тобто не робиться жодних базових припущень щодо нормальності даних.
Тестові гіпотези такі:
H 0 (нульова гіпотеза): у даних немає тенденції.
H A (альтернативна гіпотеза): у даних наявна тенденція. (Це може бути як позитивна, так і негативна тенденція)
Якщо p-значення тесту є нижчим за певний рівень значущості (звичайними варіантами є 0,10, 0,05 і 0,01), то існує статистично значуще свідчення того, що в даних із часового ряду присутня тенденція.
У цьому посібнику пояснюється, як виконати тест тенденції Манна-Кендалла в Python.
Приклад: тест тенденції Манна-Кендалла в Python
Щоб виконати тест тенденції Манна-Кендалла в Python, ми спочатку встановимо пакет pymannkendall :
pip install pymannkendall
Після встановлення цього пакета ми зможемо виконати тест тенденції Манна-Кендалла на наборі даних часового ряду:
#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)
Ось як інтерпретувати результат тесту:
- trend : вказує на тенденцію. Можливий результат включає зростання, зменшення або відсутність тенденції.
- h: істинно, якщо тенденція присутня. Помилково, якщо тенденції немає.
- p: значення p тесту.
- z: нормалізаційна тестова статистика.
- Тау: Кендалл Тау.
- s: бал Манна-Кендала
- var_s: відхилення S
- нахил: Theil-Sen/оцінка нахилу
- перехоплення: перехоплення міцної лінії Кендаля-Тейла
Основним значенням, яке нас цікавить, є p-значення, яке повідомляє нам, чи є статистично значуща тенденція в даних.
У цьому прикладі p-значення дорівнює 0,4226 , що не менше 0,05. Таким чином, немає істотної тенденції в даних часових рядів.
Окрім виконання тесту тенденції Манна-Кендалла, ми можемо створити швидкий лінійний графік за допомогою Matplotlib для візуалізації фактичних даних часового ряду:
import matplotlib. pyplot as plt plt. plot (data)
разів
На діаграмі ми бачимо, що дані трохи розсіяні, що підтверджує відсутність чіткої тенденції в даних.
Додаткові ресурси
Як побудувати часовий ряд у Matplotlib
Як виконати розширений тест Дікі-Фуллера в Python
Як побудувати декілька серій із Pandas DataFrame