I'm to produce rolling forecasts with an ARIMA-GARCH model using a moving window size of 1000. Given that structural changes in the series might take place at some point in the forecast horizon, is there any conventional method for choosing the lags of the ARIMA(p,q)-model when using a rolling window? I'm considering a rolling approach using the auto.arima
function from the forecast
package to update the optimal lag length daily by minimizing the AIC criterion. However, it appears that this method produces rather volatile results in terms of optimal lags which seems a bit suspicious. Any advise on this would be highly appreciated!
-
$\begingroup$ The sensitivity to past observations of auto-ARIMA is a real issue and generally gets glossed over because people don't actually look at the discontinuities created by a jump from one presumed order to another. This question deserves a good answer. $\endgroup$– Peter CottonCommented Oct 12, 2022 at 11:30
1 Answer
I would also use auto.arima
. The fact the the selected models change frequently between one window to the next may be due not only to frequent structural changes (which is probably unlikely) but to the fact that there are several models that approximate the patterns in the data about equally well, so their AICs are very close. Then changing two data points out of 1000 (dropping the oldest point and adding one new point) can make auto.arima
switch between these competing models. I would not worry too much about that, as each of these models likely implies very similar time series patterns. They are probably almost equivalent representations of the same thing. (Such a hypothesis could also be assessed by looking at the different models' impulse-response functions or the implied ACFs.)
If the AICs of a few best models are very close, then it should also not matter much which one of these you choose. As far as we know, they are all almost equally good approximations of reality. So you could just pick the one you like and stick to it. That would make the results look much cleaner than having a constantly changing model. For that, consider obtaining not only the best model from auto.arima
but, say, the top 5 together with their AICs. Do that in each window and see how different the AICs are. If they are very close, you could just pick one of these models and use it in all the windows.
Or you could decide that you will only change the model from one window to the next if the difference in AICs between the model from the past window and the best one in the current window is sufficiently large. This should give you more stability from window to window and should not be difficult to program.
-
$\begingroup$ I've quoted you (+1) in the answer to stats.stackexchange.com/questions/601677/…. $\endgroup$– jbowmanCommented Jan 13, 2023 at 2:37
-