如何实现自己的 AR(p) 模拟算法?

数据挖掘 时间序列 算法
2022-03-06 08:59:18

回想一下,AR(p) 过程可以定义为

Xt=ϕ1Xt1++ϕpXtp+Zt
在哪里Zt是 IID 白噪声。我想编写一个模拟这些过程的算法,但我不确定我是否采用了正确的方法。这是我的想法:

INPUT:
  n = length of time series
  [\phi_1,...,\phi_p] the parameters of the process

1. Construct a white noise vector Z of length n + p
2. Have the first rolling sum of the X_i's be set as the noise
3. Construct the rest of the time series from there

在这种情况下

X0=ϕ1Z1++ϕpZp+Z0X1=ϕ1X0+ϕ2Z1++ϕpZ(p1)

另一种选择是从构建开始X1,,Xp通过将递归方程中的低阶项设置为 0。因此,对于前几个

X1=Z1X2=ϕ1X1+Z2X3=ϕ1X2+ϕ2X1+Z3
哪种方法是构建模拟的“正确”方法?

1个回答

你的问题归结为:

  1. 您是否应该尝试以矢量化方式进行模拟?
  2. 你应该迭代一个向量吗?

一般来说,我们应该总是尝试向量化(选项 1),因为它更有效,并且很容易在 R ( embed) 和 Python Pandas ( shift) 中滞后向量。

但是,我看不到任何有效的基于矢量化的解决方案。模拟值的自回归性质迫使我们迭代一个向量来模拟每个X1,X2,,Xn单独(选项 2)。