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.