幸运的是,我们可以轻松地为这两种模型做到这一点。例如,在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
是“与参数总数相同长度的可选数字向量。如果提供,仅会改变fixed中的NA项”。有关警告等更多详细信息,请参见?arima
。每个fixed
元素对应于显示的系数向量(或者coef(arima(...))
)中的相应元素,例如fixed[3]
对应ar3
,fixed[7]
对应intercept
。vars
的restrict
适用于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]
对应于截距,第二个矩阵行也是如此。请注意保留 HTML 标签。