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

如何用lapply批量运行lfe包中的felm多结果变量模型?

批量运行lfe::felm模型的实现方法

完全可行,利用lapply配合自定义函数就能轻松实现批量运行,具体代码结构如下:

步骤1:定义结果变量列表

先把需要循环的结果变量名称存成一个字符向量:

outcomes <- c("outcome1", "outcome2", "outcome3") # 可根据实际需求添加更多变量

步骤2:编写批量运行模型的函数

写一个接收结果变量名的函数,动态生成felm所需的公式并运行模型:

library(lfe)

run_felm_model <- function(outcome) {
  # 动态构建felm的公式格式:结果变量 ~ 协变量 | 固定效应 | 工具变量(此处为0) | 聚类变量
  model_formula <- reformulate(
    termlabels = c("mainx + cov1 + cov2 + cov3", "fe", "0", "clustercov"),
    response = outcome,
    sep = " | "
  )
  # 运行模型并返回结果
  felm(formula = model_formula, data = df)
}

步骤3:批量运行所有模型

用lapply遍历结果变量列表,得到一个包含所有模型结果的列表:

# 批量运行模型
models <- lapply(outcomes, run_felm_model)

# 给模型列表命名,方便后续按结果变量名调用
names(models) <- outcomes

后续使用示例

  • 调用单个模型:models[["outcome1"]]
  • 批量绘制残差图:
lapply(models, function(mod) {
  plot(residuals(mod), main = paste("残差图:", names(mod)))
})

内容的提问来源于stack exchange,提问作者flâneur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:24:20