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

如何在stargazer回归表格中展示混合效应模型的随机效应?

如何用stargazer显示混合效应模型的随机效应部分

stargazer对lme4包的混合效应模型原生不支持直接输出随机效应,但可以通过手动提取随机效应信息并添加到表格的方式实现需求,以下是具体方案:

方法1:手动提取随机效应并通过add.lines插入表格

先从拟合好的模型中提取随机效应的标准差等核心信息,再用stargazer的add.lines参数将这部分内容追加到表格末尾,实现类似sjPlot/texreg的展示效果。

完整代码示例

library(stargazer)
library(lme4)

mtcars$cyl <- as.factor(mtcars$cyl)
# 拟合混合效应模型
model <- lmer(mpg ~ hp + (1 | cyl), data = mtcars)

# 提取随机效应与残差的标准差
vc <- VarCorr(model)
rand_eff_rows <- list(
  c("随机效应(cyl)标准差", round(attr(vc$cyl, "stddev"), 3)),
  c("残差标准差", round(attr(vc, "sc"), 3))
)

# 生成包含随机效应的stargazer表格
stargazer(model, 
          type = "text",
          star.cutoffs = c(0.1, 0.05, 0.01, 0.001),
          star.char = c("+", "*", "**", "***"),
          notes = c("系数与95%置信区间(括号内);+ p<0.1; * p<0.05; ** p<0.01; *** p<0.001"),
          notes.append = FALSE, 
          align = TRUE, 
          ci = TRUE,
          add.lines = rand_eff_rows,  # 插入随机效应行
          keep.stat = c("n", "rsq")  # 保留样本量、R²等统计量
)

方法2:结合texreg提取信息(可选)

利用texreg已支持输出随机效应的特性,先提取模型的完整结果,再整理后整合到stargazer表格中,这种方式相对繁琐,更推荐方法1。

示例代码

library(texreg)
# 用texreg提取包含随机效应的模型信息
tr <- extract(model, include.random = TRUE)
# 整理随机效应说明文本
rand_eff_note <- paste0("随机效应(cyl)标准差: ", round(tr@random[[1]]@stddev, 3), 
                       "\n残差标准差: ", round(tr@sigma, 3))

# 生成表格
stargazer(model, 
          type = "text",
          star.cutoffs = c(0.1, 0.05, 0.01, 0.001),
          star.char = c("+", "*", "**", "***"),
          notes = c("系数与95%置信区间(括号内);+ p<0.1; * p<0.05; ** p<0.01; *** p<0.001\n", rand_eff_note),
          notes.append = FALSE, 
          align = TRUE, 
          ci = TRUE)

需要注意:stargazer本身没有专门的随机效应输出模块,所以添加的内容需要手动格式化,确保和表格整体风格一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:52:41