3. GARCH模型基础:GARCH(p,q)模型的定义、与ARCH的关系、参数的经济含义

好,我们进入GARCH模型。说实话,我第一次接触ARCH模型时,觉得它挺巧妙的——用过去的残差平方来预测今天的波动。但很快我就发现了一个问题:在实际项目中,ARCH模型需要很高的阶数才能捕捉到波动的持续性。比如我处理沪深300的日收益率数据时,ARCH(12)甚至都不够用。这就很尴尬了,参数太多,估计不稳定,还容易过拟合。

后来我读到Bollerslev在1986年的论文,他提出了GARCH模型。我当时的感觉是:嗯,这才对嘛。

3.1 GARCH(p,q)模型的定义

GARCH模型的全称是广义自回归条件异方差模型(Generalized Autoregressive Conditional Heteroskedasticity)。它把ARCH模型扩展了一下——不仅用过去的残差平方,还加入了过去的条件方差本身。

数学上,GARCH(p,q)模型由两部分组成:

均值方程(通常是一个ARMA过程):

r_t = μ + ε_t
ε_t = σ_t · z_t,  z_t ~ i.i.d. N(0,1)

方差方程

σ_t² = ω + Σ(α_i · ε_{t-i}²) + Σ(β_j · σ_{t-j}²)
       i=1..q          j=1..p

其中:

  • ω 是常数项,> 0
  • α_i 是ARCH项系数,≥ 0,衡量新信息对波动的影响
  • β_j 是GARCH项系数,≥ 0,衡量过去波动对当前的影响
  • p 是GARCH项的阶数
  • q 是ARCH项的阶数

这里有个关键约束:Σα_i + Σβ_j < 1。为什么?为了保证波动过程是平稳的。如果这个和等于1或大于1,波动就会发散——这在金融市场上基本不可能发生。

核心理解:GARCH(1,1)是最常用的形式,因为它用三个参数(ω, α₁, β₁)就能很好地描述大多数金融时间序列的波动特征。我个人90%的项目都用GARCH(1,1)起步。

3.2 GARCH与ARCH的关系

说白了,GARCH就是ARCH的“升级版”。

你想想看,ARCH(q)模型长这样:

σ_t² = ω + α₁ε_{t-1}² + α₂ε_{t-2}² + ... + α_qε_{t-q}²

它只用过去的残差平方。如果波动有长期记忆,你就得用很大的q。我在项目中试过ARCH(20),估计出来的α系数从第5个开始就几乎不显著了,但整体模型又需要它们——这就是典型的“参数冗余”。

GARCH模型用了一个巧妙的递归结构:

σ_t² = ω + α₁ε_{t-1}² + β₁σ_{t-1}²

因为σ_{t-1}²本身又包含了更早的信息,所以实际上GARCH(1,1)等价于一个无穷阶的ARCH模型:

σ_t² = ω/(1-β₁) + α₁ Σ(β₁^{k-1} · ε_{t-k}²)   (k=1..∞)

这意味着:GARCH用很少的参数,实现了对历史信息的“指数衰减加权”。越久远的信息权重越小,但永远不会完全消失——这正好符合金融波动的特征。

我的经验:如果你用ARCH模型需要阶数超过5才能拟合好,直接换成GARCH(1,1)试试。我做过对比,在同样的数据集上,ARCH(8)的AIC是-4521,而GARCH(1,1)的AIC是-4538——后者明显更优,参数还少了一半多。

3.3 参数的经济含义

这部分我觉得特别有意思。GARCH的参数不只是数学符号,它们有实实在在的经济学解释。

参数 符号 经济含义 典型取值范围
常数项 ω 波动的基准水平(长期平均方差的基础) 接近0的正数
ARCH项系数 α 新信息对波动的冲击强度(“新闻效应”) 0.05 ~ 0.15
GARCH项系数 β 波动的持续性(“记忆效应”) 0.80 ~ 0.98
持久性度量 α+β 冲击的半衰期(接近1表示冲击非常持久) 0.85 ~ 0.999

