如何检测由于“政策”变更而导致的时间序列数据的重大变更?


15

我希望这是张贴此文章的正确地点,我考虑过将其张贴在怀疑论者身上,但我认为他们只是说这项研究在统计上是错误的。我对这个问题的另一面感到好奇,那就是如何正确地做到这一点。

作者在网站Quantified Self上发布了一项实验结果,该实验是对一段时间内自己测量的一些输出指标进行比较,并比较了突然停止喝咖啡前后的比较。对结果进行了主观评估,作者认为他有证据表明时间序列有变化,并且与政策的变化有关(饮用咖啡)

这让我想起了经济模型。我们只有一个经济体(目前正在关注),因此经济学家通常基本上在进行n = 1个实验。因此,几乎可以肯定的是,随着时间的推移数据是自相关的。美联储表示,经济学家通常在观察其启动一项政策的过程,并试图确定时间序列是否发生变化,这有可能是由于该政策造成的。

根据数据确定时间序列是增加还是减少的适当测试是什么?我需要多少数据?存在哪些工具?我最初的谷歌搜索建议使用马尔可夫切换时间序列模型,但并不是我的谷歌搜索技能让我无法使用该技术的名称来做任何事情。

Answers:


4

Jason提到的Box-Tiao论文是基于已知的法律变更。这里的问题是如何检测时间点。答案是使用Tsay程序检测干预措施,包括脉冲,水平移动,季节性脉冲和/或本地时间趋势。


1

翻阅一些有关结构性断裂的旧笔记,我有以下两个引用:

Enders,“应用计量经济时间序列”,第二版,第ch。5,

Enders讨论了干预措施,脉冲函数,渐进变化函数,传递函数等。本文也可能会有所帮助:

Box,GEP和GC Tiao。1975年。“干预分析及其在经济和环境问题中的应用”,《美国统计协会杂志》 70:70-79。


1

您难道不只是使用变更点模型,然后尝试使用MCMC算法(例如Gibbs Sampling)来识别变更点吗?

只要您对数据有一定的先验分布或完整的条件分布(对于Gibbs),这应该相对容易实现。

您可以在此处找到快速概述


1

如果您将所有时间点都视为候选更改点(即中断点,也称为结构性更改),则strucchange包是一个很好的选择。

在您的特定情况下,似乎只有一个候选时间点。在这种情况下,想到了几个快速选择:

  1. T检验:每天在“戒烟前”与“戒烟后”期间集中注意力的时间的t检验。如果您担心日常相关性,则可以放弃一些观察,以便有足够长的时间间隔相信日期不再相关。通过这种方法,您将可以简单地权衡功率。
  2. AR:为AR模型配备一个假人:“退出后”。如果预测变量很重要,那么您将进行更改。使用AR,将捕获两天之间的(可能)依赖性。

:John的想法是,您不知道“一个候选时间点”,而是想通过分析来找到它,也许是在数百个时间序列中。确定一次候选者的“眼力测试”通常不足,因为一次脉冲和潜在的ARIMA结构闭塞。干预检测方法la R. Rsay或George Tiao搜索未知的LEVEL / STEP移位实际上构造了您描述的变量(一个带有零后跟1的虚拟对象)。应谨慎考虑首先确定干预措施,然后确定ARIMA组件,反之亦然。
IrishStat

@IrishStat:在引用的Blog中,更改点是已知的。对于不是这种情况,则引用了strucchange R包。
JohnRos

:John From struchange文档“最后,可以使用我熟悉的CHOW方法估算具有结构变化的回归模型的断点。”测试或找到回归系数的断点需要对回归模型进行规范,如果我是纠正此问题与回答“根据数据确定时间序列是增加还是减少了吗?”这一问题无关。我认为您的建议不足以回答OP的问题。您的建议回答了一个问题我不相信有人问。
IrishStat

:john的确如此,但由于仅在教科书或梦中才发现只有截距的模型,所以这很琐碎。
IrishStat,

