如何判断自制指数的GARCH(1,1)与EWMA波动率估计结果优劣?
判断GARCH(1,1)与EWMA波动率估计优劣的实用方法
刚好之前处理过类似的波动率估计对比问题,给你几个实用的判断维度,都是量化领域常用的方法:
一、样本内拟合优度对比
这是最直接的判断方式,核心是看模型估计的波动率和真实波动率的贴合程度:
- 用已实现波动率做基准:如果能拿到指数的高频数据(比如5分钟K线),计算每日的已实现波动率(把日内收益率平方求和),这是真实波动率的最优近似。然后分别计算GARCH(1,1)和EWMA估计值与已实现波动率的均方误差(MSE)或平均绝对误差(MAE),误差更小的模型拟合效果更好。
如果没有高频数据,也可以用日收益率的平方作为真实波动率的替代(虽然噪声大,但也是无偏估计),或者用3-5天的滚动收益率平方平均来平滑噪声。
- 对数似然值对比:EWMA本质是GARCH(1,1)的特殊情况(约束条件为α+β=1)。你可以分别计算两个模型的对数似然值,数值越高的模型对当前500天样本数据的解释力越强——毕竟极大似然估计的目标就是最大化这个值。
二、统计检验验证
用统计方法验证模型是否充分捕捉了波动率特征:
- 残差ARCH效应检验:对两种模型输出的标准化残差(日收益率除以对应的估计波动率)做ARCH LM检验。如果某个模型的残差没有显著的ARCH效应(检验p值>0.05),说明它已经完全捕捉了波动率的聚类特性,没有遗漏的波动信息。
实操里,Python可以用
arch库的ARCHTest,R用tseries包的arch.test()函数来实现。 - 约束性检验:因为EWMA是GARCH(1,1)的约束版本,你可以用Hausman检验来验证“α+β=1”这个约束是否成立。如果检验拒绝原假设,说明GARCH(1,1)的非约束设定更符合数据特征;如果接受,那EWMA这种更简洁的模型就足够了。
三、结合实际应用场景判断
如果你的波动率估计是为了特定用途,比如风险度量或交易信号,可以从实际效果反推:
- VaR回测:如果用于计算VaR,回测两种模型的VaR覆盖度——比如95%置信度下,实际日损失超过VaR的次数应该接近5%。覆盖度越接近预期值的模型,在风险度量上表现越好。
- 简洁性 vs 拟合效果:EWMA只有一个参数(λ=0.94),GARCH(1,1)有三个参数(ω, α, β)。如果两者拟合优度差异不大,EWMA更不容易过拟合,维护成本也更低;但如果GARCH(1,1)的拟合误差显著更小,那牺牲一点简洁性换更好的估计精度是值得的。
内容的提问来源于stack exchange,提问作者ricksanchez
相关产品推荐
相关产品推荐

