Modeling Volatility and GARCH Family › The GARCH Model

Michael BrenndoerferDecember 10, 20259 min read
Quantitative FinanceAll chapters
Part 8 of 15Econometrics and Statistical Modeling
Chapter 42Modeling Volatility and GARCH Family › The GARCH Model
Reading section 4 of 13 · The GARCH Model · 9 minSection 4 of 13 · 9 min

Book contents

Section 4 of 13 · 9 min read

Modeling Volatility and GARCH Family › The GARCH ModelOne section · Sections in this chapter4 / 13 ↓
Reading tools Definitions & inline links

Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.

Article links

Make inline references clickable

Generalized ARCH

Tim Bollerslev's 1986 GARCH (Generalized ARCH) model elegantly addresses ARCH's limitations by adding lagged conditional variance terms. This simple addition has major implications. Instead of requiring many lagged squared residuals to capture persistence, GARCH introduces a feedback mechanism: yesterday's conditional variance directly affects today's conditional variance. With this addition, GARCH(1,1) often fits as well as or better than high-order ARCH models with far fewer parameters.

The intuition behind adding lagged variance terms is that conditional variance itself carries information about the volatility state. If yesterday's conditional variance was high, we were in a turbulent market environment. That turbulence is likely to continue regardless of whether yesterday's specific realized shock was large or small. The lagged variance term captures this "regime" information that squared residuals alone might miss.

The GARCH(p,q) model specifies:

σt2=ω+∑i=1qαiϵt−i2+∑j=1pβjσt−j2\sigma_t^2 = \omega + \sum_{i=1}^{q} \alpha_i \epsilon_{t-i}^2 + \sum_{j=1}^{p} \beta_j \sigma_{t-j}^2

where:

  • σt2\sigma_t^2: conditional variance at time tt
  • ω\omega: constant parameter
  • αi\alpha_i: ARCH coefficients measuring impact of past shocks
  • ϵt−i2\epsilon_{t-i}^2: squared residuals from ii periods ago
  • βj\beta_j: GARCH coefficients measuring the impact of past variance
  • σt−j2\sigma_{t-j}^2: lagged conditional variance terms
  • pp: number of GARCH lags
  • qq: number of ARCH lags

The addition of βjσt−j2\beta_j \sigma_{t-j}^2 terms creates a feedback mechanism: high variance yesterday directly contributes to high variance today, beyond just the impact of past shocks. This means that even if yesterday's specific return was modest, a high-variance state carries forward into today's forecast. The GARCH terms essentially summarize the effect of all historical shocks, weighted by their distance from the present.

GARCH(1,1): The Workhorse Model

The GARCH(1,1) specification is by far the most widely used variant in both academic research and industry practice:

σt2=ω+αϵt−12+βσt−12\sigma_t^2 = \omega + \alpha \epsilon_{t-1}^2 + \beta \sigma_{t-1}^2

where:

  • σt2\sigma_t^2: conditional variance for day tt
  • ω\omega: constant parameter
  • α\alpha: coefficient on the lagged squared residual (news impact)
  • ϵt−12\epsilon_{t-1}^2: squared return shock from previous day
  • β\beta: coefficient on the lagged variance (persistence)
  • σt−12\sigma_{t-1}^2: conditional variance from previous day

This equation admits a natural interpretation. Today's conditional variance consists of three components.

  • Baseline level ω\omega: Represents the minimum variance floor
  • News component αϵt−12\alpha \epsilon_{t-1}^2: Captures how yesterday's specific return shock affects the variance estimate. If yesterday's shock was large, this term increases today's variance.
  • Memory component βσt−12\beta \sigma_{t-1}^2: Carries forward yesterday's overall volatility state. If you were in a high-volatility regime yesterday, that regime persists to some degree today.

The parameter constraints for stationarity are.

  • ω>0\omega > 0 (positive baseline variance), α≥0\alpha \geq 0, β≥0\beta \geq 0
  • α+β<1\alpha + \beta < 1

When these hold, we find the unconditional variance by setting expectations E[σt2]=E[ϵt−12]=σˉ2E[\sigma_t^2] = E[\epsilon_{t-1}^2] = \bar{\sigma}^2 in the GARCH equation:

