Page QiView

波动率建模:GARCH 家族方法与风险预测

波动率建模:GARCH 家族方法与风险预测

1. 为什么要建模波动率

在金融序列里,“均值可预测性”往往弱于“方差可预测性”。
GARCH 的目标不是预测涨跌方向,而是预测风险强度(条件波动率)。

2. GARCH(1,1) 的核心形式

$$ \varepsilon_t = \sigma_t z_t,\quad z_t\sim iid(0,1) $$

$$ \sigma_t^2=\omega+\alpha\varepsilon_{t-1}^2+\beta\sigma_{t-1}^2 $$

解释:

  1. $\alpha$ 衡量“新冲击”对波动率的影响。
  2. $\beta$ 衡量“历史波动”惯性。
  3. $\alpha+\beta$ 越接近 1,波动持续性越强。

3. 建模流程

  1. 先对收益序列建均值模型(如 ARMA)。
  2. 在残差上做 ARCH-LM 检验。
  3. 再建 GARCH/TGARCH/EGARCH 等方差模型。
  4. 用滚动窗口评估波动率预测损失。

4. Python 示例

import pandas as pd
from arch import arch_model

# r: 日收益率序列(例如对数收益)
am = arch_model(
    r.dropna() * 100,
    mean="AR",
    lags=1,
    vol="GARCH",
    p=1,
    q=1,
    dist="t",
)
res = am.fit(disp="off")
print(res.summary())

# 预测未来 5 期条件方差
fcast = res.forecast(horizon=5)
print(fcast.variance.tail(1))

5. 常见错误

  1. 假设正态误差,忽略厚尾风险。
  2. 数据缩放不一致(百分比收益与小数收益混用)。
  3. 只看样本内拟合,不做 VaR 回测。
  4. 把波动率预测误当成收益率预测。

6. 实务延展

  1. 杠杆效应显著时优先 EGARCH/TGARCH。
  2. 高频场景可与实现波动率(RV)模型结合。
  3. 风控报告建议同时输出 VaR 与 ES。

GARCH 的本质是“风险状态机”,帮助你把噪声中的风险聚集结构提取出来。