Воссоздание модели ARMA из EViews в R - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь переформулировать работающую модель 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? Заранее спасибо!

...