Generate Monte Carlo
estimates from the output of
lavaan::sem()
.
Arguments
- fit
The fit object. This function only supports a lavaan::lavaan object. It can also be a
lavaan.mi
object returned bysemTools::runMI()
or its wrapper, such assemTools::sem.mi()
.- 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 indirect_effect()
,
cond_indirect_effects()
, and
related functions 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
This function is for
advanced users. do_mc()
is a
function users should try first
because do_mc()
has a general
interface for input-specific
functions like this one.
fit2mc_out()
can be used
to extract the stored Monte Carlo
estimates so that they can be reused
by indirect_effect()
,
cond_indirect_effects()
and related
functions to form Monte Carlo
confidence intervals for effects such
as indirect effects and conditional
indirect effects.
This approach removes the need to
repeat Monte Carlo simulation in each
call to
indirect_effect()
,
cond_indirect_effects()
, and
related functions. It also ensures
that the same set of Monte Carlo
estimates is used in all subsequent
analyses.
See also
do_mc()
, 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
"
fit <- sem(model = mod, data = dat, fixed.x = FALSE,
baseline = FALSE)
# In real research, R should be 5000 or even 10000.
fit <- gen_mc_est(fit, R = 100, seed = 453253)
fit_mc_out <- fit2mc_out(fit)
#> Stage 1: Simulate estimates
#> Stage 2: Compute implied statistics
out <- cond_indirect_effects(wlevels = "w",
x = "x",
y = "y",
m = "m",
fit = fit,
mc_ci = TRUE,
mc_out = fit_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.025 0.457 Sig 0.342 0.725
#> 2 Mean 4.990 0.024 -0.054 0.125 0.063 0.375
#> 3 M-1.0SD 3.934 -0.006 -0.054 0.040 -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).
#>