GARCH-广义自回归条件异方差
GARCH(Generalized Autoregressive Conditional Heteroskedasticity)模型用于刻画时间序列中“波动聚集”现象,即大波动后仍可能出现大波动、小波动后仍可能出现小波动。该方法广泛用于金融收益率、经济波动率以及风险管理场景。与…
GARCH-广义自回归条件异方差
1. 方法概述
GARCH(Generalized Autoregressive Conditional Heteroskedasticity)模型用于刻画时间序列中“波动聚集”现象,即大波动后仍可能出现大波动、小波动后仍可能出现小波动。该方法广泛用于金融收益率、经济波动率以及风险管理场景。与仅关注条件均值的线性模型不同,GARCH 直接对条件方差进行建模,可用于解释和预测波动率的动态变化。
设时间序列为 \(\{y_t\}_{t=1}^T\),在均值方程与波动方程框架下,可写为
$$ y_t = \mu_t + \varepsilon_t, \tag{1} $$
$$ \varepsilon_t = z_t\sqrt{h_t},\quad z_t\sim i.i.d.(0,1), \tag{2} $$
其中 \(h_t=\mathrm{Var}(\varepsilon_t\mid\mathcal{F}_{t-1})\) 为条件方差。
2. 数据准备与收益率构造
系统支持“直接收益率序列”与“价格序列转收益率”两种输入方式。若输入价格序列 \(P_t\),可构造对数收益率或简单收益率:
$$ r_t = \ln P_t - \ln P_{t-1}, \tag{3} $$
$$ r_t = \frac{P_t-P_{t-1}}{P_{t-1}}. \tag{4} $$
在程序实现中,还可对收益率乘以缩放系数 \(s>0\),得到建模序列
$$ y_t = s\,r_t. \tag{5} $$
3. GARCH(p,q) 模型
3.1 均值方程
系统支持常数均值或零均值两种设定:
$$ \mu_t = \mu \quad (\text{constant}), \tag{6} $$
$$ \mu_t = 0 \quad (\text{zero}). \tag{7} $$
3.2 方差方程
GARCH(p,q) 的条件方差递推为
$$ h_t = \omega + \sum_{i=1}^{p}\alpha_i\varepsilon_{t-i}^2 + \sum_{j=1}^{q}\beta_j h_{t-j}, \tag{8} $$
并满足参数约束
$$ \omega>0,\quad \alpha_i\ge 0,\quad \beta_j\ge 0, \tag{9} $$
$$ \sum_{i=1}^{p}\alpha_i + \sum_{j=1}^{q}\beta_j < 1. \tag{10} $$
式(10)保证模型协方差平稳。定义波动持续性(persistence)为
$$ \rho = \sum_{i=1}^{p}\alpha_i + \sum_{j=1}^{q}\beta_j. \tag{11} $$
当 \(\rho\) 接近 1 时,冲击衰减较慢,波动具有更强持续性。
4. 参数估计与信息准则
在正态假设下,单期对数似然为
$$ \ell_t(\theta)= -\frac{1}{2}\Big[\ln(2\pi)+\ln h_t+\frac{\varepsilon_t^2}{h_t}\Big], \tag{12} $$
总对数似然为
$$ \ell(\theta)=\sum_{t=1}^{T}\ell_t(\theta). \tag{13} $$
参数 \(\theta\) 通过极大似然估计获得,模型比较可使用 AIC 与 BIC:
$$ \mathrm{AIC}=2k-2\ell(\hat\theta), \tag{14} $$
$$ \mathrm{BIC}=k\ln T-2\ell(\hat\theta), \tag{15} $$
其中 \(k\) 为参数个数。
5. 诊断检验
为检验残差分布和剩余异方差,系统输出以下统计量。
5.1 Jarque-Bera 正态性检验
$$ JB=\frac{T}{6}\left(S^2+\frac{(K-3)^2}{4}\right), \tag{16} $$
其中 \(S\) 为偏度,\(K\) 为峰度。
5.2 Ljung-Box 序列相关检验
对标准化残差(及其平方)进行检验:
$$ Q(m)=T(T+2)\sum_{k=1}^{m}\frac{\hat\rho_k^2}{T-k}, \tag{17} $$
其中 \(\hat\rho_k\) 为样本自相关系数。
5.3 ARCH-LM 检验
基于残差平方回归构造统计量
$$ LM = T\,R^2, \tag{18} $$
用于检验剩余 ARCH 效应是否显著。
6. 波动率预测
在估计参数 \(\hat\theta\) 下,未来条件方差按递推式继续向前计算:
$$ \hat h_{T+s} = \hat\omega + \sum_{i=1}^{p}\hat\alpha_i\hat\varepsilon_{T+s-i}^2 + \sum_{j=1}^{q}\hat\beta_j\hat h_{T+s-j}, \quad s=1,2,\ldots,H. \tag{19} $$
预测条件波动率为
$$ \widehat{\sigma}_{T+s}=\sqrt{\hat h_{T+s}}. \tag{20} $$
程序同时给出测试集上的方差预测误差代理指标,例如
$$ \mathrm{MSE}_{var}=\frac{1}{n}\sum_{t}(\varepsilon_t^2-\hat h_t)^2, \tag{21} $$
$$ \mathrm{MAE}_{var}=\frac{1}{n}\sum_{t}|\varepsilon_t^2-\hat h_t|, \tag{22} $$
$$ \mathrm{QLIKE}=\frac{1}{n}\sum_t\left[\ln \hat h_t + \frac{\varepsilon_t^2}{\hat h_t}\right]. \tag{23} $$
7. 符号说明表
| 符号 | 含义 |
|---|---|
| \(y_t\) | 建模序列(收益率或经处理后的收益率) |
| \(\mu_t\) | 条件均值 |
| \(\varepsilon_t\) | 残差项 |
| \(h_t\) | 条件方差 |
| \(\omega,\alpha_i,\beta_j\) | GARCH 参数 |
| \(p,q\) | ARCH 阶与 GARCH 阶 |
| \(\rho\) | 波动持续性(参数和) |
| \(\ell\) | 对数似然 |
| \(k\) | 参数个数 |
| \(H\) | 预测步长 |
| \(\widehat{\sigma}_{T+s}\) | 预测条件波动率 |
8. 与代码实现的对应关系
本系统输出目录采用“时间戳文件夹”结构,包含 xlsx、图表与复现脚本,便于论文中直接引用结果。
8.1 Excel 工作表说明
| Sheet 名称 | 主要内容 | 论文用途 |
|---|---|---|
| RawData_Preview | 原始数据前若干行 | 数据来源与样本描述 |
| Processed_Series | 全样本收益率、残差、条件方差、条件波动率、标准化残差、训练/测试标记 | 核心结果明细表 |
| Parameters | 参数估计、标准误、t 值、p 值 | 参数显著性分析 |
| FitSummary | 对数似然、AIC/BIC、持续性、测试误差指标等 | 模型比较与总体结论 |
| Diagnostics | JB、Ljung-Box、ARCH-LM 等诊断统计 | 模型有效性检验 |
| Forecast | 未来步条件方差与条件波动率预测 | 风险预测结果 |
| Charts_Index | 图表文件路径索引 | 图表引用管理 |
8.2 图表说明
| 图文件 | 含义 | 论文用途 |
|---|---|---|
| returns_series_*.png | 收益率序列图 | 展示波动聚集现象 |
| conditional_volatility_*.png | 条件波动率时序图 | 展示波动动态变化 |
| standardized_residuals_*.png | 标准化残差时序图 | 残差稳定性观察 |
| acf_pacf_z2_*.png | 标准化残差平方的 ACF/PACF | 剩余波动结构检验 |
| qq_std_resid_*.png | 标准化残差 QQ 图 | 分布假设检验 |
| forecast_volatility_*.png | 未来波动率预测曲线 | 前瞻性风险分析 |
8.3 实现说明与注意事项
- 当前模块真实核心位于:
具体的算法2/GARCH-广义自回归条件异方差/core/calculator.py具体的算法2/GARCH-广义自回归条件异方差/ui/results_widget.py
- 程序优先尝试
arch包;若环境缺失,则自动回退到基于scipy.optimize的正态 GARCH(p,q) 极大似然实现; - 因此若文档或论文写明“使用 arch 包估计”,应先确认本次结果不是回退路径;
- 结果目录按统一口径保存到模块
results/下的时间戳文件夹,并额外支持结果页导出repro_garch_<时间戳>.py; Diagnostics中既包含标准化残差的 Ljung-Box,也包含 ARCH-LM,用于检查剩余异方差;Forecast输出的是条件方差和条件波动率,不应误写成收益率本身的点预测;- 当前图表核心文件包括
conditional_volatility*.png与forecast_volatility*.png,并由Charts_Index统一登记; Charts_Index使用相对路径,便于结果目录整体复制与归档。
9. 论文写作模板
正文可按“模型设定—参数估计—诊断检验—预测结果”组织。先给出式(8)的 GARCH 方差方程及参数约束,再报告参数估计、AIC/BIC 与持续性 \(\rho\),随后结合 Diagnostics 中的 JB、Ljung-Box 与 ARCH-LM 说明模型拟合质量,最后基于 Forecast 表和预测波动率曲线解释未来风险变化。若进行模型比较,可将不同 \((p,q)\) 设定下的 AIC/BIC 与预测指标放入同一张对比表。
9.1 方法描述模板
“本文采用 GARCH(\(p,q\)) 模型刻画收益率序列的条件异方差特征。均值方程与方差方程分别如式(6)–(8) 所示,参数通过极大似然估计获得,并利用 AIC/BIC 进行模型比较。进一步地,基于标准化残差的 Ljung-Box、Jarque-Bera 与 ARCH-LM 检验评价模型是否充分刻画了波动结构。”
9.2 结果解释模板段落
“结果表明,模型估计得到的波动持续性 \(\rho\) 为 ,说明冲击对波动的持续影响程度为 。Forecast 表显示未来 \(H\) 期条件波动率呈 变化趋势;结合 conditional_volatility 与 forecast_volatility 图,可见样本内波动聚集现象与样本外风险演化路径均较为清晰。”
9.3 图表题注模板
- 图 1 收益率序列与波动聚集现象。
- 图 2 条件波动率时序图。
- 图 3 标准化残差平方的 ACF/PACF 图。
- 图 4 未来条件波动率预测曲线。
10. 结果解释与使用注意事项
GARCH 适用于具有条件异方差特征的时间序列,尤其是金融收益率序列。若输入为价格数据,应先转收益率再建模。参数解释需结合数据频率与样本区间进行,不宜脱离场景直接比较绝对值。对于分布厚尾明显的数据,可在后续版本中扩展 t 分布或偏态分布设定,并进行稳健性对比。
11. 单篇终审补充
11.1 图题与表题对齐建议
- 本文档应优先对应真实算法目录
具体的算法2/GARCH-广义自回归条件异方差。 - 若需要“结果表 + repro”闭环,代表性结果目录建议绑定
具体的算法2/GARCH-广义自回归条件异方差/results/GARCH(1,1)分析结果_20260329_165534_988259。 - 表题应直接对应
GARCH(1,1)分析结果_20260329_165534_988259.xlsx的真实工作表:RawData_Preview、Processed_Series、Parameters、FitSummary、Diagnostics、Forecast、Charts_Index。 - 图题应优先绑定同轮实体图文件:
returns_series_20260329_165538.png、conditional_volatility_20260329_165538.png、standardized_residuals_20260329_165538.png、acf_pacf_z2_20260329_165538.png、qq_std_resid_20260329_165538.png、forecast_volatility_20260329_165538.png。这些图当前保存在相邻结果目录GARCH(1,1)分析结果_20260329_165538_253257中。
11.2 终审说明
- GARCH 旧批次结果里曾出现过相邻时间戳并存现象,但当前代表目录已经形成单目录闭环;正文与附录应以当前单目录证据为准。
- 复现脚本可对应
repro_garch_20260329_165536.py,其SRC_FILE实际写为repro_inputs/sample_data.csv,属于“脚本所在结果目录下的repro_inputs相对路径”口径。 - 如果论文需要完全一致的单目录证据,后续可再做一次人工导出;但当前单篇终审应如实写明“表格、图、repro 为同轮相邻时间戳产物”。
11.3 全量强化补充
- 当前 GARCH 文档需要按真实磁盘现状修正:
具体的算法2/GARCH-广义自回归条件异方差/results/GARCH(1,1)分析结果_20260329_165534_988259已经形成单目录闭环,不再需要依赖相邻目录补图。 - 该目录首层主工作簿为
GARCH(1,1)分析结果_20260329_165534_988259.xlsx,真实工作表为RawData_Preview、Processed_Series、Parameters、FitSummary、Diagnostics、Forecast、Charts_Index。 - 当前同一目录下的实体图位于
charts/子目录,真实文件为returns_series_20260329_165534.png、conditional_volatility_20260329_165534.png、standardized_residuals_20260329_165534.png、acf_pacf_z2_20260329_165534.png、qq_std_resid_20260329_165534.png、forecast_volatility_20260329_165534.png。 - 同一目录内同时存在
repro_garch_20260329_165536.py与repro_inputs/sample_data.csv,脚本关键输入写法为SRC_FILE = 'repro_inputs/sample_data.csv'。因此当前最稳妥的主证据目录就是165534_988259,而不是旧文写的“表、图、repro 分散在相邻目录”。 - 相邻目录
具体的算法2/GARCH-广义自回归条件异方差/results/GARCH(1,1)分析结果_20260329_165538_253257确实也存在另一套同结构工作簿与图,但那是另一轮同类结果,不应用来补主目录的缺项。 - 因此论文与附录应直接按
165534_988259单目录写:主结果表、charts/图、repro_garch_20260329_165536.py与repro_inputs/sample_data.csv都在同一证据包内。
12. 软件实现核查补充(2026-07)
- 当前实现的主结果目录应写作
具体的算法2/GARCH-广义自回归条件异方差/results/GARCH(1,1)分析结果_20260329_165534_988259,不要再混入相邻165538_253257目录。 - 论文正文应围绕
RawData_Preview、Processed_Series、Parameters、FitSummary、Diagnostics、Forecast、Charts_Index来写,图则对应returns_series_20260329_165534.png、conditional_volatility_20260329_165534.png、standardized_residuals_20260329_165534.png、acf_pacf_z2_20260329_165534.png、qq_std_resid_20260329_165534.png、forecast_volatility_20260329_165534.png。 repro_garch_20260329_165536.py + repro_inputs/sample_data.csv已经和主目录闭环,文中可以直接按这个口径说明。- 如果后续要补论文附录,优先补 GARCH(1,1) 这一轮主目录,不要把相邻轮次图表拿来充数。