按时间序列测试稳定性


9

给定时间序列稳定后,是否有标准(或最佳)测试方法?


一些动机

我有一个随机动态系统,在每个时间步中输出一个值。该系统具有一定的瞬态行为,直到时间步长为止,然后稳定在某个平均值并带有一些误差。没有,,或错误都在我的面前。我愿意做一些假设(例如围绕高斯误差)xttNtxtxx例如),但我需要的先验假设越少越好。我唯一可以肯定的是,系统只会收敛到一个稳定点,并且稳定点周围的波动要比瞬变期间的波动小得多。这个过程也是单调的,我可以假设在附近开始并朝着爬升(在稳定在之前可能会有点过冲)。x00xx

该数据将从模拟来来了,我需要的稳定性试验,作为我的模拟静止状态(因为我只在过渡周期内感兴趣)。xt

精确的问题

如果仅访问某个有限的时间值,那么是否有一种方法可以以合理的精度说出随机动态系统已经稳定在某个点?如果测试还返回,和附近的错误,则奖励点。但是,这不是必需的,因为有简单的方法可以在仿真完成后弄清楚这一点。x0...xTTxxtx


天真的方法

首先浮现在脑海中的幼稚方法(例如,我曾将其用作某些神经网络的获胜条件)是选择参数和,那么如果在最后的时间步长中没有和两点使得然后我们得出结论,我们已经稳定下来。这种方法很简单,但并不十分严格。这也迫使我猜测和应该是什么好值。TETxxxx>ETE

似乎应该有一种更好的方法来回顾过去的某些步骤(或以某种方式对旧数据进行折价),从该数据中计算标准误差,然后测试是否需要其他步骤(或其他步骤)折扣方案)时间序列未超出此误差范围。我提供了一个稍微不太天真但仍然很简单的策略作为答案


任何帮助,或对标准技术的引用,不胜感激。

笔记

我还将这个问题按原样交叉发布到MetaOptimize上,并在更具有仿真风格的计算科学中进行了描述。


您找到明确的解决方案了吗?我对同一问题感兴趣,但所有答案都没有说服力。
Herman Toothrot

1
@ user4050不幸的是,我没有。我认为这实际上是一个非常广泛的问题,在某些领域中有许多更好的技术,而在另一些领域则较差。
Artem Kaznatcheev '17

Answers:


6

这段简短的话还远没有完整的答案,只是一些建议:

  • 如果你有时间,其中的行为是不同的,由两个时期不同我的意思是模型参数的任何差异(在这种特殊情况不相关),均值或方差或时间序列对象的任何其他预期的特性(你的情况) ,您可以尝试使用任何可以估计结构性(或流行性)变化时间(间隔)的方法xt
  • 在R中,有一个用于线性回归模型中结构变化的strucchange 。尽管它主要用于测试和监视线性回归参数的变化,但是一些统计信息可以用于时间序列的一般结构变化。

缺少任何异常值/水平移动/趋势变化以及模型残差中任何滞后的序列相关性均无法解决,这些因素通常会导致标准F测试无法正确应用,因此应格外小心(如您所建议!)。
IrishStat

@IrishStat,正如您从我的帖子中看到的那样,我不建议使用线性回归模型,我只是指出它可能具有类似的统计形式(CUMSUM或其他任何形式,因为后者适用于模型的残差,显然是具有(可能)不同限制分布的时间序列对象,这些分布说明了自相关(可测试),并且如果需要,可以在进行进一步测试之前进行离群值(也可测试)的调整。这只是我所知道的唯一可用于结构更改的R库。
Dmitrij Celov 2011年

我开始越来越喜欢这个答案。您是否对一些估算结构性变化时间的常用方法有很好的参考建议(最好是近期的调查论文)?
Artem Kaznatcheev 2012年

4

当我读到您的问题时,“稳定点附近的波动要比瞬变期间的波动小得多”,我从中得到的是要求检测错误的方差何时以及是否改变,以及何时改变!如果这是您的目标,那么您可以考虑查看工作或R. Tsay的“时间序列中的离群值,水平移动和方差变化”,Journal of Forecasting第7卷,1-20(1988)。我在这方面做了大量的工作,发现在进行良好的分析方面非常有帮助。在我看来,其他方法(例如ols /线性回归分析)都假设独立的观察结果且没有脉冲异常值和/或没有电平移动或本地时间趋势和时不变参数,这些都是不够的。


1

我在思考这个问题,并认为我会稍微改善天真的方法作为答案,希望人们能知道进一步的想法。这也使我们无需知道波动的大小。


实现它的最简单方法是使用两个参数。令是时间步长和之间的时间序列变化。当级数在附近稳定时,会在零附近波动,并带有一些标准误差。在这里,我们将假定此错误是正常的。(T,α)yt=xt+1xttt+1xy

取最后一个,,并使用Matlab的normfit之类的函数对高斯进行置信拟合。拟合将为我们提供均值,均值带有置信误差,而标准差具有相应的误差。如果,则可以接受。如果您想更加确定,则还可以通过找到的对 s进行归一化(这样您现在就具有标准偏差),并使用Kolmogorov-Smirnov进行测试TytαμαEμσEσ0(μEμ,μ+Eμ)ytσ1在置信水平下进行测试。α


这种方法的优势在于,与天真的方法不同,您不再需要了解均值周围的热波动幅度。局限性在于您仍然具有任意的参数,并且我们必须假设噪声呈正态分布(这是不合理的)。我不确定是否可以通过打折的加权均值来修改。如果期望使用不同的分布来模拟噪声,则应将normfit和Kolmogorov-Smirnov检验替换为该分布的等效项。T


0

您可能考虑向后测试(使用滚动窗口),以了解x长期平均值之间的协整关系。

x在均值附近摇摆时,希望窗口化的增强Dickey Fuller检验或您选择的任何协整检验都能告诉您这两个系列是协整的。进入过渡期后,两个系列会彼此偏离,希望您的测试会告诉您窗口系列不是共整合的。

该方案的问题在于,在较小的窗口中很难检测到协整。而且,太大的窗口(如果只包含过渡期的一小部分)会告诉您,窗口系列在不应该合并时会被合并。而且,您可能会猜到,没有办法提前知道“正确”窗口的大小。

我只能说,您必须尝试一下,看看是否能获得合理的结果。


0

在模拟运行时,将最后2N个点划分为上半部分和下半部分。为每个指标的关注指标计算一系列变化()。测试这两组增量的分布是否具有平稳性。最简单的方法是计算每个分布的cdf,将最近的分布标记为“已观察”,将先前的分布标记为“预期”。然后对每个十分位数的指标值进行Pearson卡方检验。mt+1mt


0

除了显而易见的卡尔曼滤波器解决方案外,您还可以使用小波分解并获得时间和频率局部化的功率谱。这满足了您没有假设的期望,但是不幸的是,它并没有对系统何时稳定进行正式测试。但是,对于实际应用来说,这很好。只要看看高频能量消失的时间以及父小波系数稳定的时间即可。


因为我不必测试父小波系数时间序列何时稳定,这是否就绕过了责任呢?还是有针对此特定时间序列的标准方法?显而易见的卡尔曼滤波器解决方案是什么?
Artem Kaznatcheev 2013年

@ArtemKaznatcheev为什么不能只看系数系列的图?我试图提供一种不符合您的测试愿望的解决方案,但是作为折衷方案,没有很多假设。
user2763361 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.