A pure ARCH(1) has a short memory, since the half-life of a variance shock is ln(0.5)/ln(a₁), which at a₁ = 0.30 is about 0.58 days. Real volatility is far more persistent than that, and capturing it with ARCH alone needs many lags and many parameters. Bollerslev's 1986 generalisation adds one term and solves the problem:
h_t = omega + alpha e_(t-1)^2 + beta h_(t-1)
How do you read the GARCH(1,1) equation?
Today's variance depends on yesterday's squared surprise and on yesterday's variance. Three quantities carry almost all the interpretation. Persistence is α + β, and it governs how slowly a variance shock decays. The long-run variance is ω/(1 − α − β), which exists only when α + β < 1. The half-life of a variance shock is ln(0.5)/ln(α + β).
Take ω = 0.000004, α = 0.09, β = 0.88. Persistence is 0.97, the long-run variance is 0.00013333, the long-run daily standard deviation is 1.1547% and its annualised equivalent is 18.3303%. The half-life is 22.76 trading days, roughly a calendar month. If today's variance is 0.00018 and today's return surprise is 2.8%, tomorrow's forecast is 0.00023296, a conditional standard deviation of 1.5263%. Forecast further out and the path walks back toward the long-run level without ever quite arriving: 1.5165% at two days, 1.4884% at five, 1.4459% at ten, 1.3754% at twenty, 1.2241% at sixty.
The general k-step formula is worth memorising because it is the same shape as the AR(1) chain rule:
h_(t+k) = LR + (alpha + beta)^(k-1) (h_(t+1) - LR)
Advertisement
How well does GARCH(1,1) fit real markets?
Persistence near 1 is the empirically common case for equity indices, and it has a consequence that shows up in every option desk's conversation. At α + β = 0.97, a variance shock still retains 27.8% of its size after 42 trading days, so the volatility a one-year option is priced off sits much closer to the long-run level than to today's, while a one-week option is priced off something very close to today's. That is the term structure of implied volatility, arriving from a variance equation rather than from an option-pricing argument.
Volatility clustering is a measured property, not a metaphor. On the midcap series the raw returns show a lag-1 autocorrelation of −0.0733 and the squared residuals show +0.2086, with a lag-2 of +0.1596; the sample excess kurtosis of 1.48 is exactly what a variance that moves produces even when every conditional distribution is normal. A model with constant variance cannot generate fat tails without assuming them. A GARCH model generates them from the dynamics, which is why the two facts always travel together.
What are the limits of GARCH(1,1)?
Two limits, stated plainly. The symmetric GARCH above treats a −3% day and a +3% day identically, and equity markets do not: the leverage effect is real and asymmetric variants exist to capture it. And a persistence estimate above 1 means a broken model rather than an unusually persistent one, because the long-run variance is then negative and the forecast diverges. Check α + β < 1 before you read anything else in the output.
{
"skill": "Fitting and reading a volatility model on your own return series",
"use": "Have an assistant write the code that estimates a GARCH(1,1) on a return series you supply, and have it produce a second, independent estimate (a different library, or a hand-rolled maximum-likelihood loop) so the two can be diffed before either is quoted.",
"tools": ["Chat assistants with code execution - Claude, ChatGPT, Gemini", "Python: the arch package for GARCH, statsmodels for the ARCH LM test", "A spreadsheet for the ARCH(1) hand regression that reproduces the first step"],
"prompt": "Here is a series of daily returns as decimals. Do four things and show the arithmetic for each. (1) Demean the series and run the ARCH LM test on the residuals at lag 1, reporting the auxiliary regression's a0, a1, its t-statistic and n x R-squared. (2) Estimate a GARCH(1,1) by maximum likelihood and report omega, alpha, beta with standard errors. (3) Report persistence, the implied long-run variance, the long-run annualised volatility and the half-life. (4) Produce the one-step-ahead conditional variance and the 99% one-day value at risk on a stated position. Do not round intermediate values.",
"verify": "Recompute the ARCH(1) auxiliary regression by hand on the last twenty observations and confirm you can reproduce a0 and a1 from the six sums. Check alpha + beta < 1 before reading anything else, and check that omega/(1 - alpha - beta) is close to the sample variance you compute directly from the same series - if the model's own unconditional variance disagrees with the data's, the fit is wrong regardless of how the standard errors look. Confirm the series is a return series and not a price level, and that the value at risk uses the conditional standard deviation rather than the sample one. Cite the data file, the date range and the observation count alongside every figure.",
"diy": "You must be able to run the squared-residual regression, test its slope and produce the one-step conditional variance with a calculator - that is Worked Example 1 and it is what the gate marks. A model can hand you a persistence of 0.97; only you can notice that it was estimated on 40 observations and therefore means nothing.",
"market": "IN"
}