Как выполнить тест 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

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

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