1

这似乎是一件显而易见的事情,但我找不到这样做的功能:

我有一个时间序列的观察,比如 x_t,以及由 AR 系数给出的 ARMA 模型规范,比如 \alpha_1, ..., &\alpha_p 和 MA 系数 \beta_1, ..., \beta_q。我想计算推动创新的向量,比如 e_t。

我已经阅读了过滤器的帮助,但它似乎与我需要的相反(即它需​​要创新和系数并计算观察结果)。

我可以通过将系统写成 Ax = Be 然后使用 B^{-1}Ax 来做到这一点,但是对于大系列来说这需要时间,而且我担心反演的数值稳定性。

我们可以使用生成样本观察

 ts1 <- arima.sim(model=list(AR=0.5, MA=0.5), n=10)

那么,我们如何找到创造观察结果的创新?

4

2 回答 2

1

正如@evilphil 建议的那样,只需使用arima()固定参数即可。这是一个例子:

ts1 <- arima.sim(model=list(ar=0.5, ma=0.5), n=10)
fit <- arima(ts1, order=c(1,0,1), fixed=c(.5,.5,0))
res <- residuals(fit)

arima.sim()但是,由于初始化的影响,这实际上不会给出所使用的创新。但是,对于一个长系列,它们将与前几个值相距很近。

于 2012-09-18T23:04:59.267 回答
0

认为我想太多了-通过递归在第一次观察之前对白噪声项做出假设来解决这个问题很容易。

显然,这在 R 中给出了一个循环。

一种解决方法是使用具有固定设置的 arima 来设置您的建模参数。

于 2012-09-18T16:58:52.567 回答