Turn fitted models of simulated data (from
fit
) into a
tidy tibble of model summaries, each with one line (via
broom::glance
).
glance_fits(obj, ..., .progress = FALSE, .options = furrr_options())
tibble with repetition number,
metaparameters, simulated data, and fitted
models, from
fit
Additional arguments to
broom::glance
.
A logical, for whether or not to print a progress bar for multiprocess, multisession, and multicore plans .
The future
specific
options to use with the workers when using
futures. This must be the result from a call
to
furrr_options()
.
This the fifth step of the
simulation process: after fitting the model
with fit
, now
tidy the model output for further analysis such
as evaluating power. All model objects should
be supported by
broom::glance
.
The output of this function is quite useful comparing
overall model fits; see
Examples. For looking at specific
features of the model such as tests for
individual parameter estimates, use
tidy_fits
.
tidy_fits
to view model
components (e.g. parameter estimates),
apply_fits
to apply an
arbitrary function to the fits
simple_linear_data = specify(a = ~ 2 + rnorm(n),
b = ~ 5 + 3 * x1 + rnorm(n, 0, sd = 0.5)) %>%
define(n = 100:101) %>%
generate(2)
#> Warning: Simulation produced errors. See column '.sim_error'.
## Can show tidy output for multiple competing models,
compare_degree = simple_linear_data %>%
fit(linear = ~lm(a ~ b, data = .),
quadratic = ~lm(a ~ b + I(b^2), data = .)) %>%
glance_fits
#> Warning: fit() produced errors. See '.fit_error_*' column(s).
compare_degree
#> # A tibble: 8 × 6
#> .sim_id n rep .sim_error Source .fit_…¹
#> <int> <int> <int> <chr> <chr> <chr>
#> 1 1 100 1 "\u001b[1m\u001b[33mError\u001b[39m in `ma… linear "Error…
#> 2 1 100 1 "\u001b[1m\u001b[33mError\u001b[39m in `ma… quadr… "Error…
#> 3 2 101 1 "\u001b[1m\u001b[33mError\u001b[39m in `ma… linear "Error…
#> 4 2 101 1 "\u001b[1m\u001b[33mError\u001b[39m in `ma… quadr… "Error…
#> 5 3 100 2 "\u001b[1m\u001b[33mError\u001b[39m in `ma… linear "Error…
#> 6 3 100 2 "\u001b[1m\u001b[33mError\u001b[39m in `ma… quadr… "Error…
#> 7 4 101 2 "\u001b[1m\u001b[33mError\u001b[39m in `ma… linear "Error…
#> 8 4 101 2 "\u001b[1m\u001b[33mError\u001b[39m in `ma… quadr… "Error…
#> # … with abbreviated variable name ¹.fit_error
## Models can be anything supported by broom::tidy.
cor_vs_lm = simple_linear_data %>%
fit(linear = ~lm(a ~ b, data = .),
cor = ~ cor.test(.$a, .$b)) %>%
glance_fits
#> Warning: fit() produced errors. See '.fit_error_*' column(s).
cor_vs_lm # has NA for non-matching terms
#> # A tibble: 8 × 6
#> .sim_id n rep .sim_error Source .fit_…¹
#> <int> <int> <int> <chr> <chr> <chr>
#> 1 1 100 1 "\u001b[1m\u001b[33mError\u001b[39m in `ma… linear "Error…
#> 2 1 100 1 "\u001b[1m\u001b[33mError\u001b[39m in `ma… cor "Error…
#> 3 2 101 1 "\u001b[1m\u001b[33mError\u001b[39m in `ma… linear "Error…
#> 4 2 101 1 "\u001b[1m\u001b[33mError\u001b[39m in `ma… cor "Error…
#> 5 3 100 2 "\u001b[1m\u001b[33mError\u001b[39m in `ma… linear "Error…
#> 6 3 100 2 "\u001b[1m\u001b[33mError\u001b[39m in `ma… cor "Error…
#> 7 4 101 2 "\u001b[1m\u001b[33mError\u001b[39m in `ma… linear "Error…
#> 8 4 101 2 "\u001b[1m\u001b[33mError\u001b[39m in `ma… cor "Error…
#> # … with abbreviated variable name ¹.fit_error