σˉ2=ω+ασˉ2+βσˉ2σˉ2(1−α−β)=ω\begin{aligned} \bar{\sigma}^2 &= \omega + \alpha \bar{\sigma}^2 + \beta \bar{\sigma}^2 \\ \bar{\sigma}^2(1 - \alpha - \beta) &= \omega \end{aligned}

Thus:

σˉ2=ω1−α−β\bar{\sigma}^2 = \frac{\omega}{1 - \alpha - \beta}

where:

  • σˉ2\bar{\sigma}^2: long-run unconditional variance
  • ω\omega: constant parameter
  • α,β\alpha, \beta: ARCH and GARCH coefficients
  • α+β\alpha + \beta: persistence of the process (must be <1< 1)

This result shows that the unconditional variance depends inversely on the quantity (1−α−β)(1 - \alpha - \beta). When α+β\alpha + \beta is close to one, the denominator approaches zero and the unconditional variance becomes very large. This makes sense: high persistence means shocks have lasting effects, inflating the average variance level over time.

Volatility Persistence

The sum α+β\alpha + \beta measures volatility persistence. This quantity determines how quickly volatility reverts to its long-run mean after a shock. Higher values mean slower reversion, with volatility remaining above or below its long-run mean for longer periods following a disturbance.

To see this mathematically, we can rewrite GARCH(1,1) in terms of deviations from unconditional variance. After a shock at time tt, the expected conditional variance at time t+ht+h is:

E[σt+h2∣Ft]−σˉ2=(α+β)h(σt2−σˉ2)E[\sigma_{t+h}^2 | \mathcal{F}_t] - \bar{\sigma}^2 = (\alpha + \beta)^h (\sigma_t^2 - \bar{\sigma}^2)

where:

  • E[σt+h2∣Ft]E[\sigma_{t+h}^2 | \mathcal{F}_t]: expected conditional variance at time t+ht+h given information at time tt
  • σˉ2\bar{\sigma}^2: unconditional long-run variance
  • α+β\alpha + \beta: persistence parameter (decay rate)
  • hh: forecast horizon (days ahead)
  • σt2\sigma_t^2: current conditional variance

This formula has a direct interpretation. The deviation of conditional variance from its long-run mean decays exponentially at rate α+β\alpha + \beta. If today's variance is above average, the expected variance tomorrow will be closer to average, but not all the way there. The gap shrinks by a factor of (α+β)(\alpha + \beta) each day. When persistence is high (say, 0.98), only 2% of the gap closes each day, so above-average volatility persists for many weeks.

We define the half-life kk as the time required for the shock's impact to reduce by 50%:

(α+β)k=0.5kln⁡(α+β)=ln⁡(0.5)\begin{aligned} (\alpha + \beta)^k &= 0.5 \\ k \ln(\alpha + \beta) &= \ln(0.5) \end{aligned}

Therefore:

Half-life=ln⁡(0.5)ln⁡(α+β)\text{Half-life} = \frac{\ln(0.5)}{\ln(\alpha + \beta)}

where:

  • Half-life\text{Half-life}: time required for a shock's impact to reduce by 50%
  • α+β\alpha + \beta: persistence parameter

In financial data, α+β\alpha + \beta typically ranges from 0.95 to 0.99, implying half-lives of 14 to 69 days. Volatility shocks are highly persistent, meaning that after a crisis or turbulent period, markets do not quickly return to normal. Instead, high volatility fades gradually over weeks and months, a pattern that has practical implications for risk management and option pricing.

Out[7]:
Visualization
Line chart showing exponential increase in half-life as persistence approaches 1.0.
Relationship between GARCH persistence (α + β) and the half-life of volatility shocks. Empirical persistence values of 0.95 to 0.99 correspond to half-lives of 14 to 69 trading days, meaning volatility shocks lose only half their impact over 2 to 10 weeks. This illustrates why crisis-driven volatility persists for weeks to months rather than dissipating quickly.
In[8]:
Code
# Illustrate volatility persistence for different parameter values
def garch_forecast_path(omega, alpha, beta, initial_shock, horizon=100):
    """Forecast conditional variance path after a shock."""
    persistence = alpha + beta
    unconditional_var = omega / (1 - persistence)

    # Initial variance after shock
    sigma2_0 = unconditional_var + initial_shock

    # Forecast path
    deviations = [(persistence**h) * initial_shock for h in range(horizon)]
    variances = [unconditional_var + dev for dev in deviations]

    return np.array(variances), unconditional_var


