Я создаю модель Аримы с помощью внешнего регрессора. Предположим, у меня есть n наблюдений. Функция predict.Arima
из пакета forecast
просто делает прогнозы для n + 1 наблюдений.
Мне нужно сделать прогноз для n значения (последнего значения ряда ), изменив значение внешнего регрессора, т. е. мне нужно предсказать значение n наблюдение с заданным значением внешнего регрессора.
library(forecast)
set.seed(123)
aux <- 1:24
covari <- aux + rnorm(24,0,2)
vari <- ts(aux * runif(24,0,3), start=c(2010,1), freq=12)
mod <- auto.arima(vari, xreg=covari)
predict(mod, newxreg=20)
Этот код генерирует модель и показывает, как генерировать прогноз. Я могу управлять количеством периодов вперед, устанавливая параметр n.ahead
.
predict(mod, newxreg=runif(4,15,25), n.ahead=4)
Этот код будет генерировать прогнозы для следующих 4 значений ряда.
Мне нужен n.ahead=-1
, то есть прогноз значения внутри ряда, но с другим внешним регрессором.
Если я использую только один внешний регрессор, задача не усложняется, потому что, поскольку это аддитивная модель, я могу просто добавить разницу наблюдаемого значения xreg к нужному значению, умноженному на коэффициент xreg. Однако это становится более сложным, если количество внешних регрессоров увеличивается.
Есть ли способ предсказать значения, которые не опережают конец ряда модели Арима?