如何使用tidy()和do()从循环中运行的多个线性模型中提取调整后的R平方值

t0ybt7op  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(139)

我在posit community中找到了这段很酷的代码,但我不能问后续问题,所以我来到这里。
我想从这个“循环”中得到调整后的r平方值,但是我无法做到,所以我决定问小组。代码如下。

library(tidyverse)
library(broom)

iris  %>% 
  group_by(Species) %>% 
  do(tidy(lm(Sepal.Length ~ Sepal.Width, .))) %>%
  filter(term != "(Intercept)")
ldioqlga

ldioqlga1#

要查看每个模型的指标,您需要使用glance而不是tidy,如下所示:

代码

library(tidyverse)
library(broom)

iris  %>% 
  group_by(Species) %>% 
  do(glance(lm(Sepal.Length ~ Sepal.Width, .)))

输出

# A tibble: 3 x 13
# Groups:   Species [3]
  Species    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 setosa         0.551         0.542 0.239      59.0 6.71e-10     1   1.73  2.53  8.27     2.73          48    50
2 versicolor     0.277         0.262 0.444      18.4 8.77e- 5     1 -29.3  64.6  70.3      9.44          48    50
3 virginica      0.209         0.193 0.571      12.7 8.43e- 4     1 -41.9  89.9  95.6     15.7           48    50

相关问题