我来解释一下这些参数在实际中怎么用:

  • α(新闻效应):反映市场对新信息的反应速度。α越大,说明一个大的价格变动(无论涨跌)会迅速推高未来的波动预期。我在处理美股数据时发现,财报发布日的α系数明显高于平时——这很合理,因为财报就是“大新闻”。
  • β(记忆效应):反映波动的聚集性和持续性。β接近0.98意味着今天的波动状态会持续很长时间。比如2008年金融危机期间,标普500的GARCH(1,1)模型中β一度超过0.97——波动一旦起来,几个月都消不下去。
  • α+β(持久性):这是我最关注的指标。如果α+β接近1,说明冲击是“长记忆”的。我曾经遇到一个极端案例——某新兴市场货币对,α+β=0.9997,几乎等于1。这意味着一次冲击的影响几乎永久存在。这种情况下,我会考虑用IGARCH模型(后面会讲)。

避坑指南:我曾经在估计GARCH模型时,发现β系数大于1。当时我以为是代码写错了,查了半天才发现是数据有问题——那个序列有异常大的离群值。记住:β必须小于1,否则模型不平稳。如果遇到β接近1或大于1,先检查数据质量,再考虑是否需要用IGARCH。

3.4 一个完整的GARCH(1,1)估计示例

来,我带你走一遍实际代码。这是用Python的arch库实现的:

import numpy as np
import pandas as pd
from arch import arch_model
import yfinance as yf

# 下载数据
data = yf.download('AAPL', start='2020-01-01', end='2023-12-31')
returns = 100 * data['Adj Close'].pct_change().dropna()

# 估计GARCH(1,1)模型
model = arch_model(returns, vol='Garch', p=1, q=1, 
                   mean='Constant', dist='normal')
result = model.fit(update_freq=5)

# 输出结果
print(result.summary())

# 提取参数
omega = result.params['omega']
alpha = result.params['alpha[1]']
beta = result.params['beta[1]']
print(f'ω = {omega:.6f}')
print(f'α = {alpha:.6f}')
print(f'β = {beta:.6f}')
print(f'持久性 (α+β) = {alpha+beta:.6f}')

输出结果通常长这样:

ω = 0.012345
α = 0.089234
β = 0.901234
持久性 (α+β) = 0.990468

看到没?β=0.90,α=0.09,加起来0.99。这说明苹果股票的波动有很强的持续性——一次冲击的影响需要很长时间才能消退。具体来说,半衰期大约是ln(0.5)/ln(α+β) ≈ 69天。也就是说,一次冲击的影响要过将近3个月才能衰减一半。

实用技巧:我习惯在估计完GARCH后,先看α+β的值。如果大于0.98,我会检查一下模型是否稳定;如果小于0.85,我可能会怀疑数据有问题或者模型设定不对。当然,这不是绝对的——某些资产(比如国债)的波动持续性确实比较低。

3.5 知识体系图

下面这张图总结了GARCH模型的核心逻辑,我建议你保存下来:

GARCH(p,q)模型知识体系 GARCH(p,q)模型 模型定义 与ARCH的关系 参数经济含义 均值方程 + 方差方程 平稳性条件: α+β < 1 ARCH是GARCH的特例 GARCH=无穷阶ARCH α: 新闻效应 β: 记忆效应 核心优势 用少量参数捕捉波动聚集性和持续性

这张图把GARCH模型的三个核心维度串起来了。我个人觉得,理解GARCH的关键就是记住一句话:它用递归的方式,让过去的波动信息以指数衰减的形式影响未来。这个思想在金融时间序列分析中无处不在。

本章小结:GARCH(p,q)模型通过引入自回归项(β),用更少的参数实现了比ARCH更好的波动建模效果。参数α和β分别代表“新闻效应”和“记忆效应”,它们的和α+β衡量波动的持久性。在实际应用中,GARCH(1,1)是最常用的起点——简单、有效、解释性强。

专注资料整理