Расширенный тест дики-фуллера на python (с примером)


Временной ряд называется «стационарным», если он не имеет тенденции, представляет постоянную дисперсию во времени и имеет постоянную автокорреляционную структуру во времени.

Один из способов проверить, является ли временной ряд стационарным, — это выполнить расширенный тест Дики-Фуллера , который использует следующие нулевые и альтернативные гипотезы:

H 0 : Временной ряд нестационарен. Другими словами, его структура зависит от времени, и ее изменение не является постоянным во времени.

Х А : Временной ряд стационарен.

Если значение p теста ниже определенного уровня значимости (например, α = 0,05), то мы можем отвергнуть нулевую гипотезу и сделать вывод, что временной ряд стационарен.

В следующем пошаговом примере показано, как выполнить расширенный тест Дикки-Фуллера в Python для заданного временного ряда.

Пример: расширенный тест Дики-Фуллера на Python

Предположим, у нас есть следующие данные временных рядов в Python:

 data = [3, 4, 4, 5, 6, 7, 6, 6, 7, 8, 9, 12, 10]

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

 import matplotlib. pyplot as plt

plt. plot (data) 

Чтобы выполнить расширенный тест Дикки-Фуллера, мы можем использовать функцию adfuller() из библиотеки statsmodels . Во-первых, нам нужно установить statsmodels:

 pip install statsmodels

Затем мы можем использовать следующий код для выполнения расширенного теста Дикки-Фуллера:

 from statsmodels. tsa . stattools import adfuller

#perform augmented Dickey-Fuller test
adfuller(data)

(-0.9753836234744063,
 0.7621363564361013,
 0,
 12,
 {'1%': -4.137829282407408,
  '5%': -3.1549724074074077,
  '10%': -2.7144769444444443},
 31.2466098872313)

Вот как интерпретировать наиболее важные значения результата:

  • Статистика теста: -0,97538
  • P-значение: 0,7621

Поскольку значение p не меньше 0,05, мы не можем отвергнуть нулевую гипотезу.

Это означает, что временной ряд не является стационарным. Другими словами, его структура зависит от времени, и ее изменение не является постоянным во времени.

Дополнительные ресурсы

Как построить временной ряд в Matplotlib
Как построить несколько серий из DataFrame Pandas
Как выполнить тест тренда Манна-Кендалла в Python

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

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