# Are rolling forecasts more accurate that full-sample forecasts?

I compared the auto.arima forecast checkts below to the rolling forecast fc and noticed that every of the error measures is lower for fc.

Will rolling forecasts have lower errors than a forecasted auto.arima model in general?
Why might that happen?

The data to run the code below is in the "fpp" package. Code:

library("fpp")
library("forecast")

##Multi-step forecasts without re-estimation

h <- 5
train <- window(hsales,end=1989.99)
test <- window(hsales,start=1990)
n <- length(test) - h + 1
fit <- auto.arima(train)
fc <- ts(numeric(n), start=1990+(h-1)/12, freq=12)
for(i in 1:n)
{
x <- window(hsales, end=1989.99 + (i-1)/12)
refit <- Arima(x, model=fit)
fc[i] <- forecast(refit, h=h)$mean[h] } checkts<-forecast(fit,h=71) accuracy(checkts$mean,test)
accuracy(fc,test) ##All Error measures are lower than Checkts\$mean


## 1 Answer

That the rolling forecast is better is not mandatory, but it should not suprise you either. In fact, with the "static" forecast you are using less information (in this example) and have a longer forecast horizon than with the rolling forecast (in this example), so the results tend to be inferior.

For example, if you want to forecast the last value (Nov 95) with the static model, you use information from Jan 73 to Dec 89 and have a forecast horizon of 71 periods. Meanwhile, with the dynamic forecast you use information from Jan 73 to Jun 95 and have a forecast horizon of 5 periods.

• I added some caveats to highlight that your statements are example-specific and do not necessarily hold in general. If you feel that I have changed the essence, please undo the changes. (I could have notified you in the comments, of course, but I thought it will be faster to change the answer directly.) Otherwise, +1. – Richard Hardy Apr 19 '16 at 19:53
• @bratwoorst711 Thank you very much for your answer. I'm still trying to understand the steps in the example. What is the purpose of the "refit" step? The model has already been determined and trained by auto.arima in the "fit" step. So are we re-training the model on new data in the "refit" step. If so, what does that accomplish? – modLmakur Apr 21 '16 at 3:19