如何在 r 中执行 kpss 测试(包括示例)


KPSS 检验可用于确定时间序列是否具有平稳趋势。

该检验使用以下原假设和备择假设:

  • H 0 :时间序列具有平稳趋势。
  • H A :时间序列没有固定趋势。

如果检验的p 值低于一定的显着性水平(例如 α = 0.05),则我们拒绝原假设并得出时间序列不具有平稳趋势的结论。

否则,我们将无法拒绝原假设。

以下示例展示了如何在 R 中执行 KPSS 测试。

示例 1:R 中的 KPSS 测试(使用平稳数据)

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

我们可以使用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 中执行增强的 Dickey-Fuller 测试

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注