Я пытаюсь переформулировать работающую модель ARMA (1, 1) из EViews в R. У меня есть квартальные временные ряды около 45 лет, и я пытаюсь выполнить скользящий прогноз ARMA, используя данные за 12 лет для оценки модели в каждый квартал после первых 12 лет. Данные состоят из зарегистрированных ежегодных изменений в некотором значении индекса. Данные не всегда постоянны, но я знаю, что модель EViews работает, и у меня есть конкретные c результаты, к которым я стараюсь максимально приблизиться к ним с моей моделью 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, я не могу оценить модель в каждом квартале но в течение некоторых периодов либо выдается сообщение об ошибке «Ошибка в solve.default (res $ hessian * n.used, A): подпрограмма Лапака dgesv: система точно в единственном числе: U [1,1] = 0», либо предупреждение о Форма "возможная проблема сходимости: Optim дал код = 1". В случае ошибки код явно перестает работать. Всякий раз, когда я получаю только предупреждения, мои прогнозы сильно отличаются от прогнозов в EViews.
Может ли кто-нибудь помочь мне оценить такую модель ARMA (1, 1) так же, как это делается в EViews? Заранее спасибо!