Statistics and Algorithms / GARCH Models / Data Preparation |
Check Your Data!
Before you do anything, check your data. More time has been lost fitting GARCH models to bad data than to anything else. What are you looking for? Data which have long flat spots with occasional changes (generally price-controlled or otherwise managed data) will not admit a GARCH model—in fact, that’s the exact opposite of how a GARCH process works, as with controlled data a big change is followed by a period with no change at all. If controls were removed at some point in your data range, you may be able to restrict your attention to the later part of the data set, but there is no way to include the controlled stretch in a single model.
Assets prices whose trading is subject to “circuit-breakers” or other types of interventions can break the expected behavior of a GARCH model. You may need to end up either “dummying” out such periods, or somehow removing a range of data from the data set.
Prices on thinly traded assets again won’t follow a standard GARCH process. There are much more complicated models which can jointly model both frequency of trades and prices, but for a standard GARCH, you may need to go to a coarser frequency (such as weekly rather than daily).
You may have daily data with non-trading days. You can either use the irregular data (so Monday follows Thursday if Friday is a non-trading day) or you can make the non-trading day’s price equal to the preceding day (so Friday’s return is zero). In practice, both are used. If there are quite a few non-trading days, you might also find that going to weekly data (with weeks ending on, for instance, Wednesday) is a better approach.
Finally, a standard GARCH model is a description of a “stationary” process. If the data look quite different at the start of the data set than at the end, you may need to think about whether a single model will do what you want.
The most common application of GARCH models is to a series (or set of series) of asset returns. If these are computed as log returns over a relatively short period of time (such as daily), the scale and spread of the data is quite small. For the numerical reasons described in “Convergence and Scale of Parameters”, it’s a good idea to scale those up by a factor of 100, as in
set dlogdm = 100*log(dm/dm{1})
Non-linear parameters which measure a variance are scaled up by 10000 by this, which generally brings them up to a more manageable magnitude.
Serial Correlation in the Residuals
Since (by far) the most common application of GARCH models is to asset returns, the “mean model” is often largely ignored. The default for the RATS GARCH model is just a constant (fixed non-zero mean) for each series. And in most applications to asset returns, that is probably fine. However, increasingly, GARCH models are being applied to “non-traditional” data, such as macroeconomic data, where the data being serially uncorrelated can’t be assumed. If you have a model such as that, you need to choose a mean model which does at least a reasonable job of producing serially uncorrelated \(u\)'s; if you don’t—you might find it very difficult to get a GARCH model to fit properly. The one difficulty with this is that the standard tests for serial correlation generally assume away the possibility of the higher-order dependence shown by the GARCH model, so if you pick an AR or ARMA model (for a single variable) or a VAR for a multivariate system based upon standard methods, you might pick the “wrong” model. For univariate diagnostics for serial correlation, you can use the West-Cho test rather than the more standard Q test.
The best strategy is generally to use standard methods with a fairly “tight” criterion to select the mean model (for instance, BIC rather than AIC) and then test the results of the GARCH model to see if there is any correctable serial correlation.
Testing for ARCH/GARCH Effects
@ARCHTEST can be used for testing a univariate series for ARCH (or GARCH). The extension of that to multiple series is given by @MVARCHTEST. Note that both of these assume they are being given mean zero serially uncorrelated data, that is, the residuals from the mean model, not the raw data.
Both these tests have a null of absence of ARCH. However, don’t assume that because your test rejects lack of ARCH, that you can get a working GARCH model. All the test has shown is that the data show a certain clustering of large residuals which is consistent with ARCH or GARCH, not that it was created by an ARCH or GARCH process. Any of the alternative models will also create a situation where you would almost certainly reject homoscedasticity in favor of “ARCH/GARCH”. In fact, even a single variance change of the type for which the Goldfeld-Quandt test is designed will (if the change is large enough) trigger a significant value for an ARCH test.
Copyright © 2025 Thomas A. Doan