Easy estimation of Bayesian multilevel mediation models with Stan.

**bmlm** is an R package providing convenient methods for Bayesian
estimation of multilevel mediation models using
Stan.

The package’s source code is hosted on GitHub. More information can be found on the bmlm’s website.

Please ensure you have the latest version of R installed. Windows users may need to install RTools (more information on the RStan website), OS X users may need to install XCode (more information).

To install the latest stable version of bmlm from CRAN, run

install.packages("bmlm")

Sometimes the stable version on CRAN is not the latest version of bmlm. bmlm is developed on GitHub, and users may obtain the latest (development) version from GitHub directly.

The latest development version of bmlm requires devtools for installation. If you don’t have the devtools package installed in R, first run this line:

install.packages("devtools")

Then proceed to install bmlm from GitHub:

devtools::install_github("mvuorre/bmlm", args = "--preclean")

Please contact the author of the package for questions and suggestions. I recommend creating a new issue on GitHub.

If you use this software, please cite it:

citation("bmlm")#>#> To cite package bmlm in publications, please use:#>#> Vuorre, M., (2017). bmlm: Bayesian Multilevel Mediation. R#> package version 1.3.4. https://cran.r-project.org/package=bmlm#>#> A BibTeX entry for LaTeX users is#>#> @Manual{,#> title = {bmlm: Bayesian Multilevel Mediation},#> author = {Matti Vuorre},#> year = {2017},#> url = {https://cran.r-project.org/package=bmlm},#> }

- Update to C++14, thanks to Ben Goodrich.

- Removed
`tab2doc()`

, package no longer needs archived ReporteRs package.

- Deprecate
`tab2doc()`

because required package ReporteRs is archived.

- Fix (harmless) constructor error message

- Minor cleaning of Stan code
- Fix typos in documentation

- Change the label '%me' to 'pme' (for proportion mediated effect) in output of mlm_path_plot(..., text = TRUE).

- Add options to
`mlm_spaghetti_plot()`

to allow jittering and adjusting size of the error bars.

`mlm_spaghetti_plot()`

now has argument`mx`

which can be set to`mx = "data"`

to plot the spaghetti plot of the M - Y relationship (b path) such that the X values are from data, and not fitted values from the X - M model (a path). The argument defaults to`mx = "fitted"`

, such that the X axis values of the M - Y spaghetti plot are fitted values.

- New function
`mlm_spaghetti_plot()`

for visualizing model-fitted values for paths a (X->M regression) and b (M->Y regression)

- Default priors are now $Normal(0, 1000)$ for regression coefficients, and $Cauchy(0, 50)$ for group-level SDs
`mlm_summary()`

now gives only population level parameters by default, and group-level parameters when`pars = "random"`

- Renamed the mediated effect parameter to
*me*to distinguish it from the product of*a*and*b*(similarly for group-level*u_me*) `mlm_path_plot()`

now draws a template if no model is entered (i.e.`template`

argument is deprecated)`mlm_path_plot()`

now by default also shows SDs of group-level effects. This behavior can be turned off by specifying`random = FALSE`

- The fitted model object doesn't contain the whole covariance matrix anymore, but now contains the group-level intercepts
- New example data set included in package:
`MEC2010`

- Posterior standard deviation is now referred to as SE in
`mlm_summary()`

Removed sigma_y from being modeled when binary_y = TRUE.

Removed posterior probabilities from default outputs.

Added type = "violin" as option for plotting coefficients with mlm_pars_plot().

Users may now change each individual regression parameter's prior, instead of classes of priors.

Users may now change the shape parameter of the LKJ prior.

Coefficient plots now reorder parameter estimates, if user has requested varying effects.

Path plot now by default does not scale the edges.

bmlm now uses pre-compiled C++ code for the Stan models, which eliminates the need to compile a model each time `mlm()`

is run. This significantly speeds up model estimation.

The Stan code used by `mlm()`

is now built from separate chunks, allowing more flexible and robust model development.

Initial release to CRAN.