R语言时间序列平稳性几种单位根检验(ADF,KPSS,PP)及比较分析

时间序列模型根据研究对象是否随机分为确定性模型和随机性模型两大类。

随机时间序列模型即是指仅用它的过去值及随机扰动项所建立起来的模型,建立具体的模型,需解决如下三个问题模型的具体形式、时序变量的滞后期以及随机扰动项的结构。

由Kaizong Ye,Liao Bao撰写

μ是yt的均值;ψ是系数,决定了时间序列的线性动态结构,也被称为权重,其中ψ0=1;{εt}为高斯白噪声序列,它表示时间序列{yt}在t时刻出现了新的信息,所以εt称为时刻t的innovation(新信息)或shock(扰动)。

单位根测试是平稳性检验的特殊方法。单位根检验是对时间序列建立ARMA模型、ARIMA模型、变量间的协整分析、因果关系检验等的基础。

对于单位根测试,为了说明这些测试的实现,考虑以下系列

  • Dickey Fuller(标准)

这里,对于Dickey-Fuller测试的简单版本,我们假设

https://latex.codecogs.com/gif.latex?%20Y_t=alpha+beta%20t+varphi%20Y_{t-1}+varepsilon_t

我们想测试是否(或不是)。我们可以将以前的表示写为

https://latex.codecogs.com/gif.latex?%20Delta%20Y_t=alpha+beta%20t+[varphi-1]%20Y_{t-1}+varepsilon_t

所以我们只需测试线性回归中的回归系数是否为空。这可以通过学生t检验来完成。如果我们考虑前面的模型没有线性漂移,我们必须考虑下面的回归

我们的测试程序将基于学生t检验的值,

这正是计算使用的值

可以使用临界值(99%、95%、90%)来解释该值

如果统计量超过这些值,那么序列就不是平稳的,因为我们不能拒绝这样的假设。所以我们可以得出结论,有一个单位根。实际上,这些临界值是通过


机器学习助推快时尚精准销售预测

阅读文章


R有几个包可以用于单位根测试。

这里还有一个检验零假设是存在单位根。但是p值是完全不同的。


随时关注您喜欢的主题


  • 增广Dickey-Fuller检验

回归中可能有一些滞后现象。例如,我们可以考虑

https://latex.codecogs.com/gif.latex?%20Delta%20Y_t=alpha+beta%20t+[varphi-1]%20Y_{t-1}+psi%20Delta%20Y_{t-1}+varepsilon_t

同样,我们需要检查一个系数是否为零。这可以用学生t检验来做。

该值是使用

同样,也可以使用其他包:

结论是一样的(我们应该拒绝序列是平稳的假设)。

  • 带趋势和漂移的增广Dickey-Fuller检验

到目前为止,我们的模型中还没有包括漂移。但很简单(这将被称为前一过程的扩充版本):我们只需要在回归中包含一个常数,

考虑到方差输出的一些分析,这里获得了感兴趣的统计数据,其中该模型与没有集成部分的模型进行了比较,以及漂移,

这两个值也是通过

我们还可以包括一个线性趋势,

而R函数返回

  • KPSS 检验

在这里,在KPSS过程中,可以考虑两种模型:漂移模型或线性趋势模型。在这里,零假设是序列是平稳的。
代码是

在这种情况下,有一种趋势

再一次,可以使用另一个包来获得相同的检验(但同样,不同的输出)

至少有一致性,因为我们一直拒绝假设。

  • Philipps-Perron 检验

Philipps-Perron检验基于ADF过程。代码

另一种可能的替代方案是

  • 比较

我不会花更多的时间比较不同的代码,在R中,运行这些测试。我们再花点时间快速比较一下这三种方法。让我们生成一些或多或少具有自相关的自回归过程,以及一些随机游走,让我们看看这些检验是如何执行的:

这里,我们要计算检验的p值超过5%的次数,

我们可以在这里看到Dickey-Fuller测试的表现有多不稳定,因为我们的自回归过程中有50%(至少)被认为是非平稳的。


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498