Provides the ability to perform "Marginal Mediation"--mediation
wherein the indirect and direct effects are in terms of the average marginal effects
(Bartus, 2005, < https://EconPapers.repec.org/RePEc:tsj:stataj:v:5:y:2005:i:3:p:309-329>).
The style of the average marginal effects stems from Thomas Leeper's work on the "margins" package.
This framework allows the use of categorical mediators and outcomes with little change in interpretation
from the continuous mediators/outcomes. See
MarginalMediation package provides the ability to perform
marginal mediation analysis. It provides a useful framework from
which to interpret the coefficients in a mediation analysis, especially
when the mediator(s) and/or outcome is binary or a count (other types of
outcomes will be added).
You can install it via:
The main function is
mma(...,ind_effects = c("apath-bpath"))
... consists of 2 or more model objects. The first is the
c' path model, while the others are the
a path models.
ind_effects is a vector of requested mediated paths. These
estimates are in terms of the average marginal effects using the
a x b
method of estimating indirect paths. Any number of these can be
included, although it is limited to the number of variables available in
Below is an example, where the theoretical backing of such a model is not very stable, but it is useful to show how to use the function and the output.
## Data for the examplelibrary(furniture)#> furniture 1.7.6: learn more at tysonbarrett.comdata(nhanes_2010)## The MarginalMediation packagelibrary(MarginalMediation)#> MarginalMediation 0.5.1: This is beta software.#> Please report any bugs ([email protected]).pathbc = glm(marijuana ~ home_meals + gender + age + asthma,data = nhanes_2010,family = "binomial")patha = glm(home_meals ~ gender + age + asthma,data = nhanes_2010,family = "gaussian")mma(pathbc, patha,ind_effects = c("genderFemale-home_meals","age-home_meals","asthmaNo-home_meals"),boot = 500)#>#> calculating a paths... b and c paths... Done.#> ┌───────────────────────────────┐#> │ Marginal Mediation Analysis │#> └───────────────────────────────┘#> A marginal mediation model with:#> 1 mediators#> 3 indirect effects#> 3 direct effects#> 500 bootstrapped samples#> 95% confidence interval#> n = 1417#>#> Formulas:#> ◌ marijuana ~ home_meals + gender + age + asthma#> ◌ home_meals ~ gender + age + asthma#>#> Unstandardized Effects#> ⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺#> ── Indirect Effects ──#> A-path B-path Indirect Lower Upper#> genderFemale-home_meals -1.34831 -0.00973 0.01312 0.00429 0.02562#> age-home_meals -0.05689 -0.00973 0.00055 0.00003 0.00139#> asthmaNo-home_meals -0.00428 -0.00973 0.00004 -0.00639 0.00672#>#> ── Direct Effects ──#> Direct Lower Upper#> genderFemale 0.10430 0.04813 0.15967#> age 0.00066 -0.00603 0.00848#> asthmaNo -0.00172 -0.06947 0.07061#> -----
The print method provides:
These are all average marginal effects, and are, therefore, in terms of the corresponding endogenous variable’s units.
This is currently beta but I am excited to provide an initial working release. Let me know if you find any bugs or want to discuss the method ([email protected]).
More will be done to
MarginalMediation as it is under development,
This is the initial release. The main function is
mma(), which performs the marginal mediation analysis. Other functions are mainly helper functions in interpreting and pulling information out of a
This is beta software, so please report any issues!