Skip to content
Module 07 of 1165 min readAdvanced

Volatility — ARCH, GARCH, EGARCH

Why financial volatility clusters. ARCH/GARCH(1,1), asymmetric models, the leverage effect, fitting a GARCH on NSE returns.

64%

Listen along

Read “Volatility — ARCH, GARCH, EGARCH” aloud

Plays in your browser using on-device text-to-speech — nothing leaves the page.

Volatility is the most-traded quantity in modern finance after returns themselves. It's the input to option pricing, VaR, risk parity, and hundreds of derivatives strategies. The empirical fact that makes vol tradable: volatility clusters — large moves follow large moves, calm follows calm. ARCH/GARCH models capture this.

Volatility clustering

ACF of raw returns: near zero at all lags (efficient market). ACF of squared returns: strongly positive out to dozens of lags. This is conditional heteroskedasticity — the variance of r_t depends on past information, even when E[r_t] doesn't.

ARCH(q)

math
r_t = μ + ε_t, ε_t = σ_t z_t, z_t ~ i.i.d. (0, 1)
σ²_t = ω + α₁ ε²_{t-1} + α₂ ε²_{t-2} + ... + α_q ε²_{t-q}

Engle (1982). Conditional variance is a deterministic function of past squared returns. ARCH(1) requires α₁ < 1 for stationarity; the unconditional variance is ω / (1 - α).

GARCH(p, q)

math
σ²_t = ω + Σ α_i ε²_{t-i} + Σ β_j σ²_{t-j}

Bollerslev (1986). Generalised by adding lagged conditional variances. GARCH(1,1) — the workhorse — gets remarkable empirical fit to most financial series with just three parameters.

GARCH(1,1) closed-form

math
σ²_t = ω + α ε²_{t-1} + β σ²_{t-1}
Unconditional variance: σ̄² = ω / (1 - α - β)
Stationarity: α + β < 1
Persistence: α + β (closer to 1 = longer memory)

Typical GARCH(1,1) estimates for equities

α ≈ 0.05-0.10 (one-period innovation weight), β ≈ 0.85-0.92 (carry-over weight), α + β ≈ 0.95-0.99 (high persistence, slow vol mean-reversion). Daily SPX since 1990: α ≈ 0.085, β ≈ 0.905. Daily NSE-20: similar with slightly different ratios. The high persistence is why a vol shock today raises forecast vol for weeks to come.

Forecasting volatility

math
E[σ²_{t+h} | F_t] = σ̄² + (α + β)^h (σ²_t - σ̄²)

h-step volatility forecast mean-reverts geometrically toward the unconditional variance at rate (α + β). High persistence → slow mean reversion. The whole VIX-style implied-vol term structure can be derived from this.

Estimation

Maximum likelihood, typically Gaussian or t. The log-likelihood is conditional on the path; numerical optimisation iterates over the parameters subject to constraints (α, β > 0, ω > 0, α + β < 1). Most stat packages (Python's arch, R's rugarch) handle this in one call.

Asymmetric extensions — capturing the leverage effect

Negative returns produce more vol than positive returns of the same magnitude (Black 1976). Symmetric GARCH misses this. Two standard fixes:

  • EGARCH (Nelson 1991): models log σ²_t; allows asymmetric impact via |z_{t-1}| and z_{t-1} separately.
  • GJR-GARCH (Glosten-Jagannathan-Runkle 1993): adds an indicator term γ I(ε_{t-1} < 0) ε²_{t-1} to GARCH(1,1).

Other return distributions

Gaussian residuals usually have too-thin tails for daily returns. Fitting GARCH with Student-t or skewed-t residuals consistently improves likelihood and tail fit. The arch Python package supports normal, t, skew-t, and GED out of the box.

Realised volatility

When intraday data is available, realised volatility (sum of squared intraday returns) is a model-free estimator of integrated variance. HAR-RV (Heterogeneous Autoregressive Realised Volatility, Corsi 2009) regresses realised vol on past daily, weekly, monthly averages — and often forecasts as well as GARCH or better.

Exercise

GARCH(1,1) fit on NSE-20 daily returns gives ω = 0.00001, α = 0.08, β = 0.90, with current σ²_t = 0.0004 (so σ_t = 2%). (1) Compute unconditional volatility (annualised). (2) Persistence. (3) Forecast σ²_{t+10}, expressed as annualised vol. (4) Comment.

Loading progress…
LeadAfrikPublic Economics Hub