Тест 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