Skip to content
All library documents

GARCH Models, Squared Returns, and Conditional Volatility

Article Quant Q&A · Author: user20664

Summary

The document explains how a GARCH model represents returns and their time-varying conditional variance, addressing confusion about whether to fit the model to returns or squared returns. In the stated setup, returns equal a conditional mean plus a volatility-scaled shock, while a GARCH variance equation uses lagged squared returns and lagged conditional variances. Squared returns serve as an unbiased but noisy proxy for conditional variance because the squared standardized shock has a chi-squared distribution.

The answer distinguishes a volatility model from a volatility estimator. A GARCH model estimates conditional variance dynamics; estimators such as Garman–Klass, Yang–Zhang, or rolling realized volatility apply formulas to produce descriptive estimates and generally are not inputs to a GARCH model. The example’s convergence failure after fitting returns is not solved by transforming the data; the advice is to investigate model specification or numerical optimization, with variance targeting as one possible aid. The response also notes that returns may show little autocorrelation while squared returns can show dependence, and that the author does not provide R-specific guidance for the Ljung–Box test.

Key ideas

  • A GARCH model specifies conditional variance using past squared returns and past conditional variances.
  • Squared returns are an unbiased but imprecise proxy for conditional variance.
  • Return models and conditional variance models are distinct and can be specified independently.
  • Volatility estimators produce descriptive estimates and are not generally series on which to fit a GARCH model.
  • Convergence failures call for examining specification and optimization rather than blindly transforming returns.

Tags

Full text
# GARCH volatility modeling, squared returns, and convergence


# GARCH volatility modeling, squared returns, and convergence












After reading some more of Volatility Trading, I decided to try to make a simple volatility model using daily log returns of an ETF I follow. It turns out "simple" is sort of relative. Unfortunately, it seems most literature is hopelessly vague on how exactly to do such a thing.

So I started by taking the log of closing prices, and differencing them to detrend the data and get the log return series. I showed it was stationary by running ADF (p-value < 0.01).

Now this is where the trouble starts. Since this is a univariate GARCH model, I decided to run with the `rugarch` package in R. I initially spec it as GARCH(1,1). The solver fails to converge. Ok - so I run a bootstrapper and try to get more data to see if I can at least get some form of convergence - it fails. Turning up the iterations also seems to make it fail. So I couldn't really explain how good or bad the data was.

After reading Eric Zivot's Practical Issues in the Analysis of Univariate GARCH Models it strikes me that I should be using some sort of transformed data. I noticed he mentions squaring the log returns, so I blindly try that and the GARCH solver converges without issue. Reading more into this I find another paper - Volatility Forecasting I: GARCH Models - that discusses that squared returns are positively autocorrelated. So I ask myself - what is this squared return thing?

Enter a post from here titled Squared and Absolute returns. This post unfortunately isn't so helpful, but it sent me down the rabbit hole reading Volatility Estimation from the CME group. Section 1.1 highlights that squared returns are a proxy for volatility, however it is extremely imprecise. This leads me to a handful of questions I'm hoping you guys can help me with:

- If squared returns are an imprecise proxy for volatility, why is it suggested we build GARCH volatility models using them? Won't this reduce the effectiveness of the model's predictions?

- Eric Zivots paper makes mention of GARCH effects of a time series. One of the ways you can check for the is the Ljung-Box test. However, I don't quite understand how to set this up, especially in R. My inclination is to think that my log return series does not have GARCH effects, however the squared log return series does.

- Can we use a different, more precise, volatility estimator and build a GARCH model on that? (ex Garman-Klass)

I apologize if these are trivial questions - I just can't seem to find a single resource that answers my exact question. I'd really appreciate any help or direction to resources where I can figure this stuff out. I really would like to fully understand this before I put it to practical use. Thanks in advance!

## Answer by Quantuple (score 5, accepted)

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

