Bootstrap a statistical model n times to return a data frame of estimates.

bootstrap_model(model, iterations = 1000, ...)

# S3 method for default
bootstrap_model(
model,
iterations = 1000,
type = "ordinary",
parallel = c("no", "multicore", "snow"),
n_cpus = 1,
verbose = FALSE,
...
)

# S3 method for merMod
bootstrap_model(
model,
iterations = 1000,
type = "parametric",
parallel = c("no", "multicore", "snow"),
n_cpus = 1,
verbose = FALSE,
...
)

## Arguments

model Statistical model. The number of draws to simulate/bootstrap. Arguments passed to or from other methods. Character string specifying the type of bootstrap. For mixed models of class merMod or glmmTMB, may be "parametric" (default) or "semiparametric" (see ?lme4::bootMer for details). For all other models, see argument sim in ?boot::boot (defaults to "ordinary"). The type of parallel operation to be used (if any). Number of processes to be used in parallel operation. Toggle warnings and messages.

## Value

A data frame of bootstrapped estimates.

## Details

By default, boot::boot() is used to generate bootstraps from the model data, which are then used to update() the model, i.e. refit the model with the bootstrapped samples. For merMod objects (lme4) or models from glmmTMB, the lme4::bootMer() function is used to obtain bootstrapped samples. bootstrap_parameters() summarizes the bootstrapped model estimates.

## Using with emmeans

The output can be passed directly to the various functions from the emmeans package, to obtain bootstrapped estimates, contrasts, simple slopes, etc. and their confidence intervals. These can then be passed to model_parameter() to obtain standard errors, p-values, etc (see example).

Note that that p-values returned here are estimated under the assumption of translation equivariance: that shape of the sampling distribution is unaffected by the null being true or not. If this assumption does not hold, p-values can be biased, and it is suggested to use proper permutation tests to obtain non-parametric p-values.

bootstrap_parameters(), simulate_model(), simulate_parameters()

## Examples

if (FALSE) {
if (require("boot", quietly = TRUE)) {
model <- lm(mpg ~ wt + factor(cyl), data = mtcars)
b <- bootstrap_model(model)