R中的平稳性检验,检查均值、方差和协方差

机器算法验证 r 时间序列 平稳性
2022-04-09 00:47:34

这个问题最早是在Stackoverflow上被问到的,但由于没有人能够回答,我想在这里问它。

问题是:在增加/减少/跳跃均值和波动率测量的情况下,是否有一个平稳性测试能够识别平稳/非平稳时间序列?

在 Stackoverflow 上的问题中,我模拟了六个时间序列,看起来像这样。

情节

第一个时间序列被所有使用的测试正确归类为静止(Augmented-Dickey-Fuller Test (ADF)、Box-Pierce/Ljung-Box Test (Box)、Kwiatkowski-Phillips-Schmidt-Shin (KPSS)、和 Phillips-Perron 检验 (PP)),然而,特别是最后 3 个时间序列在许多情况下没有正确分类。

结果(使用测试的 p 值r(从另一个问题复制,您还可以在其中找到r-code 以重新创建相同的时间序列))如下所示:

# p-values for different tests (note that the tests have different H_0's) 
#      adf.test    Box.test kpss.test   PP.test  # stat:non_stat
# ts1 0.0100000 0.386053779      0.10 0.0100000  # 4:0 clearly stat
# ts2 0.4195604 0.000000000      0.01 0.3260713  # 0:4 clearly non-stat
# ts3 0.5467517 0.000000000      0.01 0.0100000  # 1:3 most-likely non-stat
# ts4 0.0100000 0.004360365      0.10 0.0100000  # 2:2 ?!
# ts5 0.0100000 0.033007310      0.10 0.0100000  # 2:2 ?!
# ts6 0.0100000 0.307453035      0.10 0.0100000  # 4:0 stationary ?!

您是否知道任何能够在不同情况下区分平稳/非平稳时间序列的测试?

非常感谢任何帮助/解决方案/想法!

1个回答

我也问过自己一个类似的问题。R中有一个来自{fractal}包的stationarity();它使用基于光谱分析的 PSR 测试;和来自 {locits} 的 hwtos2,它使用小波谱测试。该答案可以在以下链接中找到:http: //www.maths.bris.ac.uk/~guy/Research/LSTS/TOS.html