了解 R 的增强型 Dickey Fuller 检验中的 k 滞后

机器算法验证 r 时间序列 趋势
2022-02-14 05:53:30

我在 R 中进行了一些单位根测试,但我不完全确定如何使用 k 滞后参数。我使用tseries包中的增强型Dickey Fuller 测试Philipps Perron 测试。显然,默认的参数(对于)仅取决于系列的长度。如果我选择不同的值,我会得到完全不同的结果。拒绝空值:kadf.testk

Dickey-Fuller = -3.9828, Lag order = 4, p-value = 0.01272
alternative hypothesis: stationary 
# 103^(1/3)=k=4 


Dickey-Fuller = -2.7776, Lag order = 0, p-value = 0.2543
alternative hypothesis: stationary
# k=0

Dickey-Fuller = -2.5365, Lag order = 6, p-value = 0.3542
alternative hypothesis: stationary
# k=6

加上PP测试结果:

Dickey-Fuller Z(alpha) = -18.1799, Truncation lag parameter = 4, p-value = 0.08954
alternative hypothesis: stationary 

看数据,我会认为底层数据是非平稳的,但我仍然不认为这些结果是强备份,特别是因为我不了解参数的作用。如果我查看 decompose / stl,我会发现趋势具有很强的影响,而余数或季节性变化的影响很小。我的系列是季度频率。k

有什么提示吗?

2个回答

自从我查看 ADF 测试以来已经有一段时间了,但是我确实记得至少两个版本的 adf 测试。

http://www.stat.ucl.ac.be/ISdidactique/Rhelp/library/tseries/html/adf.test.html

http://cran.r-project.org/web/packages/fUnitRoots/

fUnitRoots 包有一个名为 adfTest() 的函数。我认为“趋势”问题在这些软件包中的处理方式不同。

编辑 ------ 从以下链接的第 14 页开始,adf 测试有 4 个版本(uroot 已停产):

http://math.uncc.edu/~zcai/FinTS.pdf

再来一个链接。阅读以下链接中的第 6.3 节。它在解释滞后项方面做得比我能做的要好得多:

http://www.yats.com/doc/cointegration-en.html

另外,我会小心任何季节性模型。除非您确定存在一些季节性因素,否则我会避免使用季节性术语。为什么?任何事情都可以分解为季节性术语,即使不是。这里有两个例子:

#First example: White noise
x <- rnorm(200)

#Use stl() to separate the trend and seasonal term
x.ts <- ts(x, freq=4) 
x.stl <- stl(x.ts, s.window = "periodic")
plot(x.stl)

#Use decompose() to separate the trend and seasonal term
x.dec <- decompose(x.ts)
plot(x.dec)

#===========================================

#Second example, MA process
x1 <- cumsum(x)

#Use stl() to separate the trend and seasonal term
x1.ts <- ts(x1, freq=4)
x1.stl <- stl(x1.ts, s.window = "periodic")
plot(x1.stl)

#Use decompose() to separate the trend and seasonal term
x1.dec <- decompose(x1.ts)
plot(x1.dec)

下图来自上面的 plot(x.stl) 语句。stl() 在白噪声中发现了一个小的季节性项。你可能会说这个词太小了以至于它真的不是问题。问题是,在实际数据中,您不知道该术语是否存在问题。在下面的示例中,请注意趋势数据系列的部分看起来像是原始数据的过滤版本,而其他部分可能被认为与原始数据有很大不同。

在此处输入图像描述

k 参数是为解决串行相关性而添加的一组滞后。ADF 中的 A 表示通过添加滞后来增强测试。可以通过多种方式选择 ADF 中的滞后数。一种常见的方法是从先验选择的大量滞后开始,然后依次减少滞后的数量,直到最长的滞后在统计上显着。

在 ADF 中应用滞后后,您可以测试残差中的序列相关性。