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

如何在stargazer中添加coeftest模型的观测数、R²等统计量

解决方法

问题根源

coeftest返回的对象仅包含系数和稳健标准误,不携带模型拟合的核心统计量(观测数、R²等),因此需要从原svyglm模型中提取这些统计量,再手动传入stargazer。

具体步骤与代码

  1. 提取稳健系数与标准误
    从coeftest结果或直接用vcovHC提取稳健标准误:
# 提取稳健系数和标准误
coef_r <- coef(short_model_r)
se_r <- sqrt(diag(vcovHC(short_model, type = "HC1")))
  1. 提取原模型的拟合统计量
    稳健方差仅调整标准误,拟合优度、观测数等核心统计量仍基于原svyglm模型:
# 提取核心统计量
n_obs <- nobs(short_model)
r2 <- summary(short_model)$r.squared
r2_adj <- summary(short_model)$adj.r.squared
resid_se <- summary(short_model)$sigma
f_stat <- summary(short_model)$fstatistic[1]
f_pval <- summary(short_model)$fstatistic[3]
  1. 用stargazer生成带统计量的表格
    通过coef/se传入稳健结果,用add.lines手动添加统计量:
stargazer(short_model, type = "text",
          coef = list(coef_r),  # 传入稳健系数
          se = list(se_r),      # 传入稳健标准误
          column.labels = c("Short model"),
          title = 'Table 1: Short model',
          omit.stat = "all",    # 关闭默认统计量,避免重复
          add.lines = list(
            c("观测数", format(n_obs, big.mark = ",")),
            c("R²", format(r2, digits = 3)),
            c("调整后R²", format(r2_adj, digits = 3)),
            c("残差标准误", format(resid_se, digits = 3)),
            c("F统计量", paste0(format(f_stat, digits = 3), " (p = ", format(f_pval, digits = 3), ")"))
          ),
          digits = 3)

多模型扩展

如果需要展示多个稳健模型,只需将coef和se改为对应模型的列表,add.lines中每一行的第二个元素对应各模型的统计量即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 06:46:23