6

我已经看到这里这里提出了这个问题,但不幸的是,答案并不令人满意。在或 中的p参数中输入滞后,R 将包括等于和低于该规定值的所有滞后。VARorderarima

但是,如果您只想要特定的延迟怎么办?例如,如果我只想在 VAR 中使用滞后 1、2 和 4 怎么办?输入 P=4VAR会给我滞后 1、2、3 和 4,但我想排除第三个滞后。

在第一个链接中,用户通过说明他可以使用季节性参数来包含滞后 1,2 和 4 来提供答案,因为他的数据是季度的,但这仅适用于特殊情况,不是通用解决方案。

4

1 回答 1

9

幸运的是,我们可以轻松地为这两种模型做到这一点。例如,在 ARIMA(3,0,3) 的情况下,这里是如何降低第二个 AR 滞后和第一个 MA 滞后:

arima(lh, order = c(3, 0, 3), fixed = c(NA, 0, NA, 0, NA, NA, NA))

Call:
arima(x = lh, order = c(3, 0, 3), fixed = c(NA, 0, NA, 0, NA, NA, NA))

Coefficients:
         ar1  ar2      ar3  ma1      ma2      ma3  intercept
      0.6687    0  -0.1749    0  -0.0922  -0.1459     2.3909
s.e.  0.1411    0   0.1784    0   0.1788   0.2415     0.0929

sigma^2 estimated as 0.1773:  log likelihood = -26.93,  aic = 65.87
Warning message:
In arima(lh, order = c(3, 0, 3), fixed = c(NA, 0, NA, 0, NA, NA,  :
  some AR parameters were fixed: setting transform.pars = FALSE

fixed是一个“与参数总数相同长度的可选数字向量。如果提供,则只有固定的 NA 条目会发生变化”;有关?arima警告等的更多详细fixed信息coef(arima(...))fixed[3]请参阅。ar3fixed[7]intercept

同样,restrictfromvars是 VAR 模型所需要的。同样,您必须在矩阵中指定您的限制,resmat例如让我们采用 VAR(2) 并删除第二个滞后e和第一个滞后prod

data(Canada)
model <- VAR(Canada[, 1:2], p = 2, type = "const")
restrict <- matrix(c(1, 0, 0, 1, 1, 
                     1, 0, 0, 1, 1),
                   nrow = 2, ncol = 5, byrow = TRUE)
coef(restrict(model, method = "man", resmat = restrict))
$e
          Estimate Std. Error   t value     Pr(>|t|)
e.l1     0.9549881 0.01389252 68.741154 3.068870e-72
prod.l2  0.1272821 0.03118432  4.081607 1.062318e-04
const   -8.9867864 6.46303483 -1.390490 1.682850e-01

$prod
            Estimate  Std. Error   t value     Pr(>|t|)
e.l1      0.04130273  0.02983449  1.384396 1.701355e-01
prod.l2   0.94684968  0.06696899 14.138628 2.415345e-23
const   -17.02778014 13.87950374 -1.226829 2.235306e-01

的第一行resmat对应于第一个方程,并且所有系数都与无限制模型中的一样:e.l1, prod.l1, e.l2, prod.l2, const,即restrict[1, 5]对应于截距并且对于第二个矩阵行同样成立。

于 2014-03-26T13:27:23.870 回答