Modeling Volatility and GARCH Family › The GARCH Model
Quantitative FinanceAll chapters 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:
where:
- : conditional variance at time
- : constant parameter
- : ARCH coefficients measuring impact of past shocks
- : squared residuals from periods ago
- : GARCH coefficients measuring the impact of past variance
- : lagged conditional variance terms
- : number of GARCH lags
- : number of ARCH lags
The addition of 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:
where:
- : conditional variance for day
- : constant parameter
- : coefficient on the lagged squared residual (news impact)
- : squared return shock from previous day
- : coefficient on the lagged variance (persistence)
- : conditional variance from previous day
This equation admits a natural interpretation. Today's conditional variance consists of three components.
- Baseline level : Represents the minimum variance floor
- News component : 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 : 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.
- (positive baseline variance), ,
When these hold, we find the unconditional variance by setting expectations in the GARCH equation:
Thus:
where:
- : long-run unconditional variance
- : constant parameter
- : ARCH and GARCH coefficients
- : persistence of the process (must be )
This result shows that the unconditional variance depends inversely on the quantity . When 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 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 , the expected conditional variance at time is:
where:
- : expected conditional variance at time given information at time
- : unconditional long-run variance
- : persistence parameter (decay rate)
- : forecast horizon (days ahead)
- : current conditional variance
This formula has a direct interpretation. The deviation of conditional variance from its long-run mean decays exponentially at rate . 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 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 as the time required for the shock's impact to reduce by 50%:
Therefore:
where:
- : time required for a shock's impact to reduce by 50%
- : persistence parameter
In financial data, 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.

# 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
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:
where:
- : variance innovation (martingale difference sequence)
- : realized squared return (proxy for volatility)
- : conditional variance (expected volatility)
This represents the difference between the realized squared return and its conditional expectation (the variance). The variance innovation 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 into the GARCH(1,1) equation. Similarly substituting for , we derive the ARMA structure:
where:
- : squared return at time
- : GARCH parameters
- : variance innovation term
This is an ARMA(1,1) model for squared returns! The AR coefficient is and the MA coefficient is . 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.