@IrishStat:的确,结构变更框架更通用。然而,可以通过拟合仅截获模型来检测“数据”的增加或减少。
2011年

1

几年前,我在当地的ASA分会上听了一个研究生Stacey Hancock的演讲,它是关于时间序列的“结构性破坏估计”的。谈话真的很有趣,之后我与她交谈,她当时与当时在哥伦比亚州科罗拉多州立大学的理查德·戴维斯(Brockwell-Davis的)一起工作。这次演讲是戴维斯等人的延伸。在2006年JASA的一篇名为“非平稳时间序列模型的结构断裂估计”的论文中进行了这项研究,该论文可在这里免费获得。

戴维斯拥有一种称为Auto-PARM的方法的软件实现,并将其制作为Windows可执行文件。如果您与他联系,您也许可以得到一份副本。我有一个副本,这是关于1200个观察时间序列的示例输出:

    ============== RESULTS ===============
  ISLAND           1
    SC=   1910.58314770669
    Breaking point/AR order
           1              1
         351              1
         612              3
    ======================================
 Total time:   5.812500

因此该序列在开始时是AR(1),在观察值351,AR(1)进程更改为另一个AR(1)进程(您可以获取参数),然后在观察值612,该进程更改为AR(3) 。

我尝试使用Auto-PARM进行的一个有趣设置是查看NN5竞争中每周的ATM取款数据。我记得算法在给定年份的11月下旬发现结构性中断,例如美国假日购物季节的开始。

那么,如何通过现有的实现方式使用该算法?好了,再次,您可以联系戴维斯,看看是否可以获得Windows可执行文件。当我在Rogue Wave Software时,我与Davis一起使Auto-PARM进入IMSL数值库。它被移植到的第一种语言是Fortran,它被称为Auto_PARM,我怀疑Rogue Wave将很快发布C端口,随后是Python,C#和Java端口。


:Josh他认为,在您的情况下,AR(3)是否具有随时间变化的恒定参数,OP在我看来并不是指测试模型参数恒定性的假设。他认为在检测残差均值之前未知的变化方面很有趣。
IrishStat

mods:在我看来,OP不是指检验模型参数恒定性的假设,在您的情况下,AR(3)是否具有随时间变化的常数。他相信有兴趣检测迄今为止未知的均值变化现在,我完全同意在没有干预检测的情况下,残差的平均值。一个人可能会发现某个时间点,其中某个模型的参数和/或错误可能已发生重大变化,但OP不想找出这些错误。
IrishStat

@IrishStat:您对Auto-PARM熟悉吗?该算法在中断估计中使用残差(相对于中断数和片段的AR(p)顺序)。OP似乎没有他要询问的特定方法。而是,他似乎在一般地问:“如果我正在及时测量一个流程并对该流程进行某些更改,是否有办法仅从数据中检测出该更改点?”。他并不是在询问水平偏移,创新还是累加离群值检测。希望OP可以为我们澄清...
Josh Hemann 2011年

josh:在OP中,“根据数据确定时间序列是增加还是减少的适当测试是什么?”。我相信这是要确定残差的平均值是否已移动而不是某些ARIMA模型的参数。我认为您建议使用错误的软件/解决方案,但这只是我的观点。
IrishStat

1

乔希说:

josh:在OP中,“根据数据确定时间序列是增加还是减少的适当测试是什么?”。我相信这是要确定残差的平均值是否已移动而不是某些ARIMA模型的参数。我认为您建议使用错误的软件/解决方案,但这只是我的观点。– IrishStat 2011年10月28日19:08

假设以AR(1)模型开头:

ÿŤ=γ+ϕÿŤ-1个+ËŤ

ËŤσ2

γ1个-pH一世

γϕ

如果采用结构模型,则使用Auto-PARM。


1
看来您实际上是在引用IrishStat ...请您链接报价的原始来源吗?
Nick Stauner 2014年
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.