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

R语言FactorAnalytics包specFfm中GARCH收益标准化的疑问

关于FactorAnalytics包specFfm函数GARCH模块的滞后项问题

首先明确基础GARCH(1,1)的核心公式:

σₜ² = ω + α·εₜ₋₁² + β·σₜ₋₁²
其中ω代表长期平均方差,εₜ₋₁²是上一期的残差平方项,σₜ₋₁²是上一期的条件方差。

对照你给出的代码片段:

for ( i in 1: NROW(dataDT))
    set(dataDT,i, "sigmaGarch",
        ifelse(dataDT$idx[i] == 1,
               (1 - alpha - beta) * dataDT$sdReturns[i]^2 +  alpha * dataDT$ts[i],
               (1 - alpha - beta) * dataDT$sdReturns[i]^2 + alpha * dataDT$ts[i] +
                 beta * dataDT$sigmaGarch[i-1]))

从GARCH(1,1)的定义来看,这里的dataDT$ts[i]确实应该滞后一期,也就是替换为dataDT$ts[i-1],原因如下:

  • GARCH模型的条件方差依赖的是上一期的残差平方,而非当期残差,这样才能用历史信息预测当前条件方差;
  • 代码中当前逻辑用了当期ts[i],违背了GARCH模型“用滞后项建模条件异方差”的核心逻辑,会导致模型估计出现偏差;
  • 唯一例外是第一个观测值(idx[i]==1),此时没有滞后项,可能需要用初始值替代,但如果ts[i]是当期残差,这里的初始条件设置也不符合常规GARCH的初始化方式(通常用样本方差或第一期残差平方作为初始条件)。

需要注意的是,首先要确认dataDT$ts的定义——如果它本身已经是滞后一期的残差平方,那当前代码没问题;但如果ts存储的是当期残差平方,就必须调整为ts[i-1]才能符合GARCH(1,1)的规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 21:37:36