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

如何在Stargazer中省略协变量组并替换为组标签的Yes/No标识

在Stargazer回归表中用组标签替代多组协变量的方法

核心思路

Stargazer本身没有直接的分组隐藏协变量参数,但可以通过隐藏指定协变量+手动添加组状态行的组合方式实现需求,具体步骤如下:


1. 构建分组回归模型

先按协变量组的纳入情况,定义不同的回归模型(确保同一组协变量同时加入/退出):

# 加载包与示例数据(假设已有包含y、x、size、population、age、gender的df数据集)
library(stargazer)

# 基础模型(无控制变量)
model1 <- lm(y ~ x, data = df)
# 仅加入城市控制变量组
model2 <- lm(y ~ x + size + population, data = df)
# 仅加入个体控制变量组
model3 <- lm(y ~ x + age + gender, data = df)
# 加入所有控制变量组
model4 <- lm(y ~ x + size + population + age + gender, data = df)

2. 隐藏具体协变量

使用omit参数指定需要隐藏的协变量名称,把每组内的变量全部列入:

# 先单独运行这一步确认核心变量正常显示,协变量被隐藏
stargazer(model1, model2, model3, model4,
          omit = c("size", "population", "age", "gender"), # 隐藏所有控制变量
          keep = "x", # 保留核心自变量x
          type = "text" # 输出文本格式,可替换为"html"或"latex"
          )

3. 添加组状态标签行

通过add.lines参数手动插入自定义行,标记每组控制变量是否被纳入模型,每行第一个元素是行标题,后续元素对应每个模型的状态("No"/"Yes"):

# 最终完整代码
stargazer(model1, model2, model3, model4,
          omit = c("size", "population", "age", "gender"),
          keep = "x",
          add.lines = list(
            c("City controls in model?", "No", "Yes", "No", "Yes"),
            c("Individual controls in model?", "No", "No", "Yes", "Yes")
          ),
          type = "text"
          )

进阶简化:用变量组向量减少重复代码

如果组内变量较多,可先定义组变量向量,提升代码可读性:

city_controls <- c("size", "population")
individual_controls <- c("age", "gender")

stargazer(model1, model2, model3, model4,
          omit = c(city_controls, individual_controls),
          keep = "x",
          add.lines = list(
            c("City controls in model?", "No", "Yes", "No", "Yes"),
            c("Individual controls in model?", "No", "No", "Yes", "Yes")
          ),
          type = "text"
          )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:45:48