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

如何更便捷提取lm()系数并添加分组信息与调整R平方值

优化方案:自动添加分组信息与调整R方

不用手动输入向量,我们可以在分组建模的过程中直接整合分组信息和模型的调整R方,以下是几种更便捷的实现方式:

方法1:使用group_modify(推荐,更简洁)

group_modify会自动保留分组列,无需手动添加,同时可以在每个分组内完成模型拟合、系数提取和统计量整合:

library(dplyr)
library(broom)

models <- iris %>% 
  group_by(Species) %>% 
  group_modify(function(.x, .y) {
    # 拟合线性模型
    mod <- lm(Petal.Length ~ Sepal.Length, data = .x)
    # 提取系数表,并添加调整R方
    broom::tidy(mod) %>% 
      mutate(Adjusted_R_squared = broom::glance(mod)$adj.r.squared)
  }) %>% 
  ungroup() # 可选:取消数据框的分组状态

方法2:使用group_map结合分组键

group_map可以通过.y参数获取当前分组的键值,以此自动添加分组信息:

library(dplyr)
library(broom)
library(data.table)

models <- iris %>% 
  group_by(Species) %>% 
  group_map(function(.x, .y) {
    mod <- lm(Petal.Length ~ Sepal.Length, data = .x)
    # 合并系数表、分组信息和调整R方
    data.table(
      broom::tidy(mod),
      Species = .y$Species,
      Adjusted_R_squared = broom::glance(mod)$adj.r.squared
    )
  }) %>% 
  rbindlist()

核心优势

  • 避免手动输入分组名和统计量的错误,尤其当分组数量较多时
  • 代码更连贯,建模与结果整合一步完成
  • 自动同步分组与模型结果,保证数据一致性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:51:15