1986 -- Tim Bollerslev 的 GARCH 模型:波動率預測的工業標準#
案件描述#
1986 年,Tim Bollerslev(Engle 的學生)在《Journal of Econometrics》發表《一般化自迴歸條件異質變異數》(Generalized Autoregressive Conditional Heteroskedasticity)。ARCH(1982)只用了過去的平方誤差;Bollerslev 加上了過去的變異數本身:
GARCH(p, q):今天的條件變異數 = 常數 + 過去平方誤差的加權 + 過去變異數的加權。
\[ h_t = \omega + \sum_{i=1}^{q} \alpha_i \varepsilon_{t-i}^2 + \sum_{j=1}^{p} \beta_j h_{t-j} \]
最簡單的 GARCH(1,1) 成為金融計量經濟學史上被使用最多的模型——沒有之一。
前因:ARCH 的記憶太短#
- ARCH(p) 需要很大的 p 才能捕捉金融資料的長記憶——Engle 自己估計英國通膨用了 ARCH(4),股價資料常常需要 ARCH(8) 以上,參數過多、估計困難。
- 線索:Bollerslev 意識到 ARMA 與 ARCH 的類比——ARMA 用 MA 項代替高階 AR;GARCH 用變異數的自迴歸項代替高階 ARCH,兩個參數就能表達長記憶。
推理過程#
線索一:GARCH(1,1) 的優雅#
\[ h_t = \omega + \alpha \varepsilon_{t-1}^2 + \beta h_{t-1} \]
三個參數( \(\omega, \alpha, \beta\) )捕捉全部:
- \(\alpha\) :衝擊的反應強度(news 今天的影響)
- \(\beta\) :記憶的持續性(persistence)
- \(\alpha + \beta < 1\) :平穩條件; \(\alpha + \beta\) 越接近 1,波動率的記憶越長(實證上股票通常 \(\approx 0.95–0.99\) )
線索二:波動率的預測公式#
GARCH(1,1) 有封閉形式的多期波動率預測——這是它成為工業標準的實務理由:
\[ E[h_{t+k}] = \sigma^2 + (\alpha+\beta)^{k-1}(h_{t+1} - \sigma^2) \]
其中 \(\sigma^2 = \dfrac{\omega}{1-\alpha-\beta}\) 是長期(無條件)變異數。預測以幾何速度 \((\alpha+\beta)^k\) 回歸長期平均——均值回歸的波動率。
線索三:條件厚尾#
即使標準化殘差 \(z_t = \varepsilon_t/\sqrt{h_t}\) 是常態, \(r_t\) 的無條件分配也是厚尾的(過度峰態):
\[ \text{kurtosis} = 3 + \frac{2\alpha^2}{1 - (\alpha+\beta)^2 - 2\alpha^2} \times \frac{1}{1} > 3 \]
(在 \(\alpha>0\) 時。)這解釋了為什麼金融報酬看起來「常態但厚尾」——厚尾不一定是機制厚尾,可能是波動率隨機造成的。
現代程式重現:GARCH(1,1) 估計與預測#
# pip install arch
import numpy as np
from arch import arch_model
def simulate_garch11(omega=0.05, alpha=0.1, beta=0.85, n=5000, seed=0):
rng = np.random.default_rng(seed)
eps = np.zeros(n); h = np.zeros(n)
for t in range(1, n):
h[t] = omega + alpha*eps[t-1]**2 + beta*h[t-1]
eps[t] = np.sqrt(h[t]) * rng.standard_normal()
return eps
eps = simulate_garch11()
# 用 arch 套件估計 GARCH(1,1)
am = arch_model(eps * 100, vol='GARCH', p=1, q=1)
res = am.fit(disp='off')
print(res.params) # 應回收 omega≈0.05, alpha≈0.1, beta≈0.85
# 多期波動率預測(VaR 的核心輸入)
forecast = res.forecast(horizon=10)
print(forecast.variance.values[-1])
後果#
- RiskMetrics(1994):J.P. Morgan 的 VaR 系統的波動率引擎就是指數加權的 GARCH 特例( \(\alpha+\beta=1\) 的 IGARCH,見 1994-RiskMetricsVaR.md)。
- 計量經濟的工業標準:GARCH 家族超過數百個變體(EGARCH、GJR、TGARCH、GARCH-M...),用於匯率、利率、商品、加密貨幣。
- Engle 獲 2003 年諾貝爾獎——GARCH 是主要功臣之一。
- 選擇權定價:Duan(1995)的 GARCH 選擇權定價模型,把條件變異數帶進衍生品定價。
- 盲點:GARCH 對「已實現波動率」(realized volatility,用高頻資料直接測量的波動率)的優勢在 2000 年代被挑戰;且 GARCH 描述的是「統計上的波動率」,不含跳躍與結構性斷裂。
偵探筆記#
- 動機:ARCH 記憶太短、參數過多
- 工具:變異數自迴歸、封閉形式預測、極大概似
- 遺產:風險管理的工業標準、數百個變體的家族
- 盲點:統計波動率 vs 已實現波動率、跳躍與斷裂
參考資料#
- Bollerslev, T. (1986). "Generalized Autoregressive Conditional Heteroskedasticity". Journal of Econometrics, 31(3), 307–327.
- Engle, R. (2001). "GARCH 101: The Use of ARCH/GARCH Models in Applied Econometrics". Journal of Economic Perspectives.