GARCH模型

所属分类:时间序列分析

这个方法是做什么的

建模的对象不是序列的水平,而是它的波动。金融与高频数据里常见“大波动跟着大波动、小波动跟着小波动”的现象,叫波动率聚集。GARCH 把当期条件方差写成三部分之和:常数项 ω、前期冲击平方的影响(ARCH 项 α)、前期条件方差自身的记忆(GARCH 项 β)。ARCH 与 GARCH 的阶数、条件分布(正态/t/GED)都在控件里设。

这个模块的判读有一个明确的双向结构:卡① 用 Engle ARCH-LM 逐阶检验证明“建之前确实有 ARCH 效应”,卡④ 再用标准化残差平方的 ARCH-LM 证明“建之后已经没有了”,两头都成立模型才算有效——卡④ 的表注把它称作最关键的事后检验。卡④ 同时把估计结果翻译成可解释的量:Σα+Σβ 是波动持续性(小于 1 才协方差平稳)、半衰期是一次冲击影响衰减一半所需的期数、ω/(1−Σα−Σβ) 是模型隐含的长期无条件方差。

需要准备什么数据

  • 放入时间序列 [定量] 变量(可选):1 个,定量变量(数值)
  • 放入时间项 [定类/时间] 变量(可选):1 个,定类变量(分组/标签)或日期时间变量

数据要求

  • 数据表至少 100 行。
  • 单列缺失率不超过 10%。
  • 不接受取值全都一样的列(零方差列没有可分析的变异)。

以上条目由系统从该方法的校验规则直接生成,与上传数据时的实际拦截规则一致。

什么时候用它

  • 收益率、价格变动率这类均值近似为零、波动明显时松时紧的序列
  • 需要给出风险度量:长期波动水平、冲击的持续性与半衰期
  • 已经建好均值模型,残差平方仍有自相关,需要单独刻画条件异方差
  • 需要逐期的条件波动率序列,用于后续的风险管理或波动率择时

前提有四条:序列平稳(含单位根的价格序列要先转成对数收益率)、均值近似为零、确实存在 ARCH 效应、样本足够。行数下限 100 行,99 行会被直接拦下,但卡① 用的经验值是 250——小样本下条件方差参数的极大似然估计非常不稳。拖入“时间项”后模块会按它排序:把演示数据行序打乱重跑,输出逐字不变。

什么时候不要用它

  • 要建模的是均值而不是方差:用「时间序列分析(ARIMA)」,含季节用「季节性ARIMA模型」。
  • 序列非平稳:先用「单位根检验(ADF)」确认单整阶,含单位根的价格序列要先在数据处理里转成对数收益率再回来。
  • 只想知道波动有没有随时间变化,不需要建模:用「单值-移动极差(I-MR)控制图」或「EWMA控制图」看过程波动。
  • 要看的是多条序列之间的波动溢出:本模块是单变量的,用「VAR向量自回归模型」看均值层面的传导。
  • 序列里只是有几个异常值而不是波动聚集:用「缩尾处理(Winsorize)」处理极端值。

容易误读的地方

  • 控件里“GARCH项”的默认值是 0,直接跑出来的不是 GARCH(1,1) 而是纯 ARCH(1)。 实测差别很大:默认设定下模型是 GARCH(1,0),波动持续性只有 0.1887、半衰期 0.42 期、AIC=2398.42,而且卡④ 的事后检验在滞后 10 阶上报出 LM=29.019、p=0.001,残余 ARCH 效应仍然显著——模型不充分。把 GARCH 项改成 1 之后,持续性 0.9784、半衰期 31.81 期、AIC=2356.27,事后检验三个滞后阶全部不显著。跑完先看卡② 的标题写的是 GARCH(1,1) 还是 GARCH(1,0)。
  • 均值方程固定为 Zero,拖水平值进来会算错。 模块假定序列本身已是零均值(如收益率)。如果拖入的是价格、销量这类水平值,“残差”实际上包含了整个均值,条件方差会被均值的平方污染。卡① 有一行专门实测这件事:演示序列均值 0.0044、单样本 t(599)=0.059、p=0.9526,与 Zero 设定相符。这一行不通过就必须先转成收益率。
  • 条件分布默认正态,而卡① 往往会建议你别用正态。 演示的 Jarque-Bera=21.777(p<0.001)、超额峰度 0.923,卡① 明确写着“拒绝正态且厚尾,建议条件分布选 t 或 GED”。换成 t 分布后持续性由 0.9784 变成 0.9759、半衰期由 31.81 变成 28.43 期。分布设定影响的主要是参数估计与尾部风险刻画,做 VaR 一类的应用时这个差别不能忽略。
  • 持续性越靠近 1,半衰期越不可信。 半衰期 = ln(0.5)/ln(Σα+Σβ),这个函数在 Σα+Σβ 趋近 1 时急剧发散:0.9784 对应 31.8 期,0.99 就是 69 期,0.995 是 138 期。也就是说小数点后第三位的估计误差会让半衰期翻倍。报告持续性时给出这个和本身,比只报一个半衰期更诚实。
  • 对称 GARCH 看不见杠杆效应。 方差方程里进来的是冲击的平方,正负冲击一视同仁,而金融数据中“坏消息带来的波动大于同等幅度的好消息”是普遍现象。本模块的均值方程也无法带 ARMA 结构。需要这两样时应改用 EGARCH 或 GJR-GARCH,产品内未提供这两个模型,需另做。另外报告只给样本内的条件波动率估计,没有做样本外预测与回测。

报告里有什么

  1. 输出结果一:数据概览与前提检验
  2. 输出结果二:模型系数与拟合优度
  3. 输出结果三:条件波动率与标准化残差可视化
  4. 输出结果四:波动效应量与残差诊断
  5. 输出结果五:结论与学术表述
原始序列与条件波动率
图1 原始序列与条件波动率
原始序列(左轴)与模型估计的条件波动率 σ_t(右轴)叠加对比。
标准化残差 z_t = ε_t / σ_t
图2 标准化残差 z_t = ε_t / σ_t
标准化残差 z_t = ε_t/σ_t:GARCH 拟合良好时它应近似独立同分布、方差为 1。

在线统计分析平台 · 233 种分析方法 · AI 智能解读

在线使用
使用教程