Assume that your stationary time series (here a daily close-to-close log-returns' series) is modelled as follows $\forall t \in \mathcal{T}=\{1,...,N\}$ \begin{align} r_t &= E_{t-1}[r_t] + \epsilon_t \\ &= E_{t-1}[r_t] + \sigma_t z_t \end{align} with $z_t \sim N(0,1)$ and $\{z_t\}_{t \in \mathcal{T}}$ are IID.

The above equations suggest that, knowing the information available at $t-1$ (i.e. given the filtration $\mathcal{F}_{t-1}$), the conditional mean and variance of $r_t$ are respectively given by \begin{align} E_{t-1}[r_t] \text{ and } \sigma^2_t \end{align} Now we can further specify a conditional mean model e.g. an ARMA(p,q) $$ E_{t-1}[r_t] = \omega_1 + \sum_{i=1}^p \alpha_i r_{t-i} + \sum_{j=1}^q \beta_j z_{t-j} $$ and/or a conditional variance model e.g. a GARCH(r,s) $$ \sigma_t^2 = \omega_2 + \sum_{k=1}^r \gamma_k r^2_{t-k} + \sum_{l=1}^s \delta_l \sigma_{t-l}^2 $$ Notice that these two models can be specified independently of one another. It is crucial not to confuse the two, especially when using third-party libraries.

Now, let us forget about the conditional mean in the remainder of this answer and assume $E_{t-1}[y_t]=0$ which is often a reasonable approximation in practice, at least as far as daily log-returns are concerned. Further assuming a GARCH (1,1) one gets: $$ r_t = \sigma_t z_t\ \ \text{ along with }\ \ \sigma_t^2 = \omega + a r_{t-1}^2 + b \sigma_{t-1}^2 $$

From the above specification it is clear that: $$ E_{t-1}[r_t^2] = E_{t-1}[\sigma_t^2 z_t^2] = \sigma_t^2 \underbrace{E_{t-1}[z_t^2]}_{=1} $$ because $z_t \perp \sigma^2_t$ and $\sigma_t^2$ is $\mathcal{F}_{t-1}$-measurable. The above equation shows that squared returns are an unbiased proxy of conditional volatility. Yet because $z_t^2 \sim \chi_{(1)}^2$ this is a very imprecise proxy, see CME paper page 5 or Triacca, 2007 page 256 in Applied Financial Economics Letters, 3.

Now back to your application, you would like to estimate historical volatility right? You have different possibilities. Let's take a look at what you propose:

- GARCH(1,1): Assuming no conditional mean model is superimposed, the parameters you need to estimate are $\omega, a$ and $b$ reading those posts here and here may help you in your endeavour. There is no reason why you should use transformed returns except if: (1) the function you're using is specifically designed to take transformed returns in input, but I find this weird (you seem to have read that we use squared returns somewhere could you exactly point out where?) (2) Transformations such as taking the square root (or the natural logarithm etc.) maybe to useful to stabilise variance (i.e. make the series stationary), but you have already checked that this was OK via an ADF test. In other words, the function you use should return you an answer. Even if there is no GARCH effect as you seem to imply, in which case $a=b=0$ and you'll have a constant variance (homoskedastic returns). You should further investigate why this step fails IMHO, identify the reason while there is no convergence. Maybe use variance targeting to reduce the complexity of the numerical optimisation step (see the linked posts above)?

- Garman-Klass volatility estimator or any other volatility estimator for that matter e.g. Yang-Zhang or sample realised volatility over rolling windows. As the name indicates, these are estimators not models (although they do require underlying modelling assumptions). They are purely descriptive: you apply a formula and get a volatility estimate. I don't see why would one ever want to build a GARCH model on top of such an estimator. Remember that GARCH is a conditional variance model. Why would you model the conditional variance of a volatility estimator?!

PS: I'm neither an expert in statistical tests nor in R so I can't really comment on how to set up the Ljung-Box test. Still, I would say that your inclination is not right, although I guess you could claim that, in general, returns are not autcorrelated while squared returns are, see this seminal paper on market stylised facts.

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.