README.md

Lifecycle: stable Project Status: Active - The project has reached a stable, usable state and is being actively developed. CRAN status CRAN: Release Date CRAN RStudio mirror downloads Code size Last Commit at Main R-CMD-check

(Version 0.2.4, updated on 2024-10-04, release history)

manymome

Functions for estimating indirect effects, conditional indirect effects, and conditional effects in a model with moderation, mediation, and/or moderated mediation fitted by structural equation modelling (SEM) or estimated by multiple regression. The package was introduced in:

What Can It Do?

Advantages

No need to define any parameters or similar code when fitting a model in lavaan::sem(). Just focus on fitting the model first. After a model has been selected, users can compute the effect for nearly any path, from nearly any variable, to nearly any other variables, conditional on nearly any moderators, and at any levels of the moderators. (See vignette("manymome") for details.) This is particularly convenient for multigroup models fitted by lavaan::sem(), which are supported in 0.1.14.2 and later versions (see this guide, for an illustration).

Supports structural equation models fitted by lavaan::sem() or by path models fitted by regression using lm(), although the focus of this package is on structural equation models. The interface of the main functions are nearly the same for both approaches.

No limit on the number of predictors, mediators, and outcome variables, other than those by lavaan::sem() and lm(). For multigroup models fitted by lavaan::sem(), there is no inherent limit on the number of groups, other than the limit due to `lavaan::sem(), if any (supported in 0.1.14.2 and later versions).

Can estimate standardized indirect effects and standardized conditional indirect effects without the need to standardize the variables. The bootstrap and Monte Carlo confidence intervals for standardized effects correctly take into account the sampling variation of the standardizers (the standard deviations of the predictor and the outcome variable) by recomputing them in each bootstrap sample or replication.

Supports datasets with missing data through lavaan::sem() with full information maximum likelihood (fiml).

In version 0.1.9.8 or later, it also supports missing data handled by multiple imputation if the models are fitted by semTools::sem.mi() or semTools::runMI() (see vignette("do_mc_lavaan_mi")).

Supports numeric and categorical moderators. It has a function (factor2var()) for the easy creation of dummy variables in lavaan::sem(), and can also capitalize on the native support of categorical moderators in lm().

Bootstrapping, which can be time consuming, can be conducted just once. The main functions for computing indirect effects and conditional indirect effects can be called as many times as needed without redoing bootstrapping because they can reuse pregenerated bootstrap estimates (see vignette("manymome") and vignette("do_boot")).

Supports indirect effects among latent variables for models fitted by lavaan::sem() (see vignette("med_lav")).

For multigroup models fitted by lavaan::sem(), it supports comparing the direct or indirect effects along any path between any two groups. That is, it uses the grouping variable as a moderator (illustrated here; supported in 0.1.14.2 and later versions).

Limitations

Despite the aforementioned advantages, the current version of manymome has the following limitations:

We would add more to this list (suggestions are welcomed by adding GitHub issues) so that users (and we) know when other tools should be used instead of manymome, or whether we can address these limitations in manymome in the future.

How To Use It?

A good starting point is the Get-Started article (vignette("manymome")).

There are also articles (vignettes) on special topics, such as how to use mod_levels() to set the levels of the moderators. More will be added.

Homepage

For more information on this package, please visit its GitHub page:

https://sfcheung.github.io/manymome/

Installation

The stable version at CRAN can be installed by install.packages():

install.packages("manymome")

The latest developmental-but-stable version at GitHub can be installed by remotes::install_github():

remotes::install_github("sfcheung/manymome")

Background

We developed the package stdmod in 2021 for moderated regression. We included a function (stdmod::stdmod_lavaan()) for standardized moderation effect in path models fitted by lavaan::sem(). However, in practice, path models nearly always included indirect effects and so moderated mediation is common in path models. Moreover, stdmod is intended for moderated regression, not for structural equation modeling. We thought perhaps we could develop a more general tool for models fitted by structural equation modelling based on the interface we used in stdmod::stdmod_lavaan(). In our own projects, we also need to estimate indirect effects in models frequently. Large sample sizes with missing data are also common to us, for which bootstrapping is slow even with parallel processing. Therefore, we developed manymome to address these needs.

Issues

If you have any suggestions and found any bugs or limitations, please feel feel to open a GitHub issue. Thanks.

https://github.com/sfcheung/manymome/issues



Try the manymome package in your browser

Any scripts or data that you put into this service are public.

manymome documentation built on Oct. 4, 2024, 5:10 p.m.