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