如何在R中进行KPSS测试(含实例)

622 阅读2分钟

KPSS检验可以用来确定一个时间序列是否是趋势静止的。

这个测试使用以下的无效假设和备选假设。

  • H0:时间序列是趋势静止的。
  • HA:时间序列不是趋势静止的。

如果检验的p值小于某个显著性水平(如α=0.05),那么我们就拒绝无效假设,并得出结论,时间序列不是趋势静止的。

否则,我们就不能拒绝无效假设。

下面的例子展示了如何在R中进行KPSS检验。

例1:R语言中的KPSS测试(静止的数据)

首先,让我们在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')

我们可以使用tseries包中的 **kpss.test()**函数来对这个时间序列数据进行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:R中的KPSS测试(用非静止数据)

首先,让我们在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')

再一次,我们可以使用tseries包中的 **kpss.test()**函数对这个时间序列数据进行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中进行Augmented Dickey-Fuller检验

The postHow to Perform a KPSS Test in R (Including Example)appeared first onStatology.