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())

Arguments

obj

tibble with repetition number, metaparameters, simulated data, and fitted models, from fit

...

Additional arguments to broom::glance.

.progress

A logical, for whether or not to print a progress bar for multiprocess, multisession, and multicore plans .

.options

The future specific options to use with the workers when using futures. This must be the result from a call to furrr_options().

Value

a tibble with the output of the

broom::glance

method for the given object.

Details

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.

See also

tidy_fits to view model components (e.g. parameter estimates), apply_fits to apply an arbitrary function to the fits

Examples

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