R 扫帚:显示模型中包含多少观察值

R broom: show how many observations are included in the model

我有来自https://cran.r-project.org/web/packages/broom/vignettes/broom_and_dplyr.html

regressions <- mtcars %>%
  nest(data = -am) %>% 
  mutate(
    fit = map(data, ~ lm(wt ~ mpg + qsec + gear, data = .x)),
    tidied = map(fit, tidy),
    glanced = map(fit, glance),
    augmented = map(fit, augment)
  )

regressions %>% 
  unnest(tidied)

现在因为 mtcars 没有缺失值,所以针对 am 的不同值构建的所有模型都具有相同数量的观察值。但是,如果 mtcars 存在各种变量的缺失值,则每个模型都会有不同数量的观察值(观察值因缺失而被删除)。

是否可以在最后的标题中包含每个模型中使用的观测值的数量? tidyglanceaugment 都没有提供我认为在进行模型拟合时非常重要的这个功能。

正如 Kieran 所建议的那样,glance 提供了 nobs,但是我如何在 tidy 输出

中包含 nobs

它已经在那里了,不是吗? glance 包括作为 nobs 列的观察次数。

编辑:要仅从 glanced 列表列中获取 nobs 列,请使用 hoist() 并命名新列。

library(tidyverse)
library(broom)
mtcars_na <- mtcars
mtcars_na[1:2,1] <- NA
head(mtcars_na)
#>                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
#> Mazda RX4           NA   6  160 110 3.90 2.620 16.46  0  1    4    4
#> Mazda RX4 Wag       NA   6  160 110 3.90 2.875 17.02  0  1    4    4
#> Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
#> Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
#> Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
#> Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

regressions <- mtcars %>%
  nest(data = -am) %>% 
  mutate(
    fit = map(data, ~ lm(wt ~ mpg + qsec + gear, data = .x)),
    tidied = map(fit, tidy),
    glanced = map(fit, glance),
    augmented = map(fit, augment)
  )

regressions %>% 
  unnest(tidied) %>% 
  hoist(glanced, nobs = "nobs")
#> # A tibble: 8 × 11
#>      am data     fit   term  estimate std.error statistic p.value  nobs glanced 
#>   <dbl> <list>   <lis> <chr>    <dbl>     <dbl>     <dbl>   <dbl> <int> <list>  
#> 1     1 <tibble> <lm>  (Int…   4.28      3.46      1.24   2.47e-1    13 <tibble>
#> 2     1 <tibble> <lm>  mpg    -0.101     0.0294   -3.43   7.50e-3    13 <tibble>
#> 3     1 <tibble> <lm>  qsec    0.0398    0.151     0.264  7.98e-1    13 <tibble>
#> 4     1 <tibble> <lm>  gear   -0.0229    0.349    -0.0656 9.49e-1    13 <tibble>
#> 5     0 <tibble> <lm>  (Int…   4.92      1.40      3.52   3.09e-3    19 <tibble>
#> 6     0 <tibble> <lm>  mpg    -0.192     0.0443   -4.33   5.91e-4    19 <tibble>
#> 7     0 <tibble> <lm>  qsec    0.0919    0.0983    0.935  3.65e-1    19 <tibble>
#> 8     0 <tibble> <lm>  gear    0.147     0.368     0.398  6.96e-1    19 <tibble>
#> # … with 1 more variable: augmented <list>