Расширенный тест дики-фуллера на 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