Как выполнить тест KPSS в R (включая пример)

Как выполнить тест KPSS в R (включая пример)

Тест KPSS можно использовать, чтобы определить, является ли временной ряд стационарным трендом.

В этом тесте используются следующие нулевая и альтернативная гипотезы:

  • H 0 : Временной ряд имеет стационарный тренд.
  • H A : временной ряд не имеет стационарного тренда.

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

В противном случае мы не можем отвергнуть нулевую гипотезу.

В следующих примерах показано, как выполнить тест KPSS в R.

Пример 1: Тест KPSS в R (со стационарными данными)

Во-первых, давайте создадим некоторые поддельные данные в R для работы:

#make this example reproducible
set. seed (100)

#create time series data
data<-rnorm(100)

#plot time series data as line plot
plot(data, type='l') 

Мы можем использовать функцию kpss.test() из пакета tseries , чтобы выполнить тест KPSS для данных этого временного ряда:

library (tseries)

#perform KPSS test
kpss. test (data, null=" Trend ")

 KPSS Test for Trend Stationarity

data: data
KPSS Trend = 0.034563, Truncation lag parameter = 4, p-value = 0.1

Warning message:
In kpss.test(data, null = "Trend") : p-value greater than printed p-value

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

Это означает, что мы можем предположить, что временной ряд имеет стационарный тренд.

Примечание.На самом деле p-значение даже больше 0,1, но наименьшее значение, которое выводит функция kpss.test(), равно 0,1.

Пример 2: Тест KPSS в R (с нестационарными данными)

Во-первых, давайте создадим некоторые поддельные данные в R для работы:

#make this example reproducible

#create time series data
data <-c(0, 3, 4, 3, 6, 7, 5, 8, 15, 13, 19, 12, 29, 15, 45, 23, 67, 45)

#plot time series data as line plot
plot(data, type='l') 

И снова мы можем использовать функцию kpss.test() из пакета tseries , чтобы выполнить тест KPSS для данных этого временного ряда:

library (tseries)

#perform KPSS test
kpss. test (data, null=" Trend ")

 KPSS Test for Trend Stationarity

data: data
KPSS Trend = 0.149, Truncation lag parameter = 2, p-value = 0.04751

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

Это означает, что временной ряд не имеет стационарного тренда.

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

В следующих руководствах представлена дополнительная информация о том, как работать с данными временных рядов в R:

Как построить временной ряд в R
Как выполнить расширенный тест Дики-Фуллера в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.