如何在R中针对不同因变量y执行多组共享x与z的工具变量回归
批量工具变量回归并整理结果
步骤1:加载所需R包
先安装并加载必要的工具包:
install.packages(c("AER", "broom", "dplyr", "purrr", "knitr")) library(AER) library(broom) library(dplyr) library(purrr) library(knitr)
步骤2:提取因变量列表
从数据框df中自动抓取所有因变量(即除最后两列x和z之外的列):
y_vars <- names(df)[1:(ncol(df)-2)]
步骤3:批量运行IV回归并整理系数
通过循环批量执行工具变量回归,自动提取每个回归中x的系数、标准误、统计量和p值,统一整理成表格:
results_table <- map_dfr(y_vars, function(y) { # 动态构建回归公式 iv_formula <- as.formula(paste(y, "~ x | z")) # 执行IV回归 iv_reg <- ivreg(iv_formula, data = df) # 整理结果,仅保留x的相关统计量 tidy(iv_reg) %>% filter(term == "x") %>% mutate(dependent_var = y) %>% select(dependent_var, term, estimate, std.error, statistic, p.value) })
步骤4:输出美观的结果表格
用kable()生成易读的格式化表格:
kable(results_table, digits = 3, caption = "多组IV回归结果(自变量x的系数)")
说明
- 代码自动遍历所有因变量,无需手动逐个定义
reg1至regn; tidy()将回归结果转换为结构化数据框,方便后续筛选和整理;- 最终表格清晰展示每个因变量对应的x系数、标准误、t值和p值。
内容的提问来源于stack exchange,提问作者lilgrass
相关产品推荐
相关产品推荐

