Generate Monte Carlo
estimates to be used by
cond_indirect_effects()
,
indirect_effect()
, and
cond_indirect()
,
Usage
do_mc(
fit,
R = 100,
seed = NULL,
parallel = TRUE,
ncores = max(parallel::detectCores(logical = FALSE) - 1, 1),
make_cluster_args = list(),
progress = TRUE
)
gen_mc_est(fit, R = 100, seed = NULL)
Arguments
- fit
The output of
lavaan::sem()
. It can also be alavaan.mi
object returned bysemTools::runMI()
or its wrapper, such assemTools::sem.mi()
. The output ofstats::lm()
is not supported.- R
The number of replications. Default is 100.
- seed
The seed for the generating Monte Carlo estimates. Default is
NULL
and seed is not set.- parallel
Not used. Kept for compatibility with
do_boot()
.- ncores
Not used. Kept for compatibility with
do_boot()
.- make_cluster_args
Not used. Kept for compatibility with
do_boot()
.- progress
Logical. Display progress or not. Default is
TRUE
.
Value
A mc_out
-class object
that can be used for the mc_out
argument of
cond_indirect_effects()
,
indirect_effect()
, and
cond_indirect()
for forming
Monte Carlo confidence intervals. The
object is a list with the number of
elements equal to the number of
Monte Carlo replications. Each element
is a
list of the parameter estimates and
sample variances and covariances of
the variables in each Monte Carlo
replication.
Details
It uses the parameter
estimates and their variance-covariance
matrix to generate Monte Carlo
estimates of the parameter estimates
in a model fitted by
lavaan::sem()
. The stored estimates
can then be used by
cond_indirect_effects()
,
indirect_effect()
, and
cond_indirect()
to form
Monte Carlo confidence intervals.
It also supports a model estimated
by multiple imputation using
semTools::runMI()
or its wrapper,
such as semTools::sem.mi()
.
The pooled estimates and their
variance-covariance matrix will be used
to generate the Monte Carlo estimates.
This approach removes the need to
repeat Monte Carlo simulation in
each call to
cond_indirect_effects()
,
indirect_effect()
, and
cond_indirect()
. It also ensures
that the same set of Monte Carlo
estimates is used in all subsequent
analysis.
Functions
do_mc()
: A general purpose function for creating Monte Carlo estimates to be reused by other functions. It returns amc_out
-class object.gen_mc_est()
: Generate Monte Carlo estimates and store them in theexternal
slot:external$manymome$mc
. For advanced users.
See also
fit2mc_out()
, which
implements the Monte Carlo simulation.
Examples
library(lavaan)
data(data_med_mod_ab1)
dat <- data_med_mod_ab1
mod <-
"
m ~ x + w + x:w + c1 + c2
y ~ m + w + m:w + x + c1 + c2
"
fit <- sem(mod, dat)
# In real research, R should be 5000 or even 10000
mc_out <- do_mc(fit, R = 100, seed = 1234)
#> Stage 1: Simulate estimates
#> Stage 2: Compute implied statistics
wlevels <- mod_levels(w = "w", fit = fit)
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 = fit,
mc_ci = TRUE,
mc_out = mc_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.036 0.518 Sig 0.342 0.725
#> 2 Mean 4.990 0.024 -0.056 0.105 0.063 0.375
#> 3 M-1.0SD 3.934 -0.006 -0.074 0.051 -0.216 0.026
#>
#> - [CI.lo to CI.hi] are 95.0% Monte Carlo confidence intervals with 100
#> replications.
#> - 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).
#>