时间序列平稳性检验—R语言KPSS检验

1.R语言函数ur.kpss()

对于一个时间序列,例如用R自带的google股价变化数据goog(可以通过导入fpp2包之后直接使用goog这个数组变量,这里仅为示例,代指要检验的时间序列或者数组)。

1.1 对goog进行KPSS检验

R代码为

library(urca)
summary(ur.kpss(goog))

输出结果如下:
在这里插入图片描述这个结果怎么解释?没找到官方的太严格的资料。我根据一些参考资料中做了一些推断,仅供参考。

(1)比较显然地,检验的结果是用 Value of test-statistic:10.7223,来和下面最下面的4个显著性水平(significance level,10pct表示10%,5pct表示5%)和对应的临界值(critical values)来比较。

(2)KPSS原假设H0是——序列是平稳的,KPSS检验是单边检验。
假设检验的显著性水平的含义是
          P(拒绝H0 | H0为真)=α
而拒绝H0是指发生 Value of test-statistic>Critical value【这个地方是我猜的或者推断的】。显著性水平的含义亦即

P( Value of test-statistic> Critical value | H0为真)=Critical value for a sigificance level

(3)本次检验中Value of test-statistic=10.7223>0.739,也就是在“序列为平稳序列这个假设前提下,概率0.01的小概率事件发生了”。所以原假设为假。于是得出结论:原序列是非平稳序列。

1.2 对diff(goog)进行KPSS检验

我们都知道,差分是把非平稳序列转化为平稳序列的一种方法。对goog数据做一阶差分操作,重新进行检验,

summary(ur.kpss(diff(goog)))

运行结果如下:
在这里插入图片描述显然地,Value of test-statistic 越小越好,小于最左边的 critical values。检验结果没有得出拒绝原假设的检验结果,所以不能拒绝原假设。

1.3 其他情况

如果 Value of test-statistic落在不同的临界点之间,可以根据假设检验的原理来得出结论。其他的检验方法一般都用5%的临界点作为判断标准。

图片输出中的 Test is of type:mu with 7 lags的计算方法可能是trunc(3·sqrt(n)/13),其中n是数组或者时间序列的长度,本例中length(goog)=1000。所以trunc(3·sqrt(1000)/13)=7。

2.参考资料

一本教材中平稳性检验的一小节

关于KPSS的一个资料

关于KPSS中lags计算方法的一个资料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章