Пакет broom
очень удобен для извлечения практически всего, что вы хотите от модели. Но есть ли способ получить размер выборки (количество наблюдений)? Возьмем следующий пример:
library(tidyverse)
library(broom)
data(iris)
iris %>%
as_tibble() %>%
nest(data = c(-Species)) %>%
mutate(
model = map(data, ~ lm(Petal.Width ~ Petal.Length, data = .x)),
tidied = map(model, tidy),
fit = map(model, glance)
) %>%
select(Species, tidied, fit) %>%
unnest(tidied) %>%
rename(t.statistic = statistic,
t.p = p.value) %>%
unnest(fit) %>%
rename(f.statistic = statistic,
f.p = p.value)
# A tibble: 6 x 17
Species term estimate std.error t.statistic t.p r.squared adj.r.squared sigma
<fct> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 setosa (Int~ -0.0482 0.122 -0.396 6.94e- 1 0.110 0.0914 0.100
2 setosa Peta~ 0.201 0.0826 2.44 1.86e- 2 0.110 0.0914 0.100
3 versic~ (Int~ -0.0843 0.161 -0.525 6.02e- 1 0.619 0.611 0.123
4 versic~ Peta~ 0.331 0.0375 8.83 1.27e-11 0.619 0.611 0.123
5 virgin~ (Int~ 1.14 0.379 2.99 4.34e- 3 0.104 0.0851 0.263
6 virgin~ Peta~ 0.160 0.0680 2.36 2.25e- 2 0.104 0.0851 0.263
# ... with 8 more variables: f.statistic <dbl>, f.p <dbl>, df <int>, logLik <dbl>,
# AIC <dbl>, BIC <dbl>, deviance <dbl>, df.residual <int>
Строка кода (1) объединяет данные по видам, (2) запускает модель, используя map
для каждого вида, и (3) выводит результирующие данные.
Есть ли простой способ также получить здесь количество наблюдений для каждой модели? Я не хочу полагаться на вычисления с использованием степеней свободы.