Тест тренда Манна-Кендалла используется для определения того, существует ли тренд в данных временного ряда. Это непараметрический тест, означающий, что не делается никаких предположений о нормальности данных.
Гипотезы для теста следующие:
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)
Вот как интерпретировать вывод теста:
- тренд : это говорит о тренде. Возможные выходные данные включают увеличение, уменьшение или отсутствие тренда.
- h: True, если тренд присутствует. False, если тренд отсутствует.
- p: p-значение теста.
- z: Статистика нормализации теста.
- Тау: Кендалл Тау.
- s: оценка Манна-Кендала
- var_s: дисперсия S
- наклон: оценка Тейла-Сена/наклон
- перехват: Перехват надежной линии Кендалла-Тейла
Основное значение, которое нас интересует, — это p-значение, которое говорит нам, есть ли статистически значимая тенденция в данных.
В этом примере p-значение равно 0,4226 , что не меньше 0,05. Таким образом, в данных временного ряда нет существенной тенденции.
Наряду с выполнением теста тренда Манна-Кендалла мы можем создать быстрый линейный график с помощью Matplotlib для визуализации фактических данных временных рядов:
import matplotlib.pyplot as plt
plt.plot (data)
раз

Из графика видно, что данные немного разбросаны, что подтверждает отсутствие четкой тенденции в данных.
Дополнительные ресурсы
Как построить временной ряд в Matplotlib
Как выполнить расширенный тест Дики-Фуллера в Python
Как построить несколько рядов из фрейма данных Pandas