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

如何在R的stargazer中使用coef参数筛选回归系数?

使用stargazer的coef参数生成仅含部分系数的回归表格

核心逻辑

stargazer的coef参数本质是替换模型的系数值,但我们可以通过构建仅包含目标变量的系数向量列表,配合keep参数,实现只显示指定系数的效果。文档里的“数值向量列表”指:每个模型对应一个带变量名的数值向量(元素值是系数,元素名是协变量名),列表长度和模型数量一致。


完整示例

1. 准备数据与模型

library(stargazer)
set.seed(123)

# 模拟数据集
df <- data.frame(
  y = rnorm(100),
  x1 = rnorm(100),
  x2 = rnorm(100),
  x3 = rnorm(100),
  x4 = rnorm(100)
)

# 拟合全变量回归模型
model <- lm(y ~ x1 + x2 + x3 + x4, data = df)

2. 单个模型:仅显示截距、x1、x3的系数

# 提取目标变量的系数(保留变量名)
target_coefs <- coef(model)[c("(Intercept)", "x1", "x3")]

# 生成表格:coef传入包含目标系数的列表,keep指定要保留的变量
stargazer(model,
          coef = list(target_coefs),
          keep = names(target_coefs),
          type = "text")

3. 多个模型:分别指定每个模型要显示的系数

# 拟合第二个模型
model2 <- lm(y ~ x1 + x2, data = df)

# 为每个模型构建目标系数向量,放入列表
coef_list <- list(
  # 模型1保留截距、x1、x3
  coef(model)[c("(Intercept)", "x1", "x3")],
  # 模型2保留截距、x2
  coef(model2)[c("(Intercept)", "x2")]
)

# 生成多模型表格
stargazer(model, model2,
          coef = coef_list,
          keep = lapply(coef_list, names),
          type = "text")

补充说明

如果只是单纯筛选系数(不需要替换系数值),直接用keep参数更简便:

stargazer(model, keep = c("x1", "x3"), type = "text")

coef参数更适合需要同时替换系数值+筛选变量,或者多模型分别指定显示系数的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:04:58