Learn R Programming

⚠️There's a newer version (1.11.0) of this package.Take me there.

R package emmeans: Estimated marginal means

Features

Estimated marginal means (EMMs, previously known as least-squares means in the context of traditional regression models) are derived by using a model to make predictions over a regular grid of predictor combinations (called a reference grid). These predictions may possibly be averaged (typically with equal weights) over one or more of the predictors. Such marginally-averaged predictions are useful for describing the results of fitting a model, particularly in presenting the effects of factors. The emmeans package can easily produce these results, as well as various graphs of them (interaction-style plots and side-by-side intervals).

  • Estimation and testing of pairwise comparisons of EMMs, and several other types of contrasts, are provided.

  • In rank-deficient models, the estimability of predictions is checked, to avoid outputting results that are not uniquely defined.

  • For models where continuous predictors interact with factors, the package's emtrends function works in terms of a reference grid of predicted slopes of trend lines for each factor combination.

  • Vignettes are provided on various aspects of EMMs and using the package. See the CRAN page.

  • We try to provide flexible (but pretty basic) graphics support for the emmGrid objects produced by the package. Also, support is provided for nested fixed effects.

  • Response transformations and link functions are supported via a type argument in many functions (e.g., type = "response" to back-transform results to the response scale). Also, a regrid() function is provided to reconstruct the object on any transformed scale that the user wishes.

  • Two-way support of the glht function in the multcomp package.

Model support

  • The package incorporates support for many types of models, including standard models fitted using lm, glm, and relatives, various mixed models, GEEs, survival models, count models, ordinal responses, zero-inflated models, and others. Provisions for some models include special modes for accessing different types of predictions; for example, with zero-inflated models, one may opt for the estimated response including zeros, just the linear predictor, or the zero model. For details, see vignette("models", package = "emmeans")

  • Various Bayesian models (carBayes, MCMCglmm, MCMCpack) are supported by way of creating a posterior sample of least-squares means or contrasts thereof, which may then be examined using tools such as in the coda package.

  • Package developers are encouraged to incorporate emmeans support for

their models by writing recover_data and emm_basis methods. See vignette("extending", package = "emmeans")

Versions and installation

  • CRAN The latest CRAN version may be found at https://CRAN.R-project.org/package=emmeans. Also at that site, formatted versions of this package's vignettes may be viewed.

  • GitHub To install the latest development version from GitHub, install the newest version (definitely 2.0 or higher) of the devtools package; then run

remotes::install_github("rvlenth/emmeans", dependencies = TRUE, build_opts = "")

### To install without vignettes (faster):
remotes::install_github("rvlenth/emmeans")

Note: If you are a Windows user, you should also first download and install the latest version of Rtools.

For the latest release notes on this development version, see the NEWS file

Interview with an erstwhile expert

In February, 2024, I interviewed ChatGPT (version 3.5) about the emmeans package. Some things it did better than others. Here's the conversation.

Supersession plan

The developer of emmeans continues to maintain and occasionally add new features. However, none of us is immortal; and neither is software. I have thought of trying to find a co-maintainer who could carry the ball once I am gone or lose interest, but the flip side of that is that the codebase is not getting less messy as time goes on -- why impose that on someone else? So my thought now is that if at some point, enough active R developers want the capabilities of emmeans but I am no longer in the picture, they should feel free to supersede it with some other package that does it better. All of the code is publicly available on GitHub, so just take what is useful and replace what is not.

Note: emmeans supersedes the package lsmeans. The latter is just a front end for emmeans, and in fact, the lsmeans() function itself is part of emmeans.

Copy Link

Version

Install

install.packages('emmeans')

Monthly Downloads

129,175

Version

1.10.1

License

GPL-2 | GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Russell Lenth

Last Published

April 6th, 2024

Functions in emmeans (1.10.1)

feedlot

Feedlot data
emmobj

Construct an emmGrid object from scratch
emmip

Interaction-style plots for estimated marginal means
emmeans

Estimated marginal means (Least-squares means)
emmeans-package

Estimated marginal means (aka Least-squares means)
emtrends

Estimated marginal means of linear trends
contrast-methods

Contrast families
fiber

Fiber data
emm_options

Set or change emmeans options
extending-emmeans

Support functions for model extensions
comb_facs

Manipulate factors in a reference grid
hpd.summary

Summarize an emmGrid from a Bayesian model
neuralgia

Neuralgia data
models

Models supported in emmeans
make.tran

Response-transformation extensions
as.mcmc.emmGrid

Support for MCMC-based estimation
mvcontrast

Multivariate contrasts
emm

Support for multcomp::glht
joint_tests

Compute joint tests of the terms in a model
nutrition

Nutrition data
oranges

Sales of oranges
pwpm

Pairwise P-value matrix (plus other statistics)
regrid

Reconstruct a reference grid with a new transformation or simulations
summary.emmGrid

Summaries, predictions, intervals, and tests for emmGrid objects
rbind.emmGrid

Combine or subset emmGrid objects
pwpp

Pairwise P-value plot
ref_grid

Create a reference grid from a fitted model
plot.emmGrid

Plot an emmGrid or summary_emm object
qdrg

Quick and dirty reference grid
pigs

Effects of dietary protein on free plasma leucine concentration in pigs
xtable.emmGrid

Using xtable for EMMs
ubds

Unbalanced dataset
lsmeans

Wrappers for alternative naming of EMMs
update.emmGrid

Update an emmGrid object
auto.noise

Auto Pollution Filter Noise
emm_example

Run or list additional examples
contrast

Contrasts and linear functions of EMMs
emm_list

The emm_list class
as.list.emmGrid

Convert to and from emmGrid objects
eff_size

Calculate effect sizes and confidence bounds thereof
emmGrid-class

The emmGrid class
cld.emmGrid

Compact letter displays
str.emmGrid

Miscellaneous methods for emmGrid objects
MOats

Oats data in multivariate form