Проблемы при оценке моделей ARMA в R - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь оценить простые скользящие ARMA (1, 1) -модели по временным рядам годовых темпов инфляции. Набор данных охватывает около 50 лет квартальных данных. В каждом квартале я хочу оценить модель ARMA (1, 1), используя данные за последние 12 лет, прогнозировать на 10 лет вперед, усреднять по прогнозам, затем переходить к следующему кварталу и повторять этот процесс. Цель состоит в том, чтобы создать плавную линию прогнозируемых уровней инфляции.

Используя функцию arima () из пакета stats, я никогда не мог оценить модель в течение всех кварталов, но всегда получал некоторую ошибку. Я использую этот код ниже:

  result <- matrix(NA, nrow = NROW(data), ncol = 1)

  for (i in n_lookback:NROW(data)) {
    temp_fit <- arima(data[(i - n_lookback + 1):i], 
                      order = c(1, 0, 1))
    result[i] <- mean(predict(temp_fit, n.ahead = n_ahead)$pred)
  }

Я использовал различные спецификации в функции arima, но обычно получаю следующие ошибки:

  • Стандартный ARMA (1, 1): Error in solve.default(res$hessian * n.used, A) : system is computationally singular: reciprocal condition number = 7.06241e-21
  • Использование optim.method = "L-BFGS-B": Error in optim(init[mask], armafn, method = optim.method, hessian = TRUE, : L-BFGS-B needs finite values of 'fn'

  • Оценка ARIMA (1, 1, 1) : non-stationary AR part from CSS

  • Только с использованием оценки максимального правдоподобия (метод = "ML"): Error in solve.default(res$hessian * n.used, A) : Lapack routine dgesv: system is exactly singular: U[1,1] = 0

Есть ли у вас какие-либо рекомендации о том, как я мог оценить модели в R? Поскольку я не делаю никаких выводов, а просто пытаюсь получить некоторые прогнозы, возможно, есть альтернативная функция, которая может решить мою проблему.

Заранее спасибо!

...