📈 GARCH(1,1) 模型 · 波动率预测

动态对冲 · 金融工程

GARCH(1,1) 是波动率建模的核心工具,融合了条件方差的自回归与异方差特性。 本节详细拆解模型公式、平稳条件与预测公式,为动态对冲策略提供理论基础。

📐 1. GARCH(1,1) 模型公式

标准GARCH(1,1) 由均值方程与条件方差方程构成。设 \(r_t\) 为对数收益率,\(\sigma_t^2\) 为条件方差:

rt = μ + εt ,  εt = σt · zt ,  zt ~ i.i.d. N(0,1)

σt² = ω + α εt−1² + β σt−1²

其中参数约束:ω > 0,α ≥ 0,β ≥ 0,保证条件方差非负。

符号含义典型约束
μ收益率均值 (通常接近0)实数
ω常数项 / 基准方差ω > 0
αARCH 项系数 (滞后残差平方冲击)α ≥ 0
βGARCH 项系数 (方差持续性)β ≥ 0
εt−1²t-1 时刻的残差平方 (新息)—
σt−1²t-1 时刻的条件方差—

⚖️ 2. 平稳条件

GARCH(1,1) 过程为宽平稳(协方差平稳)的充要条件:

🔹 基本约束 ω > 0, α ≥ 0, β ≥ 0
🔹 平稳性条件 α + β < 1
🔹 无条件方差 σ² = ω / (1 − α − β)
🔹 意义 当 α+β < 1,冲击衰减,波动率均值回归

α+β 接近 1 表示波动率高度持续(IGARCH 特例), 此时无条件方差不存在,但模型仍可预测短期波动。

平稳条件:α + β < 1 0 0.5 1.0 α+β 平稳区 非平稳 / IGARCH α+β=1

🔮 3. 波动率预测公式

给定 t 时刻信息集 ℱt,向前 k 步的条件方差预测:

𝔼[σt+k² | ℱt] = ω · (1 + (α+β) + … + (α+β)k−1) + (α+β)k · σt²

= ω · (1 − (α+β)k) / (1 − α−β) + (α+β)k · σt²

当 α+β < 1 且 k → ∞,预测收敛于无条件方差 σ² = ω/(1−α−β)。

📌 预测步骤 (迭代)

  1. 一步预测:σ̂t+1² = ω + α εt² + β σt²
  2. 多步预测:对 k ≥ 2,使用递归 σ̂t+k² = ω + (α+β) · σ̂t+k−1²
  3. 长期均值回归:预测值以指数速度向无条件方差衰减
波动率预测衰减 (α+β = 0.92) 0 5 10 15 k 无条件方差 σ²t

🧪 4. Python 实现片段

使用 arch 库拟合 GARCH(1,1) 并预测波动率:

from arch import arch_model
returns = ...   # 收益率序列

model = arch_model(returns, vol='Garch', p=1, q=1, mean='Zero')
res = model.fit(update_freq=0)
forecast = res.forecast(horizon=5)

print(forecast.variance.iloc[-1])  # 向前5步方差预测

🛡️ 5. 动态对冲中的应用