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

如何将MICE合并插补回归结果添加至stargazer表格

解决MICE插补回归结果用stargazer生成HTML表格的问题

stargazer本身不支持直接处理mice::pool()返回的对象,这就是你报错的原因。下面提供两种可行的解决方法:

方法一:手动提取汇总统计量传入stargazer

先提取pooled模型的系数、标准误、p值和R²等关键信息,再通过stargazer的参数手动指定这些内容:

library(mice)
library(stargazer)
library(miceadds) # 用于计算pooled R²

mydf <- iris
set.seed(1)
# 创建缺失值
mydf$Sepal.Length[sample(nrow(mydf), nrow(mydf)/3)] <- NA

# MICE插补
m <- 30
mydf_mice <- mice(mydf, m = m, maxit = 10, seed = 1, print = FALSE)

# 拟合模型并pool
mydf_mice_fit <- with(mydf_mice, lm(Petal.Length ~ Petal.Width + Sepal.Length + Sepal.Width))
pooled_model <- pool(mydf_mice_fit)

# 提取pooled结果的关键统计量
pooled_summary <- summary(pooled_model)
coefs <- pooled_summary$estimate
ses <- pooled_summary$std.error
pvals <- pooled_summary$p.value
# 计算pooled R²
r2 <- pool.r.squared(pooled_model)$R2_pooled

# 用stargazer生成HTML表格
stargazer(
  type = "html",
  out = "mice_reg.html",
  title = "MICE插补后的回归结果",
  coef = list(coefs),
  se = list(ses),
  p = list(pvals),
  r2 = r2,
  column.labels = c("Pooled Model"),
  dep.var.labels = "Petal.Length",
  digits = 3 # 控制小数位数
)

方法二:用miceadds包转换模型对象

miceadds包的mi.mice()函数可以将MICE拟合的模型转换为stargazer可识别的对象,步骤更简洁:

library(mice)
library(stargazer)
library(miceadds)

mydf <- iris
set.seed(1)
mydf$Sepal.Length[sample(nrow(mydf), nrow(mydf)/3)] <- NA

# MICE插补与模型拟合
m <- 30
mydf_mice <- mice(mydf, m = m, maxit = 10, seed = 1, print = FALSE)
mydf_mice_fit <- with(mydf_mice, lm(Petal.Length ~ Petal.Width + Sepal.Length + Sepal.Width))

# 转换为stargazer兼容对象
mi_model <- mi.mice(mydf_mice_fit, method = "pooling")

# 生成HTML表格
stargazer(mi_model, type = "html", out = "mice_reg.html", title = "MICE插补后的回归结果")

两种方法都能生成和普通lm模型格式一致的HTML表格,你可以根据自己的需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:52:39