Как выполнить тест kpss в r (включая пример)
Тест KPSS можно использовать для определения того, имеет ли временной ряд стационарный тренд.
В этом тесте используются следующие нулевая и альтернативная гипотезы:
- H 0 : Временной ряд имеет стационарный тренд.
- Х А : Временной ряд не имеет стационарного тренда.
Если значение p теста ниже определенного уровня значимости (например, α = 0,05), то мы отвергаем нулевую гипотезу и делаем вывод, что временной ряд не имеет стационарной тенденции.
В противном случае мы не сможем отвергнуть нулевую гипотезу.
В следующих примерах показано, как выполнить тест KPSS в R.
Пример 1: Тест KPSS в R (со стационарными данными)
Во-первых, давайте создадим в R несколько поддельных данных для работы:
#make this example reproducible
set. seeds (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
Значение p составляет 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