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

R中GARCH模型约束检验(H₀:α₁+β₁=1)无法执行问题咨询

我来给你梳理下用rugarch包做GARCH(1,1)参数和的约束检验的完整流程,完全按照似然比检验的思路来推进:

GARCH(1,1)参数和约束检验(H₀:α₁+β₁=1)实操步骤

核心思路

我们用似然比检验来验证原假设:通过对比约束模型(符合H₀)和无约束模型的对数似然值,计算统计量后判断是否拒绝原假设。


步骤1:估计约束模型(满足H₀:α₁+β₁=1)

  • 用ugarchspec()定义约束的sGARCH模型,通过fixed.pars参数锁定α₁+β₁=1的关系;
  • 拟合模型后提取约束模型的对数似然值。

示例代码:

# 加载rugarch包
library(rugarch)

# 定义约束模型的规格
constrained_spec <- ugarchspec(
  variance.model = list(model = "sGARCH", garchOrder = c(1,1)),
  mean.model = list(armaOrder = c(0,0)), # 根据你的数据调整均值模型(比如有AR项就改c(1,0))
  fixed.pars = list(beta1 = 1 - alpha1) # 核心约束:β₁=1-α₁,等价于α₁+β₁=1
)

# 拟合约束模型
constrained_fit <- ugarchfit(spec = constrained_spec, data = your_time_series_data)

# 提取约束模型的对数似然值
ll_constrained <- constrained_fit@fit$likelihood

步骤2:估计无约束模型(对应H₁:α₁+β₁≠1)

  • 定义无约束的sGARCH模型,不需要设置fixed.pars;
  • 拟合后提取无约束模型的对数似然值。

示例代码:

# 定义无约束模型的规格
unconstrained_spec <- ugarchspec(
  variance.model = list(model = "sGARCH", garchOrder = c(1,1)),
  mean.model = list(armaOrder = c(0,0)) # 和约束模型保持一致的均值设定
)

# 拟合无约束模型
unconstrained_fit <- ugarchfit(spec = unconstrained_spec, data = your_time_series_data)

# 提取无约束模型的对数似然值
ll_unconstrained <- unconstrained_fit@fit$likelihood

步骤3:计算似然比统计量并做检验

  • 似然比统计量公式:LR = 2*(无约束对数似然 - 约束对数似然);
  • 在H₀成立时,LR服从自由度为1的卡方分布(因为我们只施加了1个约束);
  • 通过p值判断是否拒绝原假设。

示例代码:

# 计算LR统计量
LR_stat <- 2*(ll_unconstrained - ll_constrained)

# 计算对应的p值
p_value <- 1 - pchisq(LR_stat, df = 1)

# 输出结果
cat("似然比统计量:", round(LR_stat, 4), "\n")
cat("p值:", round(p_value, 4), "\n")

结果解释:如果p值小于你的显著性水平(比如0.05),则拒绝H₀,认为α₁+β₁≠1;反之则不能拒绝原假设。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:52:31