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

如何在2SLS回归面板表格中按需显示指定回归系数?

2SLS回归面板表格定制实现方案

针对你需要的分面板回归表格需求,推荐使用panelsummary包(专为面板式回归表设计)配合fixest和modelsummary实现,精准控制各面板的变量显示与统计量位置。以下是完整可复现代码:

步骤1:准备模型与提取第一阶段结果

# 安装依赖包(首次运行需执行)
install.packages(c("panelsummary", "fixest", "modelsummary", "causaldata"))

library(tidyverse)
library(fixest)
library(modelsummary)
library(panelsummary)

# 加载数据
d <- causaldata::social_insure

# 基础2SLS模型
m1 <- feols(takeup_survey ~ male 
            | pre_takeup_rate ~ default, 
            cluster = ~address, data = d)

# 带控制变量的2SLS模型
m2 <- feols(takeup_survey ~ male + age + agpop + ricearea_2010 +
             literacy + intensive + risk_averse + disaster_prob +
             factor(village) | pre_takeup_rate ~ default, 
           cluster = ~address, data = d)

# 简化式模型
rf1 <- feols(takeup_survey ~ default + male, 
             cluster = ~address, data = d)
rf2 <- feols(takeup_survey ~ default + male + age + agpop + ricearea_2010 +
              literacy + intensive + risk_averse + disaster_prob +
              factor(village), 
            cluster = ~address, data = d)

# 提取2SLS模型的第一阶段结果
m1_first <- extract_first_stage(m1)
m2_first <- extract_first_stage(m2)

步骤2:生成定制化面板表格

# 定义各面板需显示的变量
first_stage_vars <- c("default")  # 第一阶段仅显示工具变量
second_stage_vars <- c("pre_takeup_rate", "age")  # 第二阶段显示核心内生变量与Age
reduced_form_vars <- c("default")  # 简化式仅显示工具变量

# 构建面板表格
panelsummary(
  # 按面板分组的模型列表
  list(
    "第一阶段" = list(m1_first, m2_first),
    "第二阶段(2SLS)" = list(m1, m2),
    "简化式" = list(rf1, rf2)
  ),
  # 为每个面板指定显示变量
  panel_vars = list(
    first_stage_vars,
    second_stage_vars,
    reduced_form_vars
  ),
  # 变量名重命名为需求名称
  coef_rename = c(
    "pre_takeup_rate" = "Friends Purchase Behavior",
    "default" = "Instrument",
    "age" = "Age"
  ),
  # 仅保留观测数统计量
  gof_map = list(
    list("raw" = "nobs", "clean" = "Number of Observations", "fmt" = 0)
  ),
  # 观测数放在表格末尾(所有面板之后)
  gof_position = "bottom",
  # 模型列名称
  model_names = c("基础模型", "带控制变量模型"),
  # 显著性星号设置
  stars = c('*' = 0.1, '**' = 0.05, '***' = 0.01)
)

关键设置说明

  • 面板变量控制:通过panel_vars参数为每个面板单独指定显示变量,避免无关变量(如Age)出现在第一阶段和简化式面板
  • 统计量位置:gof_position = "bottom"确保观测数仅在整个表格最后显示一次,而非每个面板重复出现
  • 变量名自定义:coef_rename将模型中的变量名替换为你需要的业务名称(如pre_takeup_rate改为Friends Purchase Behavior)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:55:03