I'm currently working on building an ARIMA+GARCH model using R. My dataset consists of the logarithmic returns of the Dow Jones index for a period of 11 years 2005-2016, however, it's worth noting that the time period selected is arbitrary and I do plan on using different time periods to compare forecasting results.

With regards to the GARCH variance model I plan on using a GARCH(1,1) model and for the GARCH mean model I plan on using the optimised p and q values from my ARIMA model. However, I have few questions regarding the optimisation of the ARIMA model.

As far as I understand the two key criteria in ensuring a good ARIMA model are to:

1) Optimise p and q i.e. the lag periods used for both the autoregressive and moving average components of the ARIMA model

2) Optimise the respective AR and MA coefficients

Again, as far as I know, the easiest way to achieve this in R is through the use of the auto.arima function which chooses the best model according to AIC criterion.

However, I've recently come across an article where for each day, n, the previous k days of the differenced logarithmic returns of a stock market index are used as a window for fitting an optimal ARIMA and GARCH model with their chosen k equal to 500 i.e for each day the previous 500 days of the differenced logarithmic returns are used to optimise the GARCH and ARIMA model.

Firstly, I'm having a hard time understanding how the rolling window would work, I can't seem to grasp it conceptually and secondly, I'm having a hard time understanding how exactly the rolling window would enhance the performance the ARIMA model, specifically how it would optimise the selected lag periods and the AR and MA coefficients.

If someone could help clarify these two points, I'd be very appreciative.


1 Answer 1


Using a rolling window is a very typical approach. Conceptually, they estimate the model every day using the last 500 days, so when a day is over, the next day they will update all the estimates based on the new most recent 500-day window. So they will re-estimate the whole model using the previous 499 observations plus the new one (yesterday observation). This is what they do conceptually.

The reason why they do is simple: the problem with time series and all historical data in general is that when you use more data points (keeping the frequency constant), in general you have the benefit of more data. However this benefit may be partly offset by the fact that you will use old data, so you are exposed to the risk that something has structurally changed in the series and that behavior will not be recurring in the near future. Clearly there are ways to control for it, but in general this is a very common problem when you use historical data (the more data, the better, but the older data, the worse). At least this is something well known in financial literature. So the reason why they use a rolling window is to control for the problem of using data being too outdated and far in the past: indeed the window is shifted forward on each day, so that you will use the most recent and updated window of information for each estimate. the hope is that, within that window, no structural changes in the series have occurred (no change in the market behavior and functioning) and the recorded recent behavior will be comparable to that in the near future.

That is also why, typically, those rolling windows are used to make 1-step-ahead forecast (or at most a very-few-step-ahead forecasts).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.