You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中实现Brenner等(2009)进阶GARCH模型:代码验证与结果疑问

Brenner等(2009)GARCH模型的rugarch实现验证与问题分析

问题背景

我尝试在R中实现Brenner、Pasquariello和Subrahmanyam(2009)提出的GARCH(1,1)扩展模型,该模型允许意外成分$S_t$同时影响条件均值与方差,以此捕捉事件的预期、同期及持续效应。其中$s_t$定义为:
$$s_t = 1 + \sum_{k=1}^{t-1} \gamma(k) I(k) S_t(k)$$

当前模型设定代码

spec <- ugarchspec(
  variance.model = list(model = "sGARCH", garchOrder = c(1, 1), external.regressors = variance_regressors_matrix),
  mean.model = list(armaOrder = c(1, 0), include.mean = TRUE, external.regressors = mean_regressors_matrix),
  distribution.model = "norm"
)
  • mean_regressors_matrix:包含公告日虚拟变量与$S_t$的交互项
  • variance_regressors_matrix:包含公告日虚拟变量与$|S_t|$的交互项,以及事件前后虚拟变量

拟合结果异常

fit <- ugarchfit(spec, returns_ts)
fit

Robust Standard Errors:
        Estimate  Std. Error  t value Pr(>|t|)
mu      0.050426    0.012767   3.9496 0.000078
ar1     0.021225    0.013780   1.5402 0.123500
mxreg1  0.215722    0.080457   2.6812 0.007335
omega   0.022069    0.005931   3.7211 0.000198
alpha1  0.088271    0.012191   7.2409 0.000000
beta1   0.898635    0.012474  72.0385 0.000000
vxreg1  0.000000    0.072587   0.0000 1.000000
vxreg2  0.000000    0.056018   0.0000 1.000000
vxreg3  0.000000    0.073370   0.0000 1.000000

LogLikelihood : -8045.658 

拟合结果显示方差外部回归项vxreg1:3的估计值全为0,且p值为1,怀疑代码设定与原理论模型不匹配,特求证等价性。

等价性分析与问题诊断

1. 模型形式的等价性核对

Brenner等(2009)的核心模型设定:

  • 条件均值方程:原模型将$S_t$与公告日虚拟变量的交互项加入均值方程,你的mean.model设定(包含AR(1)、常数项及外部交互项)在形式上完全符合原模型的均值设定。
  • 条件方差方程:原模型的方差方程为加法形式引入外部变量,即$\sigma_t^2 = \omega + \alpha \epsilon_{t-1}^2 + \beta \sigma_{t-1}^2 + \text{外部变量项}$,而rugarch的sGARCH外部回归项正是以线性加法形式嵌入方差方程,因此从形式上看,你的variance.model设定是符合原模型要求的。

2. 系数为0的可能原因

既然形式上匹配,系数为0更可能是数据或变量构造问题:

  • 多重共线性:variance_regressors_matrix中的变量(比如公告日交互项与事件前后虚拟变量)可能存在高度相关性,导致模型无法识别独立效应,系数被压缩至0。可通过计算VIF值验证。
  • 变量构造错误:事件前后虚拟变量的时间窗口定义不符合原论文,或$|S_t|$、$s_t$的计算存在时间维度对齐错误,导致变量对方差无解释力。
  • 模型设定细节偏差:需再次核对原论文的方差方程——如果原模型是将$s_t$作为方差的乘数项而非加法项,当前的线性加法设定就会不匹配,导致变量无效。

3. 建议排查步骤

  • 重新核对原论文的精确公式,确认$s_t$在均值/方差方程中的引入方式(加法/乘法)。
  • 检查variance_regressors_matrix中变量的相关性,计算VIF值判断多重共线性程度。
  • 逐个加入方差外部回归项,观察系数是否能被有效估计,定位无效变量。
  • 验证$s_t$的计算逻辑,确认时间维度是否与回归数据对齐(滞后项是否正确匹配)。

内容的提问来源于stack exchange,提问作者Tom_t

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:03:20