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

如何批量运行单变量逻辑回归并整理结果为DataFrame?

批量单变量回归与结果整合实现方案

一、批量运行单变量回归

无需手动逐个定义模型,通过遍历自变量列表自动生成所有单变量模型:

首先加载所需工具包(补充broom用于提取模型结果,dplyr用于数据处理):

library(AICcmodavg)
library(ggplot2)
library(tidyr)
library(dplyr)
library(broom)

# 加载示例数据
data(diamonds)
# 注意:如果是logistic回归,因变量需为二分类变量,示例中用price作为连续变量仅作演示,实际logistic回归需改为类似`glm(vs ~ mpg, data=mtcars, family=binomial())`的写法

定义自变量列表,批量生成模型:

# 指定需要进行单变量回归的自变量
predictors <- c("cut", "depth", "clarity", "carat", "color")

# 批量生成模型列表并命名
model_list <- lapply(predictors, function(x) {
  formula <- as.formula(paste("price ~", x))
  glm(formula, data = diamonds)
})
names(model_list) <- predictors

二、提取回归系数、SE、p值并整理为DataFrame

用broom::tidy()批量提取每个模型的关键统计量,合并为统一表格:

# 提取所有模型的系数信息
coef_table <- map_dfr(model_list, tidy, .id = "Predictor")

# 过滤截距项(仅保留自变量的结果)
coef_table <- coef_table %>%
  filter(term != "(Intercept)") %>%
  select(Predictor, term, estimate, std.error, p.value) %>%
  rename(Estimate = estimate, `Std. Error` = std.error, `p-value` = p.value)

三、扩展AIC表格并整合所有指标

先生成AICc模型选择表格,再与系数统计表格合并,得到包含模型选择指标和回归显著性的完整结果:

# 生成AICc表格并整理列名
aic_table <- aictab(cand.set = model_list, modnames = names(model_list)) %>%
  as.data.frame() %>%
  select(Modnames, Delta_AICc, AICcWt, LL) %>%
  rename(Predictor = Modnames, `Delta AICc` = Delta_AICc, `AICc Weight` = AICcWt, LogLikelihood = LL)

# 合并AIC信息与系数统计量
final_table <- left_join(aic_table, coef_table, by = "Predictor")

# 查看最终整合结果
print(final_table)

额外说明

  • 若需执行标准logistic回归,需在glm()函数中添加family = binomial()参数;
  • broom包的tidy()函数支持绝大多数统计模型的结果标准化提取,是批量处理模型输出的高效工具;
  • 整合后的表格同时包含模型拟合优度(AIC相关)和变量显著性(系数、p值),便于一次性分析所有单变量模型的表现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:17:35