Learn R Programming

EMC2: Extended Models of Choice 2:

The R package EMC2 provides tools to perform Bayesian hierarchical analyses of the following cognitive models: Diffusion Decision Model (DDM), Linear Ballistic Accumulator Model (LBA), Racing Diffusion Model (RDM), and Lognormal Racing Model (LNR). Specifically, the package provides functionality for specifying individual model designs, estimating the models, examining convergence as well as model fit through posterior prediction methods. It also includes various plotting functions and relative model comparison methods such as Bayes factors. In addition, users can specify their own likelihood function and perform non-hierarchical estimation. The package uses particle metropolis Markov chain Monte Carlo sampling. For hierarchical models, it uses efficient Gibbs sampling at the population level and supports a variety of covariance structures, extending the work of Gunawan and colleagues (2020).

Installation

To install the R package, and its dependencies you can use

install.packages("EMC2")

Or for the development version:

remotes::install_github("ampl-psych/EMC2",dependencies=TRUE)

Workflow Overview

Pictured below are the four phases of an EMC2cognitive model analysis with associated functions:.

 

 

For details, please see:

Stevenson, N., Donzallaz, M. C., Innes, R. J., Forstmann, B., Matzke, D., & Heathcote, A. (2024, January 30). EMC2: An R Package for cognitive models of choice. https://doi.org/10.31234/osf.io/2e4dq

Bug Reports, Contributing, and Feature Requests

If you come across any bugs, or have ideas for extensions of EMC2, you can add them as an issue here. If you would like to contribute to the package's code, please submit a pull request.

References

Stevenson, N., Donzallaz, M. C., Innes, R. J., Forstmann, B., Matzke, D., & Heathcote, A. (2024, January 30). EMC2: An R Package for cognitive models of choice. https://doi.org/10.31234/osf.io/2e4dq

Gunawan, D., Hawkins, G. E., Tran, M. N., Kohn, R., & Brown, S. D. (2020). New estimation approaches for the hierarchical Linear Ballistic Accumulator model. Journal of Mathematical Psychology, 96, 102368. https://doi.org/10.1016/j.jmp.2020.102368

Copy Link

Version

Install

install.packages('EMC2')

Monthly Downloads

396

Version

3.1.1

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Niek Stevenson

Last Published

April 7th, 2025

Functions in EMC2 (3.1.1)

design

Specify a Design and Model
hypothesis.emc

Within-Model Hypothesis Testing
contr.decreasing

Contrast Enforcing Decreasing Estimates
contr.bayes

Contrast Enforcing Equal Prior Variance on each Level
ess_summary.emc

Effective Sample Size
compare_subject

Information Criteria For Each Participant
init_chains

Initialize Chains
plot.emc.design

Plot method for emc.design objects
fit.emc

Model Estimation in EMC2
get_data.emc

Get Data
plot.emc

Plot Function for emc Objects
forstmann

Forstmann et al.'s Data
make_random_effects

Generate Subject-Level Parameters
mapped_pars

Parameter Mapping Back to the Design Factors
merge_chains

Merge Samples
model_averaging

Model Averaging
get_design.emc.prior

Get Design
make_data

Simulate Data
make_emc

Make an emc Object
plot_density

Plot Defective Densities
get_pars

Filter/Manipulate Parameters from emc Object
plot_pars

Plots Density for Parameters
get_prior.emc

Get Prior
plot_cdf

Plot Defective Cumulative Distribution Functions
plot.emc.prior

Plot a prior
plot_sbc_ecdf

Plot the ECDF Difference in SBC Ranks
plot_design.emc.design

Plot Design
plot_relations

Plot Group-Level Relations
profile_plot

Likelihood Profile Plots
contr.increasing

Contrast Enforcing Increasing Estimates
get_BayesFactor

Bayes Factors
recovery.emc

Recovery Plots
gd_summary.emc

Gelman-Rubin Statistic
prior

Specify Priors for the Chosen Model
run_emc

Fine-Tuned Model Estimation
run_bridge_sampling

Estimating Marginal Likelihoods Using WARP-III Bridge Sampling
parameters.emc.prior

Return Data Frame of Parameters
plot_sbc_hist

Plot the Histogram of the Observed Rank Statistics of SBC
samples_LNR

LNR Model of Forstmann Data (First 3 Subjects)
subset.emc

Shorten an emc Object
pairs_posterior

Plot Within-Chain Correlations
plot_stat

Plot Statistics on Data
predict.emc.prior

Generate Posterior/Prior Predictives
summary.emc.prior

Summary method for emc.prior objects
update2version

Update EMC Objects to the Current Version
prior_help

Prior Specification Information
run_sbc

Simulation-Based Calibration
sampled_pars

Get Model Parameters from a Design
summary.emc

Summary Statistics for emc Objects
summary.emc.design

Summary method for emc.design objects
check.emc

Convergence Checks for an emc Object
LBA

The Linear Ballistic Accumulator model
SDT

Gaussian Signal Detection Theory Model for Binary Responses
RDM

The Racing Diffusion Model
DDM

The Diffusion Decision Model
auto_thin.emc

Automatically Thin an emc Object
chain_n

MCMC Chain Iterations
DDMGNG

The GNG (go/nogo) Diffusion Decision Model
LNR

The Log-Normal Race Model
EMC2-package

EMC2: Bayesian Hierarchical Analysis of Cognitive Models of Choice
contr.anova

Anova Style Contrast Matrix
credible.emc

Posterior Credible Interval Tests
credint.emc.prior

Posterior Quantiles
compare

Information Criteria and Marginal Likelihoods