Selecting GARCH Lag Orders with Diagnostics, Information Criteria, and Forecast Tests
Summary
The document discusses choosing the ARCH and GARCH lag orders for a volatility model. One proposed approach estimates a range of candidate orders, checks whether coefficients are statistically significant, inspects residual autocorrelation, and uses likelihood ratio tests to assess whether adding or removing lags changes model fit. Another suggestion is to inspect autocorrelation and partial autocorrelation plots as an initial guide, then compare candidate models using BIC, which penalizes extra parameters more heavily than AIC.
The responses emphasize that there is no universally agreed lag-selection procedure and that fit criteria alone are not the final test. They recommend evaluating forecasts out of sample by examining the forecast-error distribution and whether the model improves the intended application. A biased conditional-variance estimate may still be useful if its forecast errors are lower for the task at hand. The guidance is general and does not supply a specific MATLAB procedure or a complete validation protocol.
Key ideas
- There is no single universally accepted procedure for selecting GARCH lag orders.
- Autocorrelation and partial autocorrelation plots can help identify candidate orders.
- Candidate models can be screened using coefficient significance, residual autocorrelation, and likelihood ratio tests.
- BIC offers a lag-comparison criterion that penalizes added parameters more strongly than AIC.
- Out-of-sample forecast performance should determine whether a selected GARCH model adds value for its intended use.
Tags
Full text
# Optimal lag length selection criterion in GARCH(p,q) model using MATLAB # Optimal lag length selection criterion in GARCH(p,q) model using MATLAB As assessed by the title, I'm trying to estimate a GARCH(p,q) model to forecast stock market volatility and, in order to be able to do that, I've to identify the optimal number of lags, p and q, to fit the model properly. Can someone of you suggest me the proper function/procedure to do that in Matlab? I looked for that in Mathworks and in the Internet, but I found nothing whatsoever. Thanks for helping. ## Answer by not.so.quanty (score 3, accepted) https://quant.stackexchange.com/a/10605 work you way from GARCH(4,4) to GARCH(0,0) removing the intercept too. 5*5*2-1 = 49 estimations - Make sure your coefficients are all statistically significant at least to 95% confidence. - Make sure you have no autocorrelation in your error terms. pacf and acf should be clean. - Likelihood ratio tests assess whether you lose explaining power from removing/adding lags. Lastly your real test should be an out-of-sample study of the forecast error distribution, and really look at whether your GARCH adds value. It's ok to have a biased estimation of the conditional variance if the forecast error variance is smaller than a non-biased estimation. But again, that depends on the use you have for your forecast. ## Answer by jqotob (score 1) https://quant.stackexchange.com/a/10655 If you have the optimization toolkit, you can download a free software package written by Kevin Sheppard of the Mann Quantitative Finance Institute at the Uni of Oxford. He has all the tools you'll need. Link below. Generally, there's no agreed upon methodology to do what you want to do. You should start by plotting the auto-correlations of your time series and the partial auto-correlations and taking a look to see where the bulk of concentration is. This should give you a starting point. Since GARCH/ARCH/etc. are auto-regressive, the number of lags is not super important. Then test up from 1/1 to whatever you deem necessary. Compare BICs. I wouldn't go with AIC simply because it doesn't punish noise from added lags enough. http://www.kevinsheppard.net/wiki/MFE_Toolbox
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.