跳到主内容
@wquguru
术语时间序列

GARCH GARCH

2026-09-05 更新

定义#

GARCH 是用过去的冲击和波动预测当前波动的模型。全称是广义自回归条件异方差(Generalized Autoregressive Conditional Heteroskedasticity),它把「今天的波动率有多大」当成一个可以被历史解释的变量,而不是一个固定常数。

它要处理的现象是波动聚集:市场剧烈的日子往往扎堆出现,平静的日子也扎堆出现。它的前身 ARCH 只用过去的残差平方来解释当前方差,需要很多个滞后项才够;GARCH 在此基础上加进了方差自身的滞后项,用两三个参数就能刻画同样长的记忆,因此参数更省、更常用。

公式#

ARCH(p) 只看过去的冲击:

σt2=α0+α1ϵt12++αpϵtp2\sigma_t^2 = \alpha_0 + \alpha_1 \epsilon_{t-1}^2 + \cdots + \alpha_p \epsilon_{t-p}^2

GARCH(1,1) 再加一项昨天的条件方差:

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

其中 σt2\sigma_t^2tt 时刻的条件方差,ω\omega 是常数项,ϵt12\epsilon_{t-1}^2 是上一期残差的平方(昨天的意外有多大),α\alpha 是它的权重,σt12\sigma_{t-1}^2 是上一期的条件方差,β\beta 是它的权重。要求 α,β0\alpha, \beta \ge 0α+β<1\alpha + \beta < 1,否则波动率会发散、模型没有长期均值。参数一般用最大似然估计(MLE)来定。

算一笔账#

用课程里的参数:ω=1.0\omega = 1.0α=0.1\alpha = 0.1β=0.8\beta = 0.8

长期方差是 ω/(1αβ)=1.0/(10.9)=1.0/0.1=10\omega/(1 - \alpha - \beta) = 1.0/(1 - 0.9) = 1.0/0.1 = 10,对应长期波动率 103.16\sqrt{10} \approx 3.16

假设昨天条件方差 σt12=10\sigma_{t-1}^2 = 10(正处在长期水平),但收到了一个不小的冲击 ϵt1=6\epsilon_{t-1} = 6,则今天:

σt2=1.0+0.1×36+0.8×10=1.0+3.6+8=12.6\sigma_t^2 = 1.0 + 0.1 \times 36 + 0.8 \times 10 = 1.0 + 3.6 + 8 = 12.6

波动率从 3.16 抬到 12.63.55\sqrt{12.6} \approx 3.55。再往后做多期预测时,未来冲击的期望值就是当期方差本身,递推变成 σt+12=ω+(α+β)σt2\sigma_{t+1}^2 = \omega + (\alpha+\beta)\sigma_t^2:下一期是 1.0+0.9×12.6=12.341.0 + 0.9 \times 12.6 = 12.34,再下一期 1.0+0.9×12.3412.111.0 + 0.9 \times 12.34 \approx 12.11——一次冲击抬起来的波动,会以每期乘 α+β=0.9\alpha + \beta = 0.9 的速度慢慢衰回 10 附近。这就是波动聚集的数学形态。

常见问题#

GARCH 能预测涨跌吗?#

不能。它建模的是波动的大小,不是方向。σt\sigma_t 变大只说明明天的振幅可能更大,涨跌各半。它的用武之地在风险度量、仓位缩放和期权定价,不是择时信号。

α 和 β 分别该怎么读?#

α\alpha 是对最新一次冲击的敏感度,越大说明波动率对突发事件反应越猛;β\beta 是记忆的持久度,越大说明高波动状态拖得越久。两者之和越接近 1,波动回到长期均值的速度越慢;等于或超过 1,模型就不平稳了。

怎么知道数据到底需不需要 GARCH?#

先做 ARCH 效应检验:把残差平方对它自己的若干滞后项做回归,用 TR2TR^2 与卡方分布比较。原假设是不存在 ARCH 效应,p 值很小就可以拒绝它,说明波动确实随时间聚集,值得上 GARCH。反过来 p 值大只是无法拒绝原假设,不等于证明了同方差。

相关术语

出自