Skip to content
All library documents

Using ARCH and GARCH to Identify Time-Varying Return Volatility

Article Quant Q&A · Author: Dail

Summary

ARCH and GARCH models describe conditional variance that changes over time. The document explains that fitting one of these models to returns produces an estimated variance series, which can be plotted to assess whether volatility is roughly constant or instead shows clusters. The model parameters determine that series; a flat estimate would indicate constant volatility under the fitted model, while changing estimates suggest time-varying volatility.

The discussion also points to residual and squared-residual diagnostics as ways to examine remaining dependence after fitting. An example output from a simulated series includes coefficient estimates and a Ljung–Box test on squared residuals, but it does not establish a result for the stock-return example. The answers caution that ARCH/GARCH fit and describe volatility dynamics rather than reliably predicting future clusters or regime changes. Estimates are model-dependent, and extreme market events can produce behavior that these models handle poorly. The broader practical advice is to use volatility models as one input to analysis and risk management, with care about interpreting forecasts.

Key ideas

  • ARCH and GARCH models represent conditional variance as a process that can change over time.
  • Plotting the model’s estimated variance series helps assess whether volatility appears constant or clustered.
  • Residual and squared-residual diagnostics can help evaluate what dependence remains after fitting.
  • A fitted volatility path describes the sample under model assumptions but does not guarantee accurate forecasts.
  • Extreme events and regime changes can limit the usefulness of volatility predictions.

Tags

Full text
# How GARCH/ARCH models are useful to check the volatility?


# How GARCH/ARCH models are useful to check the volatility?












Below a R code wrote by the moderator @richardh (whom I want to thank again) about ARCH/GARCH models.

```
library(quantmod)
library(tseries)
getSymbols("MSFT")
ret <- diff.xts(log(MSFT$MSFT.Adjusted))[-1]
arch_model <- garch(ret, order=c(0, 3))
garch_model <- garch(ret, order=c(3, 3))
plot(arch_model)                                  
plot(garch_model)
```

My focus is to understand if the volatility of the returns is constant during all the series. I don't understand how ARCH/GARCH models could help me understading this kind of aspect, at the moment the operations I do are:

- Calculate the % returns of the stocks

- Linear regressione like: lm(A~B) where A and B are the stocks returns (%)

- Passing the residuals of the linear regression to the unit root tests.

now the problem is to understand if the volatility is constant (take a look at the chart below, that problem is clearly visible), so the question is:

How can I understand if the volatility is not constant reading ARCH/GARCH model

EDIT:

```
garch_model <- garch(rnorm(1000), order=c(3, 3))
> summary(garch_model)

Call:
garch(x = rnorm(1000), order = c(3, 3))

Model:
GARCH(3,3)

Residuals:
      Min        1Q    Median        3Q       Max 
-3.394956 -0.668877 -0.008454  0.687890  3.221826 

Coefficient(s):
    Estimate  Std. Error  t value Pr(>|t|)
a0 7.133e-01   7.156e+00    0.100    0.921
a1 1.752e-02   3.750e-02    0.467    0.640
a2 6.388e-03   1.924e-01    0.033    0.974
a3 6.486e-14   1.711e-01    0.000    1.000
b1 7.396e-02   1.098e+01    0.007    0.995
b2 8.052e-02   1.120e+01    0.007    0.994
b3 8.493e-02   4.279e+00    0.020    0.984

Diagnostic Tests:
        Jarque Bera Test

data:  Residuals 
X-squared = 1.4114, df = 2, p-value = 0.4938

        Box-Ljung test

data:  Squared.Residuals 
X-squared = 0.0061, df = 1, p-value = 0.9377

>
```

garch_model$fitted.values

## Answer by SRKX (score 7)

https://quant.stackexchange.com/a/2381

ARCH and GARCH are, by essence heteroskedastic models, that is, with non-constant volatility.

If you fit these models to your sample, it will provide you with a time series of the volatility for each point (you can construct it actually). If the values are not the same for all $t$, then the volatility is not constant, according to these models.

What you are looking to do here is to fit the model (GARCH or ARCH) to your time series (look at the GARCH definition). That means that the algorithm in your `garch` fonction basically finds the parameters that match the best your sample.

As you can see on the description of the garch function, you get different information on the returns.

With your parameters you can recreate your $\sigma_t^2$, which is the volatility at time $t$ (hence, it's a time series).

If it's not constant (or say, relatively constant) you can see that you detected volatility clusters in your series.

To say it differently, plot your time series of $\sigma_t^2$. If it is a straight line, the vol. is constant.

## Answer by Matt Wolf (score 2)

https://quant.stackexchange.com/a/7648

"How can I understand if the volatility is not constant reading ARCH/GARCH model ":

- By analyzing the error terms/residuals. There is not much more magic going on than just this and the following rather introductory level paper should get you started: http://archive.nyu.edu/bitstream/2451/26577/2/FIN-01-030.pdf

Garch models essentially add conditional variance terms to the regression equation in order to capture time-varying variance and volatility clustering. Just to tame your excitement a bit, do not expect to extract a whole lot of value from the application of ARCH/GARCH models in terms of predicting volatility clusters or variance dynamics, they generally perform very poorly in that regards. Academicians may get extremely excited when the market confirms their models that S&P 500 index/futures vol at 60 levels does not drop back to 20 levels overnight. At the same time one too many funds and trading desks got killed by an over reliance on GARCH models in their quest to predict volatility dynamics. Volatility in the end of the day trades and reacts to extreme but unpredictable events in a very similar fashion than any other asset class. That is why traditionally most models fail in high volatility environments while they track a lot better in low vol environments, but hey, isn't that a self-fulfilling prophesy? Fact, however, remains that most all models are incapable to predict regime changes which confirms my own basic tenet of how to approach trading and risk management in general: Reactive rather than predictive. Just sharing my own non-quantitative take and summary of market experience.

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.