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

R语言如何从包含多个lm()模型的fit对象提取指定变量标准误

R语言提取批量线性回归模型指定变量标准误的方法

你构造的fit是命名的lm对象列表,每个模型的目标自变量名就是列表对应元素的名称,可通过以下方法提取每个模型对应自变量的标准误:

方法1:Base R实现,返回命名向量

不需要安装额外依赖,返回结果直接对应你的变量名,方便索引:

se_p <- sapply(names(fit), function(varname) {
  # 提取单个模型的系数汇总矩阵
  coef_mat <- coef(summary(fit[[varname]]))
  # 按变量名索引对应行,提取标准误列
  coef_mat[varname, "Std. Error"]
})

运行后得到的se_p是命名数值向量,名称为你原来的自变量名,取值为对应模型的标准误。

方法2:Base R实现,返回数据框

适合后续需要批量处理、导出结果的场景:

se_df <- data.frame(
  variable = names(fit),
  std_error = sapply(names(fit), function(varname) coef(summary(fit[[varname]]))[varname, 2])
)

带错误处理的版本

如果部分模型存在拟合问题(如共线导致系数缺失),添加tryCatch避免整个流程中断,拟合失败的结果返回NA:

se_p <- sapply(names(fit), function(varname) {
  tryCatch({
    coef(summary(fit[[varname]]))[varname, "Std. Error"]
  }, error = function(e) NA_real_)
})

tidyverse生态简化写法

安装broom包后可以用更易读的语法实现:

library(broom)
library(dplyr)

se_p <- sapply(names(fit), function(varname) {
  tidy(fit[[varname]]) %>%
    filter(term == varname) %>%
    pull(std.error)
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:24:04