# Parameters for illustration
omega = 0.05
initial_shock = 2.0  # Large variance shock
horizon = 100

# Different persistence levels
params = [
    (0.05, 0.94, "High (α+β=0.99)"),
    (0.05, 0.90, "Medium (α+β=0.95)"),
    (0.05, 0.80, "Low (α+β=0.85)"),
]

# Calculate paths for plotting
persistence_paths = []
for alpha, beta, label in params:
    persistence = alpha + beta
    omega_adj = 0.05 * (1 - persistence)  # Keep unconditional var similar
    variances, unconditional = garch_forecast_path(
        omega_adj, alpha, beta, initial_shock, horizon
    )
    persistence_paths.append((variances, label))

# Unconditional variance is the same for all scenarios (0.05)
unconditional_var_target = unconditional
Out[9]:
Visualization
Line chart showing variance decay paths for different persistence parameters.
Mean reversion of conditional variance following a large volatility shock under GARCH(1,1) persistence values of 0.85, 0.95, and 0.99. Higher persistence slows convergence toward long-run unconditional variance: the shock''s half-life rises from about 4 days at 0.85 to 14 days at 0.95 and 69 days at 0.99.

This figure shows that volatility mean-reverts slowly. After a large shock pushes variance above its long-run level, it takes many days for conditional variance to return to equilibrium. The decay is exponential, with higher persistence parameters producing slower convergence. This persistence makes GARCH models useful for forecasting: we can predict that above-average volatility will gradually decline, and below-average volatility will gradually rise, toward the long-run average.

GARCH as ARMA for Squared Returns

There is an elegant connection between GARCH and ARMA models that illuminates why GARCH(1,1) is so parsimonious. Just as ARMA models capture the autocorrelation structure of returns, GARCH can be viewed as an ARMA model for the variance process. This connection provides theoretical insight and helps justify why a single GARCH lag often suffices.

Define the variance innovation as:

vt=ϵt2−σt2v_t = \epsilon_t^2 - \sigma_t^2

where:

  • vtv_t: variance innovation (martingale difference sequence)
  • ϵt2\epsilon_t^2: realized squared return (proxy for volatility)
  • σt2\sigma_t^2: conditional variance (expected volatility)

This represents the difference between the realized squared return and its conditional expectation (the variance). The variance innovation vtv_t is a martingale difference sequence. This means it has zero expected value and is unpredictable from past information. It captures the surprise in realized variance relative to what the model predicted.

We substitute σt2=ϵt2−vt\sigma_t^2 = \epsilon_t^2 - v_t into the GARCH(1,1) equation. Similarly substituting for t−1t-1, we derive the ARMA structure:

ϵt2−vt=ω+αϵt−12+β(ϵt−12−vt−1)(substitute GARCH eq.)ϵt2=ω+αϵt−12+βϵt−12−βvt−1+vt(expand terms)ϵt2=ω+(α+β)ϵt−12+vt−βvt−1(rearrange to ARMA form)\begin{aligned} \epsilon_t^2 - v_t &= \omega + \alpha \epsilon_{t-1}^2 + \beta (\epsilon_{t-1}^2 - v_{t-1}) && \text{(substitute GARCH eq.)} \\ \epsilon_t^2 &= \omega + \alpha \epsilon_{t-1}^2 + \beta \epsilon_{t-1}^2 - \beta v_{t-1} + v_t && \text{(expand terms)} \\ \epsilon_t^2 &= \omega + (\alpha + \beta)\epsilon_{t-1}^2 + v_t - \beta v_{t-1} && \text{(rearrange to ARMA form)} \end{aligned}

where:

  • ϵt2\epsilon_t^2: squared return at time tt
  • ω,α,β\omega, \alpha, \beta: GARCH parameters
  • vtv_t: variance innovation term

This is an ARMA(1,1) model for squared returns! The AR coefficient is (α+β)(\alpha + \beta) and the MA coefficient is −β-\beta. The connection explains why GARCH(1,1) is so parsimonious: it captures the same dynamics as an ARMA(1,1) for the variance process. Just as ARMA(1,1) often suffices for modeling the autocorrelation structure of returns, GARCH(1,1) suffices for modeling the autocorrelation structure of squared returns. The elegance of this representation also facilitates theoretical analysis of GARCH properties.