ARIMA modeled the mean of returns and assumed the variance was constant. That assumption is spectacularly false. Stare at any return chart and you’ll see it: stretches of placid little wiggles, then bursts of violent swings, then calm again. Big moves cluster with big moves; quiet clusters with quiet. This is volatility clustering, and it’s one of the most robust empirical facts in all of finance — and one the ARCH/GARCH family was built to capture. Modeling it is how you forecast tomorrow’s risk, price options, and size positions. If ARIMA is the grammar of the mean, GARCH is the grammar of the variance.
Before you read — take a guess
A return series has a nearly flat ACF (you can't forecast direction), yet its risk is clearly NOT constant — turbulent weeks bunch together. Which statement best captures this?
Volatility clustering: the stylized fact
Analogy. Volatility behaves like weather, not climate. You can’t predict whether tomorrow brings rain or sun (the direction), but you absolutely can predict that a storm season is upon you — turbulent days come in runs, and calm days come in runs. Markets are the same: a panicky day is usually followed by more panicky days, and a sleepy day by more sleepy days.
The evidence. Recall from the autocorrelation lesson the tell-tale signature: the ACF of returns is nearly flat (direction unforecastable), but the ACF of squared returns (or absolute returns) is strongly positive and decays slowly over many lags. That slow decay in squared returns is the fingerprint of volatility clustering — today’s squared return helps predict tomorrow’s.
Why it matters. A risk model that assumes constant variance will badly understate risk in turbulent regimes (and overstate it in calm ones). During a crisis, “average” volatility is useless; you need the current, elevated volatility. Volatility clustering means recent volatility is your best guide to near-term volatility — and that’s forecastable structure worth real money in risk management and options pricing.
Each return is a fresh standardized shock scaled by the current conditional volatility. Push persistence (α + β) toward 1 and a big move inflates tomorrow's volatility, which inflates the next — calm and storm visibly bunch into runs. Drop persistence and the clustering dissolves into uniform noise.
ARCH: variance that depends on recent shocks
The breakthrough (Robert Engle, 1982, eventually a Nobel) was simple and radical: let the variance itself be a function of recent data. The ARCH model — AutoRegressive Conditional Heteroskedasticity — says today’s variance depends on the size of recent shocks.
Unpacking the name: Heteroskedasticity = non-constant variance. Conditional = given the recent past. Autoregressive = the variance feeds on its own recent history. Put together: the variance, conditional on recent returns, varies over time and depends on its own recent inputs.
Definition. An ARCH(1) model sets the conditional variance to a baseline plus a piece of the last squared shock: where is the previous return shock, is a baseline, and . The mechanism: a big move last period ( large) pushes up this period’s variance — clustering, built right in.
The limitation. Pure ARCH needs many lagged squared terms (ARCH(q) with large q) to capture the slow, persistent decay real volatility shows. That’s clunky and over-parameterized — which is exactly the problem GARCH solves.
The ARCH idea.
Pick the right option for each blank, then check.
ARCH stands for AutoRegressive Conditional , meaning the variance is . In ARCH(1), today's variance rises whenever the is large — which builds volatility clustering directly into the variance equation.
GARCH(1,1): the workhorse
The fix — Tim Bollerslev, 1986 — was to add a term that lets variance feed on its own previous value, not just past shocks. That’s GARCH (Generalized ARCH), and the version that dominates practice is GARCH(1,1).
Definition. Three forces set tomorrow’s variance:
- — a constant baseline (the long-run anchor).
- — the reaction to the last shock: how much a fresh surprise jolts volatility (the “news” term).
- — the persistence of yesterday’s variance: how much elevated volatility carries over (the “memory” term).
This recursion is enormously efficient. Because itself depends on , and so on, GARCH(1,1) implicitly contains an infinite weighted sum of all past squared shocks — capturing the slow decay that pure ARCH needed dozens of terms for, with just three parameters. That parsimony is why GARCH(1,1) became the default.
Worked example — one update. Suppose , , . Yesterday’s variance was (a daily vol of ), and yesterday’s return shock was a large (a day, so ). Then: Today’s vol forecast is — the big move bumped expected volatility up. A calm day () would instead give , vol — volatility drifting back down. That up-on-shock, decay-on-calm behavior is clustering.
Match each GARCH(1,1) term to its role.
Pick a term, then click its definition.
Persistence and the long-run variance
The single most important quantity in a fitted GARCH is the sum — the persistence.
What it controls. measures how slowly a volatility shock dies out. For typical daily equity data it’s often around – — very persistent: a volatility spike takes weeks to fade. The closer to 1, the longer turbulence lingers.
The unconditional (long-run) variance. Provided , the variance is mean-reverting and settles toward a long-run level: This is the “climate” volatility the process reverts to between storms. Notice the parallel with the AR(1) long-run mean — same structure, applied to variance.
Worked example — the long-run anchor. With , , : persistence , and so long-run daily vol (annualized, ). Today’s forecast sits just below this anchor and will drift back toward it as calm returns.
When α + β ≥ 1: the variance stops reverting
If the estimated exactly, you have IGARCH (integrated GARCH): shocks to variance are permanent — the unconditional variance is undefined (the formula divides by zero) and forecasts don’t revert to any level. EWMA, the next lesson’s topic, is exactly this special case with . And if the model is non-stationary and explosive — usually a sign of mis-estimation or a structural break in your data. Always check that the persistence is below 1 before trusting the long-run variance.
A fitted GARCH(1,1) has ω = 0.000004, α = 0.10, β = 0.88. What is its persistence and long-run (unconditional) variance?
Forecasting future variance
GARCH’s payoff is a term structure of volatility — a forecast not just for tomorrow but for any horizon.
One step ahead is direct from the equation: , using today’s known shock and variance.
Multi-step ahead is where mean reversion shows up. The -step forecast pulls geometrically from today’s variance toward the long-run anchor: The gap between current and long-run variance shrinks by a factor of each step. High persistence → slow convergence → today’s elevated vol matters far into the future. Low persistence → fast convergence → the forecast snaps back to the anchor quickly.
Worked example — the volatility term structure. Using , , and a current elevated (vol , mid-crisis):
- 1 day: → vol .
- 10 days: → vol .
- 50 days: → vol .
- 250 days: → vol (back at the anchor).
The forecast slides smoothly from today’s crisis level back toward the long-run climate — exactly the shape that lets a risk desk say “elevated now, normalizing over the quarter.”
GARCH gives time-varying variance, but does it fix the fat tails of returns too?
Partly — and this is a subtle, important point. GARCH generates fat-tailed unconditional returns even when the conditional shocks are normal: mixing normals with different variances (calm days and storm days) produces an aggregate distribution with fatter tails than any single normal. So plain GARCH-with-normal-errors already explains a chunk of the observed kurtosis purely through volatility clustering. But empirically it’s usually not enough — real returns have tails fatter than even normal-GARCH predicts. So practitioners fit GARCH with fat-tailed conditional distributions (Student-t errors are standard) or use asymmetric variants like GJR-GARCH / EGARCH that let bad news raise volatility more than good news (the leverage effect — crashes spike vol more than rallies of the same size). The progression is: constant variance → GARCH-normal (clustering + some fat tails) → GARCH-t (fatter conditional tails) → asymmetric GARCH (leverage). Each step closes a remaining gap between the model and the stubborn reality of market returns.
A GARCH(1,1) with persistence α + β = 0.95 is currently forecasting volatility well above its long-run level after a crash. What does its multi-step forecast do as the horizon grows?
Putting it together
Volatility clustering — turbulent and calm stretches bunching into runs — is the robust stylized fact that returns have a flat level ACF but a strongly persistent squared-return ACF: magnitude is forecastable even when direction isn’t. ARCH captured this by letting today’s variance react to the last squared shock (), but needed too many lags. GARCH(1,1) fixed it by adding a persistence term, : anchors the baseline, is the reaction to fresh news, is the carryover of yesterday’s variance, and three parameters implicitly weight all past shocks. The key diagnostic is persistence — near 1 for daily equities, so shocks linger — and, provided it’s below 1, the variance mean-reverts to the long-run level . Forecasts form a volatility term structure that decays geometrically by per step from today’s level back toward that anchor. GARCH-normal already manufactures some fat tails through clustering; Student-t errors and asymmetric variants (GJR/EGARCH, the leverage effect) close the rest of the gap to real returns.
Big picture
Volatility clustering & GARCH — the whole picture
- Volatility clustering & GARCH
- Volatility clustering
- Big moves follow big moves
- Flat return ACF, persistent squared-return ACF
- Magnitude forecastable even if direction is not
- ARCH
- Conditional heteroskedasticity (varying variance)
- σ²_t = ω + α·ε²_{t−1}
- Needs many lags for slow decay
- GARCH(1,1)
- σ²_t = ω + α·ε²_{t−1} + β·σ²_{t−1}
- ω baseline, α news, β memory
- Three params imply infinite weighted past
- Persistence & long-run
- Persistence = α + β (often ~0.98 daily)
- Long-run variance = ω/(1−α−β)
- α+β = 1 is IGARCH (EWMA); > 1 explosive
- Forecasting & extensions
- Multi-step decays by (α+β) per step
- Volatility term structure → long-run anchor
- GARCH-t for fatter tails
- GJR/EGARCH for the leverage effect
- Volatility clustering
Recap: volatility clustering & GARCH
What empirical fact about returns is "volatility clustering," and how does it show up in the autocorrelation plots?
Check your answer to continue.
Next up — EWMA & RiskMetrics — we meet GARCH’s famous simplified cousin: the exponentially weighted moving average. It’s the special case, it powers the classic RiskMetrics risk system, and its single decay parameter makes it the pragmatic volatility estimator that desks reach for first.