Як виконати тест kpss у r (включаючи приклад)


Тест KPSS можна використовувати, щоб визначити, чи має часовий ряд стаціонарний тренд.

Цей тест використовує таку нульову та альтернативну гіпотезу:

  • H 0 : часовий ряд має стаціонарний тренд.
  • H A : часовий ряд не має стаціонарного тренду.

Якщо 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *