选择ARIMA或VAR模型中的特定滞后

时间:2014-03-26 12:41:22

标签: r statistics time-series autoregressive-models

我已经看到此问题提出herehere,但不幸的是答案并不令人满意。在p中的VAR参数或order中的arima参数中输入滞后,R将包括所述值的所有滞后。

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

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

1 个答案:

答案 0 :(得分:4)

幸运的是,我们可以轻松地为这两种模型做到这一点。例如,在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条目将被改变&#34 ;;有关警告的更多详细信息,请参阅?arima等。fixed的每个元素对应于显示的系数向量(或coef(arima(...)))中的相应元素,例如fixed[3]对应ar3fixed[7]intercept

同样,来自restrict的{​​{1}}是VAR模型所需要的。同样,您必须在矩阵vars中指定您的限制,例如,让我们采用VAR(2)并删除resmat的第二个滞后和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对应于截距,同样适用于第二个矩阵行。