В настоящее время я работаю над любимым проектом по прогнозированию будущих цен на базовое масло на основе исторических цен на базовое масло. Данные еженедельные, но есть промежуточные периоды, когда цены отсутствуют.
Я в некоторой степени согласен с моделированием временных рядов с полными данными, но когда дело доходит до нерегулярных, модели, которые я узнал, могут быть неприменимы. Могу ли я использовать класс xts и продолжить работу с моделями ARIMA в R обычным способом?
После построения модели для прогнозирования будущих цен я хотел бы учесть колебания цен на сырую нефть, маржу прибыли дизельного топлива, продажи автомобилей, экономический рост и так далее (Multivariable?) для повышения точности. Может ли кто-нибудь пролить свет на то, как мне сделать это эффективным способом? На мой взгляд, это похоже на лабиринт.
РЕДАКТИРОВАТЬ: Обрезанные данные здесь: https://docs.google.com/document/d/18pt4ulTpaVWQhVKn9XJHhQjvKwNI9uQystLL4WYinrY/edit
Кодирование:
Mod.fit<-arima(Y,order =c(3,2,6), method ="ML")
Сообщение с предупреждением: {{1} В журнале (s2): создано NaN
Повлияет ли это предупреждение на точность моей модели?
Из-за отсутствия данных я не могу использовать ACF и PACF. Есть ли лучший способ выбрать модели? Я использовал AIC (информационный критерий Акаике) для сравнения различных моделей ARIMA с использованием этого кода. ARIMA (3,2,6) дал наименьшее значение AIC.
Кодирование:
AIC<-matrix(0,6,6)
for(p in 0:5)
for(q in 0:5)
{
mod.fit<-arima(Y,order=c(p,2,q))
AIC[p+1,q+1]<-mod.fit$aic
p
}
AIC
Результат:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1396.913 1328.481 1327.896 1328.350 1326.057 1325.063
[2,] 1343.925 1326.862 1328.321 1328.644 1325.239 1318.282
[3,] 1334.642 1328.013 1330.005 1327.304 1326.882 1314.239
[4,] 1336.393 1329.954 1324.114 1322.136 1323.567 1316.150
[5,] 1319.137 1321.030 1320.575 1321.287 1323.750 1316.815
[6,] 1321.135 1322.634 1320.115 1323.670 1325.649 1318.015