首页 > 解决方案 > 是否有任何功能可以报告许多多元线性回归模型的结果

问题描述

我正在拟合许多模型,例如这个例子:

model<-lm(vl~sex+race+gene1+gene2)
anova(model)
model<-lm(vl~sex+race+gene3+gene4)
anova(model)
model<-lm(vl~sex+race+gene5+gene6)
anova(model)
model<-lm(vl~sex+race+gene7+gene8)
anova(model)
model<-lm(vl~sex+race+gene9+gene10)
anova(model)

我想要一个可以从这些模型中提取所有 p 值并将它们放在一个表中的函数或 R 包。我有这么多模型,我无法复制和超越每一个 p 值。你能帮我吗?

标签: r

解决方案


这是 mtcars 数据集的示例:

library(tidyquant)
library(tidyverse)
library(broom)

table <- mtcars %>% 
    mutate(cyl = as_factor(cyl)) %>% 
    group_by(cyl) %>% 
    group_split() %>% 
    map_dfr(.f = function(df) {
    lm(mpg ~ am+disp+gear, data = df) %>% 
            glance() %>% 
            add_column(cyl = unique(df$cyl), .before = 1)
})

table

输出:

 cyl   r.squared adj.r.squared sigma statistic p.value    df logLik   AIC   BIC deviance df.residual  nobs
  <fct>     <dbl>         <dbl> <dbl>     <dbl>   <dbl> <dbl>  <dbl> <dbl> <dbl>    <dbl>       <int> <int>
1 4         0.866         0.808  1.98     15.0  0.00196     3 -20.6   51.2  53.2    27.3            7    11
2 6         0.609         0.218  1.29      1.56 0.362       3  -8.72  27.4  27.2     4.96           3     7
3 8         0.272         0.139  2.38      2.05 0.175       2 -30.3   68.6  71.1    62.1           11    14

推荐阅读