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

能否用stargazer将回归统计量拆分为独立列?

如何用stargazer拆分系数、标准误、p值为独立列

可以实现这个需求,以下是两种实用的方法:

方法一:重复传入模型并指定列输出内容

通过多次传入同一个模型,给每一列单独设置要输出的内容(系数、标准误、p值),再自定义列标题:

stargazer(model1, model1, model1, 
          type = "text",
          column.labels = c("coefficient", "se", "p-value"),
          report = c("v", "s", "p"),  # 三列分别输出系数、标准误、p值
          single.row = FALSE,
          keep.stat = c("n", "ll"),  # 保留观测数和对数似然
          notes = "*p<0.1; **p<0.05; ***p<0.01")

如果需要让观测数、对数似然跨列显示,就手动用add.lines添加:

stargazer(model1, model1, model1, 
          type = "text",
          column.labels = c("coefficient", "se", "p-value"),
          report = c("v", "s", "p"),
          single.row = FALSE,
          omit.stat = "all",  # 先隐藏默认统计量
          add.lines = list(
            c("Observations", "", "183", ""),
            c("Log Likelihood", "", "-1,052.273", "")
          ),
          notes = "*p<0.1; **p<0.05; ***p<0.01")

方法二:手动构造表格数据(更灵活)

先从模型里提取需要的数值,再直接构造表格传给stargazer:

# 从模型中提取结果
coef_val <- coef(model1)["male"]
se_val <- sqrt(diag(vcov(model1)))["male"]
p_val <- coef(summary(model1))["male", 4]

# 构造表格内容
result_table <- rbind(
  c(coef_val, se_val, p_val),
  c("", "", ""),
  c("", 183, ""),
  c("", -1052.273, "")
)

# 设置行名和列名
rownames(result_table) <- c("male", "", "Observations", "Log Likelihood")
colnames(result_table) <- c("coefficient", "se", "p-value")

# 输出表格
stargazer(result_table, 
          type = "text",
          summary = FALSE,
          notes = "*p<0.1; **p<0.05; ***p<0.01")

两种方法都能生成你想要的、将系数、标准误、p值拆分为独立列的表格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:58:10