How GARCH Forecasts Conditional Variance and Volatility
Summary
The document explains how to interpret volatility forecasts from an ARMA-GARCH model. A GARCH equation produces a conditional variance, so taking its square root gives the corresponding conditional standard deviation, commonly called volatility. The key distinction is that the forecast must come from the model's variance recursion; a forecast of returns from the conditional mean model does not itself provide volatility.
An example of an ARMA(1,1)-GARCH(1,1) process shows how to roll the variance forward using estimated parameters, prior variance, and observed returns, with an initial variance needed to begin the recursion. The discussion also distinguishes conditional variance from the conditional second moment of returns when the mean is nonzero. The explanation is conceptual and does not assess model fit, parameter uncertainty, alternative innovation distributions, or multi-step forecasting details. Its practical guidance assumes a correctly specified model and a defined initialization procedure.
Key ideas
- A GARCH model forecasts conditional variance, and its square root is conditional volatility.
- A conditional mean or return forecast alone does not determine the variance forecast.
- The one-step-ahead variance is computed from the fitted GARCH recursion and available observations.
- Variance recursion requires an initial value, which is part of model specification.
- When the conditional mean is nonzero, the conditional second moment is not the same as the conditional variance.
Tags
Full text
# GARCH variance vs standard deviation for volatility
# GARCH variance vs standard deviation for volatility
in my series of questions related to GARCH and volatility I finally think I've got a decent grasp on it. You guys have been great help clearing up my questions for me.
My next question is just a confirmation of my suspicion. It's well known that in finance, volatility is typically understood to be the standard deviation of returns. However, GARCH analysis helps you forecast the conditional variance of a process.
Suppose I have an ARIMA-GARCH forecast for the log returns of a series. GARCH gives us the equations:
$$y_t = x'_t + \epsilon_t$$ $$\epsilon_t|\psi_t ~ N(0, \sigma_t^2$$ $$\sigma_t^2 = \omega + \alpha_1\epsilon_{t-1}^2 + ... + \alpha_q\epsilon_{t-q}^2 + \beta_1\sigma_{t-1}^2 + ... + \beta_p\sigma_{t-p}^2$$
These equations define the variance at time $t$, $\sigma^2_t$.
If my forecast returns a value of $0.05$ for the 1 step ahead forecast then I can simply take the square root of the forecast to get the conditional volatility - correct? So in this case the 1 step ahead forecast of volatility is:
$$\sqrt{0.05} = 0.1732$$
This seems correct to me, but I am having trouble finding people who are doing this and I want to make sure that this is sound.
Thank you!
## Answer by Quantuple (score 4, accepted)
https://quant.stackexchange.com/a/27810
If your question is: "Given all the information available up to time $t$, if I compute the 1 period ahead forecast $r_{t+1}$, is the conditional volatility over $[t,t+1[$ given by $\sqrt{r_{t+1}}$?", the answer is NO.
To compute the 1 period ahead conditional variance, you should use your model equations (see this post which might help you better understand the ARMA-GARCH paradigm).
Here's an illustrative example. Consider an ARMA(1,1)-GARCH(1,1) model for the returns process: \begin{align} r_t &= a + b r_{t-1} + c \sigma_{t-1} z_{t-1} + \sigma_t z_t \\ \sigma^2_t &= d + e \sigma^2_{t-1} + f r_{t-1}^2 \end{align} with $\{z_t\}_1^\infty$ iid $N(0,1)$ variables such that: $$\mathbb{E}\left[r_t \vert \mathcal{F}_{t-1}\right] = a + b r_{t-1} + \tilde{c} z_{t-1} $$ for the ARMA part (conditional mean model) and $$\mathbb{V}\left[r_t \vert \mathcal{F}_{t-1}\right] = d + e\sigma^2_{t-1} + fr^2_{t-1} $$ for the GARCH part (conditional variance model).
Now assume you observe a series of $N$ returns $\mathbf{r} = \{r_1,...,r_N\}$. You calibrate your model (usually by maximum likelihood estimation) on these returns and you get a bunch of model parameters (here $a, b, c, d, e, f$). At this point, all you need to do is use the GARCH equation to compute the latent conditional variances. For this, you'll need an initial value $\sigma_1$ to initialise the recursion, in which case you'll have: $$ \sigma^2_2 = d + e \underbrace{\sigma^2_1}_{\text{initialisation}} + f \underbrace{r^2_1}_{\text{$1^{st}$ observed return}} $$ $$ \sigma^2_3 = d + e \underbrace{\sigma^2_2}_{\text{computed @ step 1}} + f \underbrace{r^2_2}_{\text{$2^{nd}$ observed return}} $$ $$ \vdots $$ $$ \sigma^2_{N+1} = d + e \underbrace{\sigma^2_N}_{\text{computed @ step N}} + f \underbrace{r^2_N}_{\text{$N^{th}$ observed return}} $$ Now that you have the 1 period ahead conditional variance $\sigma^2_{N+1}$ just take the square root to get the conditional volatility.
The real question is how to get $\sigma_1$? This is usually part of the model specification and there are different ways to do it, see this post, especially the link in the comments of the accepted answer (REM: the notation used is $h_1 := \sigma^2_1$)
You can easily extend this approach to highest order GARCH models.
## Answer by Malick (score 1)
https://quant.stackexchange.com/a/27823
let' s define a ARMA-GARCH model:
$y_{t} = \mu_{t} + \epsilon_{t}$ where $\mu_{t} $ is the conditional mean process (ARMA(p,q) part, $\mu_{t} = E(y_{t}|\mathcal{F}_{t-1})$) .
The errors (or mean residuals) re defined by:
$\epsilon_{t} = \sigma_{t} \eta_{t}$
where $\eta_{t}$ is a white noise (0,1)
Then :
$Var[\epsilon_{t}]= \sigma_{t}^{2}$.
next see that :
$Var[y_{t} \vert \mathcal{F}_{t-1} ]= E\left[( y_{t} - E(y_{t} ))^{2}\vert \mathcal{F}_{t-1} \right] = E\left[( y_{t} - \mu_{t})^{2}\vert \mathcal{F}_{t-1} \right] = E\left[( \epsilon_{t})^{2}\vert \mathcal{F}_{t-1} \right] = Var[\epsilon_{t}]$
so
$Var[y_{t}]= \sigma_{t}^{2}$.
> see that $Var[y_{t} \vert \mathcal{F}_{t-1} ] \neq E\left[( y_{t})^{2}\vert \mathcal{F}_{t-1} \right] $
Ex: AR(1)-GARCH(1,1)
$y_{t} =AR_{1}y_{t-1}+ \epsilon_{t}$
where
$\epsilon_{t} = \sigma_{t} \eta_{t}$
and
$\sigma_{t}^{2} =w+ \alpha \sigma_{t-1}^{2} + \beta \epsilon_{t-1}^{2}$
$Var[y_{t} \vert \mathcal{F}_{t-1} ]= E\left[( y_{t} - E(y_{t} ))^{2}\vert \mathcal{F}_{t-1} \right] = E\left[( y_{t} - AR_{1}y_{t-1})^{2}\vert \mathcal{F}_{t-1} \right] = E\left[( \epsilon_{t})^{2}\vert \mathcal{F}_{t-1} \right] =Var[\epsilon_{t}]= \sigma_{t}^{2}$
now if you only compute the following as you suggest:
$ Var[y_{t} \vert \mathcal{F}_{t-1} ]=E\left[( y_{t} )^{2}\vert \mathcal{F}_{t-1} \right] = E\left[( AR_{1}y_{t-1}+ \epsilon_{t} )^{2}\vert \mathcal{F}_{t-1} \right] =...$
you won't find $Var[y_{t} \vert \mathcal{F}_{t-1} ]= \sigma_{t}^{2}$ (unless $AR_{1}$=0)
> To summarize you needs to model explicitly the conditional variance process ( $\sigma_{t}$) to be able to forecast it, there is no way to obtain it only from the cond. mean process, it seems rather logical.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.