1

我正在尝试从 R 中的 EViews 重新制定一个有效的 ARMA(1, 1) 模型。我有一个大约 45 年的季度时间序列,并尝试使用 12 年的数据进行滚动 ARMA 预测,以估计之后每个季度的模型最初的 12 年。数据由记录的某些指数值的年度变化组成。数据并不总是固定的,但我知道 EViews 模型有效,并且我有特定的结果,我尝试使用我的 R 模型尽可能接近它们。此外,模型必须是 AR(1) MA(1) 形式。

EViews 代码简单地遍历数据集,在每个时间点估计以下模型并使用估计值进行预测:

ls(m=1000) data c AR(1) MA(1)

尝试执行相同的操作,我的代码如下所示:

for (i in 48:NROW(data)) {
    fit <- arima(data[(i - 48 + 1):i], 
                 order = c(1, 0, 1), 
                 method = "ML",
                 optim.control = list(maxit = 1000), 
                 optim.method = "BFGS")
    result[i] <- predict(fit, n.ahead = 1)$pred
}

即使我使用与 EViews 中相同的数据,我也无法估计 evrey 季度的模型,但在某些时期,要么收到错误消息“solve.default(res$hessian * n.used, A) 中的错误:Lapack例程 dgesv:系统完全是奇异的:U[1,1] = 0”或“可能的收敛问题:优化给出的代码 = 1”形式的警告。如果出现错误,代码显然会停止工作。每当我只收到警告时,我的预测与 EViews 中的预测大不相同。

谁能帮我估计这样一个 ARMA(1, 1) 模型,就像在 EViews 中一样?先感谢您!

4

0 回答 0