这是一个非平稳序列的示例,即使是白噪声测试也无法检测到(更不用说 Dickey-Fuller 类型测试):
是的,这可能令人惊讶,但这不是白噪声。
大多数非平稳反例都基于违反平稳的前两个条件:确定性趋势(非常数均值)或单位根/异方差时间序列(非常数方差)。但是,您也可以有具有恒定均值和方差的非平稳过程,但它们违反了第三个条件:自协方差函数 (ACVF)c o v (Xs,X吨)应该随着时间的推移是恒定的,并且是| s-t |只要。
上面的时间序列是此类序列的一个示例,其均值为零,单位方差,但 ACVF 取决于时间。更准确地说,上面的过程是一个局部平稳的 MA(1) 过程,其参数使得它变成了虚假的白噪声(参见下面的参考资料):MA 过程的参数X吨=ε吨+θ1εt - 1随时间变化
θ1( u ) = 0.5 − 1 ⋅ u ,
在哪里u = t / T是标准化时间。这看起来像白噪声(即使根据数学定义它显然不是)的原因是随时间变化的 ACVF 随着时间的推移积分为零。由于样本 ACVF 收敛到平均 ACVF,这意味着样本自协方差(和自相关 (ACF))将收敛到看起来像白噪声的函数。因此,即使是 Ljung-Box 测试也无法检测到这种非平稳性。关于针对局部静止替代方案测试白噪声的论文(免责声明:我是作者)提出了 Box 测试的扩展,以处理这种局部静止过程。
有关更多 R 代码和更多详细信息,另请参阅此博客文章。
mpiktas 评论后更新:
确实,这可能看起来就像一个在实践中看不到的理论上有趣的案例。我同意在现实世界的数据集中不太可能直接看到这种虚假的白噪声,但你会在几乎任何静止模型拟合的残差中看到这一点。无需过多的理论细节,只需想象一个通用的时变模型
θ ( u )具有时变协方差函数γθ( k , u ). 如果你拟合一个常数模型θ^,那么这个估计值将接近真实模型的时间平均值θ ( u ); 自然地,残差现在将接近θ(u)−θˆ,通过构造θˆ将积分为零(大约)。有关详细信息,请参见 Goerg (2012)。
让我们看一个例子
library(fracdiff)
library(data.table)
tree.ring <- ts(fread(file.path(data.path, "tree-rings.txt"))[, V1])
layout(matrix(1:4, ncol = 2))
plot(tree.ring)
acf(tree.ring)
mod.arfima <- fracdiff(tree.ring)
mod.arfima$d
## [1] 0.236507
所以我们用参数拟合分数噪声dˆ=0.23(自从dˆ<0.5我们认为一切都很好,我们有一个固定的模型)。让我们检查残差:
arfima.res <- diffseries(tree.ring, mod.arfima$d)
plot(arfima.res)
acf(arfima.res)
看起来不错吧?好吧,问题是残差是虚假的白噪声。我怎么知道?首先,我可以测试一下
Box.test(arfima.res, type = "Ljung-Box")
##
## Box-Ljung test
##
## data: arfima.res
## X-squared = 1.8757, df = 1, p-value = 0.1708
Box.test.ls(arfima.res, K = 4, type = "Ljung-Box")
##
## LS Ljung-Box test; Number of windows = 4; non-overlapping window
## size = 497
##
## data: arfima.res
## X-squared = 39.361, df = 4, p-value = 5.867e-08
其次,我们从文献中得知树木年轮数据实际上是局部平稳的分数噪声:参见Goerg (2012)和Ferreira、Olea 和 Palma (2013)。
这表明我的——诚然——理论上看起来的例子,实际上发生在大多数现实世界的例子中。