Как выполнить тест тренда манна-кендалла в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *