#r #time-series #arima
#r #временные ряды #arima
Вопрос:
Я использую пакет auto.arima
из forecast
для нескольких наборов данных на сервере HPC. Данные о поездах всегда содержат 24 точки данных с данными по месяцам за последние 2 года. Данные также содержат внешний регрессор. С давних пор она работала нормально, но я внезапно столкнулся с ошибкой только для одного набора данных.В сообщении об ошибке говорится-
<simpleError in search.arima(x, d, D, max.p, max.q, max.P, max.Q, max.order, stationary, ic, trace, approximation, xreg = xreg, offset = offset, allowdrift = allowdrift, allowmean = allowmean, parallel = parallel, num.cores = num.cores): No ARIMA model able to be estimated>
Код, который я использовал, является —
auto_arima <- ts(data$y, start=min(data$DATE), frequency=12)
auto_arima <- auto.arima(auto_arima, xreg = data$x1, stepwise=FALSE, approximation=FALSE, seasonal=TRUE)
Набор данных, который вызвал ошибку, является
structure(list(DATE = structure(c(17804, 17835, 17865, 17896,
17927, 17955, 17986, 18016, 18047, 18077, 18108, 18139, 18169,
18200, 18230, 18261, 18292, 18321, 18352, 18382, 18413, 18443,
18474, 18505), class = "Date"), x1 = c(21, 22, 21, 22, 22, 19,
22, 21, 22, 21, 22, 22, 21, 22, 21, 22, 22, 19, 22, 21, 22, 21,
22, 22), y = c(17532306871, 41826190703, 7748403270, 14959015398,
15241717931, 18655759009, 15393151016, 15251081090, 14516497716,
13974303432, 11254893416, 17410813458, 14446411746, 12876827127,
17609512917, 12179664532, 17473491954, 18447419416, 28262667160,
36623989143, 28711285833, 28711285833, 28711285833, 28711285833
)), row.names = c(NA, 24L), class = "data.frame")
Когда я запускаю этот код на своем компьютере с Windows с установленной версией 4.0.2, он работает нормально (создается модель ARIMA (0,1,0)), но при запуске того же кода с теми же данными на сервере HPC я сталкиваюсь с ошибкой, описанной выше. Я сталкиваюсь с той же ошибкой, даже когда пытаюсь выполнить тот же код с Rversion 3.6.1, установленной из RStudio на другом компьютере с Windows.
Это из-за разницы в версии R или я что-то упускаю? Пожалуйста, помогите мне с этим.
Ответ №1:
Версия R, вероятно, здесь не имеет значения. Версия пакета — это то, что имеет большее значение. Здесь вы используете пакет forecast, и auto.arima
в алгоритме за эти годы было несколько улучшений и исправлений ошибок. Текущая CRAN-версия forecast — v8.12, и она возвращает модель ARIMA (0,1,0).
Комментарии:
1. Спасибо Робу Хайндману. Я понимаю это и должен обновить pckg до последней версии. Мне любопытно узнать, есть ли какая-либо техническая причина для этой ошибки при использовании более старой версии forecast pkg. Используя те же данные, если я уменьшу значение 22-й точки данных на 1000, более старая версия также вернет модель ARIMA (0,1,0). Я не понимаю разницы между исходными данными и обновленными. Я не понимаю, почему первая выдает ошибку, в то время как более поздняя возвращает действительную модель ARIMA. Я буду благодарен, если вы сможете пролить некоторый свет на это или указать мне на какие-либо материалы или документацию. Заранее спасибо
2. Вы не сказали, какие версии пакета вы используете, поэтому невозможно ответить, какие изменения могли привести к этим результатам. Вы можете просмотреть полную историю изменений в
auto.arima()
функции на github.com/robjhyndman/forecast/commits/master/R/newarima2.R3. Хорошо. Большое вам спасибо. Это действительно помогает.