如何使用时间序列数据进行引导?


33

我最近了解了有关使用自举技术来计算估计器的标准误差和置信区间的信息。我了解到的是,如果数据是IID,则可以将样本数据视为总体,并进行替换抽样,这将使您能够对测试统计信息进行多次模拟。

对于时间序列,您显然无法执行此操作,因为可能存在自相关。我有一个时间序列,想计算固定日期前后的数据平均值。是否有使用修改后的引导程序来执行此操作的正确方法?


16
关键搜索词:Block bootstrap。
主教2012年

Answers:


26

正如@cardinal指出的那样,对“块引导程序”进行变体是一种自然的方法。在这里,根据方法的不同,您可以选择时间序列的拉伸,可以重叠或不重叠,并且可以是固定长度或随机的,这样可以保证样本的平稳性(Politis and Romano,1991),然后将它们缝合在一起以创建重新采样的时间序列在其上计算统计信息。您还可以尝试建立时间相关性的模型,从而产生马尔可夫方法,自回归筛和其他方法。但是,块引导可能是这些方法中最容易实现的方法。

Gonçalvesand Politis(2011)是一篇简短的综述,并带有参考文献。书籍长度的处理方法是Lahiri(2010)


@statnub如果这与您先前的每周销售干预问题有关,请注意,如果您不信任在那里部署的模型假设,则会进行引导。首先,使用合理的时间序列模型应该理想地将可能表明这种引导的事情的风险降到最低...
conjugateprior

6
好答案。让我补充一点,您可以在R tsbootboot程序包中使用它来执行此操作。
MånsT

@MånsT很好。我不知道那个包裹。
conjugateprior

5

x1,···,xnx1,x2,···,xñ

时间序列很容易采用基于模型的重采样。通过模拟时间序列模型获得重采样。例如,如果模型是ARIMA(p,d,q),则使用自回归系数和移动平均系数以及噪声方差的MLE(来自差分序列)对ARIMA(p,q)模型进行重采样。重采样是模拟ARIMA(p,q)过程的部分和序列。

时间序列的无模型重采样是通过块重采样(也称为块引导程序)完成的,可以使用R的启动程序包中的tsboot函数来实现。想法是将序列分解为连续观察的大致等长的块,用替换对块进行重新采样,然后将块粘贴在一起。例如,如果时间序列的长度为200,并且一个人使用10个长度为20的块,则这些块是前20个观测值,接下来是20个观测值,依此类推。可能的重采样是第四个块(观测值61至80),然后是最后一个块(观测值181至200),然后是第二个块(观测值21至40),然后是第四个块,依此类推,直到有10个块在重采样中。


1
有其他形式的块自举方法,包括重叠块自举法和圆形块自举法,这些在Lahiri(2003)的书“有关数据的重采样方法”中有详细描述。这些方法适用于固定时间序列。
Michael R. Chernick
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.