Learn R Programming

The marginaleffects package for R and Python offers a single point of entry to easily interpret the results of over 100 classes of models, using a simple and consistent user interface.

This package comes with a free full-length online book, with extensive tutorials: https://marginaleffects.com

The package’s benefits include:

  • Powerful: It can compute and plot predictions; comparisons (contrasts, risk ratios, etc.); slopes; and conduct hypothesis and equivalence tests for over 100 different classes of models in R.
  • Simple: All functions share a simple and unified interface.
  • Documented: Each function is thoroughly documented with abundant examples. The Marginal Effects Zoo website includes 20,000+ words of vignettes and case studies.
  • Efficient: Some operations can be up to 1000 times faster and use 30 times less memory than with the margins package.
  • Valid: When possible, numerical results are checked against alternative software like Stata or other R packages.
  • Thin: The R package requires relatively few dependencies.
  • Standards-compliant: marginaleffects follows “tidy” principles and returns simple data frames that work with all standard R functions. The outputs are easy to program with and feed to other packages like ggplot2 or modelsummary.
  • Extensible: Adding support for new models is very easy, often requiring less than 10 lines of new code. Please submit feature requests on Github.
  • Active development: Bugs are fixed promptly.

To cite marginaleffects in publications use:

Arel-Bundock V, Greifer N, Heiss A (2024). “How to Interpret Statistical Models Using marginaleffects for R and Python.” Journal of Statistical Software, 111(9), 1-32. doi:10.18637/jss.v111.i09 https://doi.org/10.18637/jss.v111.i09.

A BibTeX entry for LaTeX users is

@Article{, title = {How to Interpret Statistical Models Using {marginaleffects} for {R} and {Python}}, author = {Vincent Arel-Bundock and Noah Greifer and Andrew Heiss}, journal = {Journal of Statistical Software}, year = {2024}, volume = {111}, number = {9}, pages = {1–32}, doi = {10.18637/jss.v111.i09}, }

Copy Link

Version

Install

install.packages('marginaleffects')

Monthly Downloads

21,335

Version

0.25.1

License

GPL (>= 3)

Maintainer

Vincent Arel-Bundock

Last Published

March 29th, 2025

Functions in marginaleffects (0.25.1)

get_model_matrix

Get a named model matrix
hypotheses

(Non-)Linear Tests for Null Hypotheses, Joint Hypotheses, Equivalence, Non Superiority, and Non Inferiority
plot_comparisons

Plot Conditional or Marginal Comparisons
inferences

(EXPERIMENTAL) Bootstrap, Conformal, and Simulation-Based Inference
plot_predictions

Plot Conditional or Marginal Predictions
get_varcov_args

Take a summary() style vcov argument and convert it to insight::get_varcov()
knit_print.marginaleffects

Print a marginaleffects object in knitr
get_predict

Get predicted values from a model object (internal function)
plot_slopes

Plot Conditional or Marginal Slopes
get_vcov

Get a named variance-covariance matrix from a model object
sanitize_model_specific.glimML

Method to raise model-specific warnings and errors
print.marginaleffects

Print marginaleffects objects
predictions

Predictions
slopes

Slopes (aka Partial derivatives, Marginal Effects, or Trends)
set_coef

Internal function to set coefficients
reexports

Objects exported from other packages
posterior_draws

alias to get_draws() keep forever for backward compatibility with JSS
get_dataset

Download and Read Datasets from marginaleffects or Rdatasets
expect_margins

tinytest helper
get_draws

Extract Posterior Draws or Bootstrap Resamples from marginaleffects Objects
datagrid

Data grids
comparisons

Comparisons Between Predictions Made With Different Regressor Values
get_coef

Get a named vector of coefficients from a model object
expect_slopes

tinytest helper
expect_predictions

tinytest helper
complete_levels

Create a data.frame with all factor or character levels
get_group_names

Get levels of the outcome variable in grouped or multivariate models