📑 查看全课大纲(第 16 / 20 节)
- 1.时间序列分析简介
- 2.平稳性检验与特征
- 3.纯随机性检验(白噪声检验)
- 4.时间序列预处理代码实战
- 5.自回归模型(AR 模型)
- 6.自相关系数与偏自相关系数
- 7.移动平均模型(MA)与自回归移动平均模型(ARMA)
- 8.平稳时序模型识别与参数估计
- 9.模型显著性检验、优化与序列预测
- 10.平稳时间序列建模代码实战
- 11.确定性序列分解与趋势分析
- 12.季节效应分析与综合波动分析
- 13.确定性时序分析代码实战
- 14.差分平稳化与 ARIMA 模型
- 15.残差自回归模型
- 16.ARCH / GARCH 模型及其衍生
- 17.异方差检验:Portmanteau Q 检验与 LM 检验
- 18.随机性非平稳建模与 GARCH 实战
- 19.ARIMAX 模型与单位根(DF/ADF)检验
- 20.协整检验与误差修正模型(ECM)
ARCH / GARCH 模型及其衍生
约 67 分钟
异方差的性质与条件异方差模型
小象实战讲义 · 时间序列分析
在时间序列建模中,我们通常假设模型的残差项满足零均值、无自相关和同方差(方差恒定)的经典假设。然而,实际数据,尤其是金融时间序列,常常违背同方差假设,表现出异方差特性——残差的方差随时间变化。忽视异方差会导致参数显著性检验失效、模型预测精度下降。本节将系统讲解异方差的定义、影响、诊断方法,并重点介绍处理异方差的两类核心方法:方差齐性变换和条件异方差模型(ARCH/GARCH 及其衍生模型),帮助您掌握处理波动聚集现象的关键技术。
💡 核心导读
- 异方差的本质与影响:理解异方差如何导致参数显著性检验犯纳伪错误,使模型推断失效。
- 异方差的直观诊断:掌握通过残差图、残差平方图识别递增型、递减型和综合型异方差模式。
- 方差齐性变换:学习在已知异方差函数形式时,通过数学变换(如对数变换)将异方差序列转化为同方差序列的方法。
- ARCH/GARCH 模型原理:深入理解条件异方差模型如何通过残差平方的自回归/移动平均结构来刻画波动率的时变性。
- GARCH 模型家族:了解 EGARCH(非对称效应)、IGARCH(单位根)、GARCH-M(风险溢价)等衍生模型的应用场景与模型结构。
异方差的定义、影响与诊断
异方差的定义
在经典的时间序列模型中,我们假定随机误差项 满足: 即零均值、无自相关且方差 为常数。
异方差 是指随机误差序列的方差会随时间变化: 其中 是时间的函数。这意味着 的波动幅度并非恒定,而是随时间呈现某种规律性变化。
异方差的影响
忽视异方差的存在会导致严重后果:
- 残差方差被严重低估:使用普通最小二乘法(OLS)估计的残差方差 会系统性小于真实方差 。
- 参数显著性检验失效:在回归系数的 t 检验中,检验统计量 。当 被低估时,t 统计量会被高估,使得我们更容易拒绝“系数为零”的原假设,从而犯第一类错误(去真)——错误地拒绝了系数为零的真原假设,将不显著的变量误判为显著。
- 模型拟合精度下降:基于错误方差估计的置信区间和预测区间将不再可靠,最终影响模型的整体预测性能。
异方差的直观诊断
1. 残差图
将残差 关于时间 绘制散点图,观察其波动范围。
- 同方差(方差齐性):残差点随机、均匀地分布在两条平行的水平带内。
- 异方差:
- 递增型:残差波动范围随时间扩大(如喇叭口张开)。
- 递减型:残差波动范围随时间缩小(如喇叭口收紧)。
- 综合型:波动范围呈现先扩大后缩小等复杂模式。
2. 残差平方图
由于 (当 时),考察残差平方序列 是否平稳是诊断异方差的直接方法。如果 呈现出明显的趋势或周期性,则表明存在异方差。
示例:美国短期国库券月度收益率 对美国1963年4月至1971年7月短期国库券月度收益率序列进行一阶差分以消除趋势后,其残差图在1969年前后显示出明显的波动率突变,残差平方图也验证了该时段方差显著增大,这是典型的异方差(波动聚集)现象。
异方差的处理方法
处理异方差主要有两种思路,选择取决于我们是否已知异方差函数 的具体形式。
方差齐性变换
适用场景:序列存在异方差,且方差与序列水平(均值)之间存在确定的函数关系,即 ,其中 已知。
核心思想:寻找一个转换函数 ,对原始序列 进行变换,使得变换后的序列 满足方差齐性。
数学推导: 假设 的均值 已知,且 。对转换函数 在 处进行一阶泰勒展开: 则变换后序列的方差近似为: 为使 为常数 ,需满足: 不失一般性,令 ,则有: 通过积分即可求解 。
常见特例:当 ,即 时,,解得 。因此,对原始序列取自然对数变换,即可实现方差齐性。
实战示例:对前述美国短期国库券收益率序列 ,假设 ,进行对数变换 。对 进行一阶差分后,新序列的残差图显示波动趋于平稳,且 Ljung-Box 白噪声检验 p 值均大于 0.05,表明确实消除了异方差。最终拟合模型为: 该模型拟合效果良好,且可通过指数变换反推原始序列的预测值。
条件异方差模型
适用场景:异方差函数形式未知,或序列波动呈现“集群效应”(波动在一段时间内持续较高,另一段时间内持续较低),无法用简单函数描述。
核心思想:不对原始序列进行变换,而是直接为时变的方差 本身建立一个时间序列模型。最基础的框架是 ARCH 模型及其推广 GARCH 模型。
ARCH 模型
ARCH(Autoregressive Conditional Heteroskedasticity,自回归条件异方差)模型由 Engle (1982) 提出。其思想是:当期误差的方差 依赖于过去若干期误差的平方。
ARCH(q) 模型结构: 其中:
- 第一个方程是均值方程,用于提取序列的水平信息(如趋势、周期), 可以是 ARMA 等形式。
- 第二个方程定义了扰动项 由条件标准差 和一个标准正态白噪声 相乘构成。
- 第三个方程是方差方程,表明条件方差 是过去 期扰动平方的线性函数(一个移动平均结构)。要求 以保证方差为正。
模型含义:大的过去扰动( 大)会导致大的当期波动( 大),从而刻画了金融时间序列中“大波动跟着大波动,小波动跟着小波动”的波动聚集现象。
GARCH 模型
GARCH(Generalized ARCH,广义自回归条件异方差)模型由 Bollerslev (1986) 提出。它解决了 ARCH 模型有时需要很高阶数 才能充分刻画波动持久性的问题。
GARCH(p, q) 模型结构: 均值方程与 ARCH 相同,方差方程变为: 其中:
- 。
- 为保证宽平稳,还需满足 。
模型含义:GARCH 模型在 ARCH 的基础上,增加了条件方差自身的滞后项 。这使得条件方差具有了“长期记忆性”,能够用更少的参数更灵活地刻画波动的持续性。ARCH(q) 模型是 GARCH(0, q) 的特例。
GARCH 模型的衍生模型
为适应更复杂的金融现实,GARCH 模型发展出多个变体。
1. EGARCH 模型(指数 GARCH)
特点:放松参数非负约束,并能对正负扰动进行非对称反应。 方差方程: 其中 。
- 非对称性:当 时, 对正负 的反应不同,能刻画“杠杆效应”(坏消息比好消息引发更大波动)。
- 参数放松:对 建模,无需对 施加非负约束。
2. IGARCH 模型(积分 GARCH)
特点:用于描述波动率具有单位根特征(持久性极强)的序列。 约束条件:在 GARCH(p, q) 中施加 。 含义:此时无条件方差无穷大,条件方差序列非平稳,类似于均值方程中的随机游走。
3. GARCH-M 模型(GARCH in Mean)
特点:将风险溢价思想引入模型,允许序列的均值依赖于其波动性。 均值方程: 含义: 称为风险溢价参数。 意味着更高的风险(波动 )要求更高的预期收益(均值 ),符合金融学基本理论。
Python 实战:异方差检验与 ARCH 效应诊断
下面我们使用 Python 模拟一个具有 ARCH 效应的残差序列,并进行正式的统计检验。
"""
时间序列分析 5.3 课时配套实战代码
内容:残差异方差性检验 (ARCH-LM 拉格朗日乘数检验与残差平方自相关检验)
"""
import numpy as np
import pandas as pd
from statsmodels.stats.diagnostic import het_arch, acorr_ljungbox
# 固定随机种子,确保结果可复现
np.random.seed(42)
n = 500
# 1. 模拟具备 ARCH(1) 效应的残差过程
# 方差方程: sigma_t^2 = 0.2 + 0.6 * epsilon_{t-1}^2
# 扰动项: epsilon_t = sigma_t * eta_t, 其中 eta_t ~ N(0, 1)
omega = 0.2
alpha = 0.6
epsilon = np.zeros(n) # 观测到的残差序列
sigma2 = np.zeros(n) # 条件方差序列
eta = np.random.normal(0, 1, n) # 标准正态新息
# 初始化:使用无条件方差作为初始值
sigma2[0] = omega / (1 - alpha)
epsilon[0] = np.sqrt(sigma2[0]) * eta[0]
# 递归生成 ARCH(1) 过程
for t in range(1, n):
sigma2[t] = omega + alpha * (epsilon[t-1] ** 2)
epsilon[t] = np.sqrt(sigma2[t]) * eta[t]
# 将序列包装为 pandas Series,便于后续分析
resid = pd.Series(epsilon, name='residuals')
# 2. Engle's ARCH-LM 检验 (Lagrange Multiplier test)
# 原假设 H0: 残差序列不存在 ARCH 效应(即无异方差)
# 备择假设 H1: 存在 ARCH 效应
# nlags 指定检验考虑的滞后阶数
arch_test_result = het_arch(resid, nlags=5)
lm_statistic = arch_test_result[0]
lm_pvalue = arch_test_result[1]
# 3. 残差平方的 Ljung-Box 白噪声检验 (McLeod-Li 检验)
# 这是另一种诊断 ARCH 效应的方法:如果残差平方存在自相关,则表明存在条件异方差
resid_squared = resid ** 2
lb_test_result = acorr_ljungbox(resid_squared, lags=[5, 10], return_df=True)
# 4. 打印检验结果
print(f"样本数据量: {n}")
print(f"ARCH-LM 检验结果 (考虑5阶滞后):")
print(f" LM 统计量: {lm_statistic:.4f}")
print(f" p值: {lm_pvalue:.4e}")
print(f" 结论: 在5%显著性水平下{'拒绝' if lm_pvalue < 0.05 else '不拒绝'}原假设,"
f"{'存在' if lm_pvalue < 0.05 else '不存在'}显著的 ARCH 效应。")
print(f"\n残差平方序列的 Ljung-Box 检验 (McLeod-Li 方法):")
for lag in [5, 10]:
q_stat = lb_test_result.loc[lag, 'lb_stat']
q_pval = lb_test_result.loc[lag, 'lb_pvalue']
print(f" 滞后{lag}阶: Q({lag}) = {q_stat:.4f}, p值 = {q_pval:.4e}")
print(f" 波动聚集效应显著: {q_pval < 0.05}")运行结果:
样本数据量: 500
ARCH-LM 检验结果 (考虑5阶滞后):
LM 统计量: 50.7098
p值: 9.9172e-10
结论: 在5%显著性水平下拒绝原假设,存在显著的 ARCH 效应。
残差平方序列的 Ljung-Box 检验 (McLeod-Li 方法):
滞后5阶: Q(5) = 54.9566, p值 = 1.3325e-10
波动聚集效应显著: True
滞后10阶: Q(10) = 56.8717, p值 = 1.4090e-08
波动聚集效应显著: True结果解读:
- ARCH-LM 检验的 p 值远小于 0.05,强烈拒绝“无异方差”的原假设。
- 残差平方序列的 Ljung-Box 检验在滞后 5 阶和 10 阶的 p 值也均小于 0.05,表明残差平方存在显著的自相关性,即波动具有聚集性。
- 两项检验结论一致,确认我们模拟的序列存在强烈的条件异方差(ARCH)效应。在实际分析中,若对某个金融时间序列的残差进行此类检验得到类似结果,就应当考虑使用 ARCH/GARCH 类模型进行建模。
📝 动手练一练
异方差影响分析:假设在一个线性回归模型中,真实残差方差 (随时间递增),但我们误用 OLS 并假设同方差进行 t 检验。试定性分析,相较于使用正确的异方差稳健标准误,OLS 的 t 统计量会偏大还是偏小?这会导致犯第一类错误还是第二类错误的概率增加?
模型识别:观察以下两个场景,判断分别适合采用方差齐性变换还是条件异方差模型,并简述理由。
- 场景 A:某商品日销售额序列,其残差图显示波动幅度与销售额水平成正比。
- 场景 B:股指日收益率序列,其残差平方的自相关图显示在滞后 1 阶和 4 阶有显著峰值。
参考答案:
- OLS 低估了标准误,导致 t 统计量被高估(偏大)。这使得我们更容易拒绝“系数为零”的原假设,从而增加犯第一类错误(去真)的概率:OLS 低估标准误 → t 被高估 → 增加第一类错误(去真)概率,名义显著性水平(size)失真。
- 场景 A:适合方差齐性变换。因为异方差形式明确(方差与水平成正比),可尝试对数变换。
- 场景 B:适合条件异方差模型。因为异方差呈现自相关结构(波动聚集),且无明显简单函数形式,适合用 ARCH/GARCH 模型刻画。
本章小结
本节深入探讨了时间序列分析中一个常见但危害巨大的问题——异方差。我们系统地学习了:
- 异方差的本质:残差方差随时间变化,违背经典假设。
- 异方差的诊断:通过残差图、残差平方图进行直观判断,并利用 ARCH-LM 检验、残差平方的 Ljung-Box 检验进行统计验证。
- 异方差的处理:
- 方差齐性变换:在已知方差与均值函数关系时,通过数学变换(如取对数)消除异方差。
- 条件异方差模型:当异方差形式未知或呈现波动聚集时,直接为时变方差建模。
- ARCH(q):用过去 q 期扰动平方的移动平均来刻画当期波动。
- GARCH(p, q):在 ARCH 基础上加入方差自身的自回归项,能以更少参数刻画波动持久性,是更常用的模型。
- 衍生模型:EGARCH(处理非对称杠杆效应)、IGARCH(描述单位根波动)、GARCH-M(引入风险溢价)等,用于解决特定问题。
行动清单:
- 诊断先行:在完成任何时间序列模型(如 ARIMA)拟合后,务必绘制残差图与残差平方图,并至少进行一项正式的 ARCH 效应检验(如 ARCH-LM)。
- 模型选择:若诊断出异方差,根据其表现形式选择处理工具。对于金融收益率等典型波动聚集序列,应优先掌握 GARCH(1,1) 模型的应用。
- Python 实践:使用
arch库的arch_model函数练习拟合 GARCH 模型,并比较不同模型(如 GARCH, EGARCH)的拟合效果。
— 小象教研组
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加顾问免费领取;想学什么,直接告诉顾问
微信扫码添加顾问