Generate bootstrap
estimates from the output of
lavaan::sem()
.
Usage
fit2boot_out(fit)
fit2boot_out_do_boot(
fit,
R = 100,
seed = NULL,
parallel = FALSE,
ncores = max(parallel::detectCores(logical = FALSE) - 1, 1),
make_cluster_args = list(),
progress = TRUE,
internal = list()
)
Arguments
- fit
The fit object. This function only supports a lavaan::lavaan object.
- R
The number of bootstrap samples. Default is 100.
- seed
The seed for the random resampling. Default is
NULL
.- parallel
Logical. Whether parallel processing will be used. Default is
NULL
.- ncores
Integer. The number of CPU cores to use when
parallel
isTRUE
. Default is the number of non-logical cores minus one (one minimum). Will raise an error if greater than the number of cores detected byparallel::detectCores()
. Ifncores
is set, it will overridemake_cluster_args
.- make_cluster_args
A named list of additional arguments to be passed to
parallel::makeCluster()
. For advanced users. Seeparallel::makeCluster()
for details. Default islist()
.- progress
Logical. Display progress or not. Default is
TRUE
.- internal
A list of arguments to be used internally for debugging. Default is
list()
.
Value
A boot_out
-class object
that can be used for the boot_out
argument of indirect_effect()
,
cond_indirect_effects()
, and
related functions for forming
bootstrapping confidence intervals.
The object is a list with the number of elements equal to the number of bootstrap samples. Each element is a list of the parameter estimates and sample variances and covariances of the variables in each bootstrap sample.
Details
This function is for
advanced users. do_boot()
is a
function users should try first
because do_boot()
has a general
interface for input-specific
functions like this one.
If bootstrapping confidence intervals
was requested when calling
lavaan::sem()
by setting se = "boot"
, fit2boot_out()
can be used
to extract the stored bootstrap
estimates so that they can be reused
by indirect_effect()
,
cond_indirect_effects()
and related
functions to form bootstrapping
confidence intervals for effects such
as indirect effects and conditional
indirect effects.
If bootstrapping confidence was not
requested when fitting the model by
lavaan::sem()
,
fit2boot_out_do_boot()
can be used
to generate nonparametric bootstrap
estimates from the output of
lavaan::sem()
and store them for
use by indirect_effect()
,
cond_indirect_effects()
, and
related functions.
This approach removes the need to
repeat bootstrapping in each call to
indirect_effect()
,
cond_indirect_effects()
, and
related functions. It also ensures
that the same set of bootstrap
samples is used in all subsequent
analyses.
Functions
fit2boot_out()
: Process stored bootstrap estimates for functions such ascond_indirect_effects()
.fit2boot_out_do_boot()
: Do bootstrapping and store information to be used bycond_indirect_effects()
and related functions. Support parallel processing.
See also
do_boot()
, the general
purpose function that users should
try first before using this function.
Examples
library(lavaan)
data(data_med_mod_ab1)
dat <- data_med_mod_ab1
dat$"x:w" <- dat$x * dat$w
dat$"m:w" <- dat$m * dat$w
mod <-
"
m ~ x + w + x:w + c1 + c2
y ~ m + w + m:w + x + c1 + c2
"
# Bootstrapping not requested in calling lavaan::sem()
fit <- sem(model = mod, data = dat, fixed.x = FALSE,
se = "none", baseline = FALSE)
fit_boot_out <- fit2boot_out_do_boot(fit = fit,
R = 40,
seed = 1234,
progress = FALSE)
out <- cond_indirect_effects(wlevels = "w",
x = "x",
y = "y",
m = "m",
fit = fit,
boot_ci = TRUE,
boot_out = fit_boot_out)
out
#>
#> == Conditional indirect effects ==
#>
#> Path: x -> m -> y
#> Conditional on moderator(s): w
#> Moderator(s) represented by: w
#>
#> [w] (w) ind CI.lo CI.hi Sig m~x y~m
#> 1 M+1.0SD 6.046 0.248 0.033 0.459 Sig 0.342 0.725
#> 2 Mean 4.990 0.024 -0.065 0.237 0.063 0.375
#> 3 M-1.0SD 3.934 -0.006 -0.069 0.113 -0.216 0.026
#>
#> - [CI.lo to CI.hi] are 95.0% percentile confidence intervals by
#> nonparametric bootstrapping with 40 samples.
#> - The 'ind' column shows the conditional indirect effects.
#> - ‘m~x’,‘y~m’ is/are the path coefficient(s) along the path conditional
#> on the moderator(s).
#>