首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从包含多个lm()的lm()对象导出系数?

如何从包含多个lm()的lm()对象导出系数?
EN

Stack Overflow用户
提问于 2021-09-09 16:07:53
回答 2查看 167关注 0票数 1

我有一个对象(S3;lm),它包含471个不同模型的线性回归输出。我正在试图提取每个模型中特定变量的标准错误,但我不确定如何做到这一点,有人能帮忙吗?具体来说,我想为保存在"fit“对象中的471个模型中的每个模型提取变量"p”的标准错误。

代码语言:javascript
复制
varnames = names(merged1)[2036:2507]
          fit <- lapply(varnames, 
          FUN=function(p) lm(formula(paste("Dx ~ x + y + z + q +", p)),data=merged1))
names(fit) <- varnames

非常感谢!

Note编辑以反映匿名函数p,而不是前面所述的x。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-09 17:25:57

使用fit,可以在备注的末尾重复显示,调用map_dfrtidy调用,这将给出包含系数和相关统计信息的数据帧。我们过滤掉我们想要的行。

代码语言:javascript
复制
library(broom) # tidy
library(dplyr)
library(purrr) # map_dfr

fit %>%
  map_dfr(tidy, .id = "variable") %>%
  filter(term == variable)

给予:

代码语言:javascript
复制
# A tibble: 8 x 6
  variable term  estimate std.error statistic p.value
  <chr>    <chr>    <dbl>     <dbl>     <dbl>   <dbl>
1 hp       hp     -0.0147    0.0147    -1.00  0.325  
2 drat     drat    1.21      1.50       0.812 0.424  
3 wt       wt     -3.64      1.04      -3.50  0.00160
4 qsec     qsec   -0.243     0.402     -0.604 0.551  
5 vs       vs     -0.634     1.90      -0.334 0.741  
6 am       am      1.93      1.34       1.44  0.161  
7 gear     gear    0.158     0.910      0.174 0.863  
8 carb     carb   -0.737     0.393     -1.88  0.0711 

备注

我们使用内置于R中的mtcar计算拟合度。

代码语言:javascript
复制
data <- mtcars
resp <- "mpg" # response
fixed <- c("cyl", "disp")  # always include these
varnames <- setdiff(names(data), c(resp, fixed)) # incl one at a time

fit <- Map(function(v) {
  fo <- reformulate(c(fixed, v), resp)
  lm(fo, data)
}, varnames)

已更新

大幅度修改。

票数 1
EN

Stack Overflow用户

发布于 2021-09-09 16:17:32

代码语言:javascript
复制
sapply(fit,function(x) summary(x)$coefficients[p,][2],simplify = F)

将第二个元素替换为变量的标准错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69121513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档