Bootstrap Estimates for 'indirect_effects' and 'cond_indirect_effects'
Source:R/do_boot.R
do_boot.Rd
Generate bootstrap
estimates to be used by
cond_indirect_effects()
,
indirect_effect()
, and
cond_indirect()
,
Usage
do_boot(
fit,
R = 100,
seed = NULL,
parallel = TRUE,
ncores = max(parallel::detectCores(logical = FALSE) - 1, 1),
make_cluster_args = list(),
progress = TRUE
)
Arguments
- fit
It can be (a) a list of
lm
class objects, or the output oflm2list()
(i.e., anlm_list
-class object), or (b) the output oflavaan::sem()
. If it is a single model fitted bylm()
, it will be automatically converted to a list bylm2list()
.- R
The number of bootstrap samples. Default is 100.
- seed
The seed for the bootstrapping. Default is
NULL
and seed is not set.- parallel
Logical. Whether parallel processing will be used. Default is
TRUE
.- 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()
, no additional arguments.- progress
Logical. Display progress or not. Default is
TRUE
.
Value
A boot_out
-class object
that can be used for the boot_out
argument of
cond_indirect_effects()
,
indirect_effect()
, and
cond_indirect()
for forming
bootstrap 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
It does nonparametric
bootstrapping to generate bootstrap
estimates of the parameter estimates
in a model fitted either by
lavaan::sem()
or by a sequence of
calls to lm()
. The stored estimates
can then be used by
cond_indirect_effects()
,
indirect_effect()
, and
cond_indirect()
to form
bootstrapping confidence intervals.
This approach removes the need to
repeat bootstrapping in each call to
cond_indirect_effects()
,
indirect_effect()
, and
cond_indirect()
. It also ensures
that the same set of bootstrap
samples is used in all subsequent
analysis.
It determines the type of the fit
object automatically and then calls
lm2boot_out()
, fit2boot_out()
, or
fit2boot_out_do_boot()
.
See also
lm2boot_out()
,
fit2boot_out()
, and
fit2boot_out_do_boot()
, which
implements the bootstrapping.
Examples
data(data_med_mod_ab1)
dat <- data_med_mod_ab1
lm_m <- lm(m ~ x*w + c1 + c2, dat)
lm_y <- lm(y ~ m*w + x + c1 + c2, dat)
lm_out <- lm2list(lm_m, lm_y)
# In real research, R should be 2000 or even 5000
# In real research, no need to set parallel and progress to FALSE
# Parallel processing is enabled by default and
# progress is displayed by default.
lm_boot_out <- do_boot(lm_out, R = 50, seed = 1234,
parallel = FALSE,
progress = FALSE)
wlevels <- mod_levels(w = "w", fit = lm_out)
wlevels
#> w
#> M+1.0SD 6.046455
#> Mean 4.990179
#> M-1.0SD 3.933902
out <- cond_indirect_effects(wlevels = wlevels,
x = "x",
y = "y",
m = "m",
fit = lm_out,
boot_ci = TRUE,
boot_out = lm_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.029 0.452 Sig 0.342 0.725
#> 2 Mean 4.990 0.024 -0.084 0.219 0.063 0.375
#> 3 M-1.0SD 3.934 -0.006 -0.066 0.108 -0.216 0.026
#>
#> - [CI.lo to CI.hi] are 95.0% percentile confidence intervals by
#> nonparametric bootstrapping with 50 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).
#>