Skip to Content

ranef {lme4}

Extract the modes of the random effects


A generic function to extract the conditional modes of the random effects from a fitted model object. For linear mixed models the conditional modes of the random effects are also the conditional means.


## S3 method for class 'merMod':
ranef((object, condVar = FALSE,
    drop = FALSE, whichel = names(ans), postVar=FALSE, ...))


an object of a class of fitted models with random effects, typically an "merMod" object.
an optional logical argument indicating if the conditional variance-covariance matrices of the random effects should be added as an attribute.
an optional logical argument indicating components of the return value that would be data frames with a single column, usually a column called ‘(Intercept)’, should be returned as named vectors.
an optional character vector of names of grouping factors for which the random effects should be returned. Defaults to all the grouping factors.
a (deprecated) synonym for condVar
some methods for this generic function require additional arguments.


If grouping factor i has k levels and j random effects per level the ith component of the list returned by ranef is a data frame with k rows and j columns. If condVar is TRUE the "postVar" attribute is an array of dimension j by j by k. The kth face of this array is a positive definite symmetric j by j matrix. If there is only one grouping factor in the model the variance-covariance matrix for the entire random effects vector, conditional on the estimates of the model parameters and on the data will be block diagonal and this j by j matrix is the kth diagonal block. With multiple grouping factors the faces of the "postVar" attributes are still the diagonal blocks of this conditional variance-covariance matrix but the matrix itself is no longer block diagonal.


A list of data frames, one for each grouping factor for the random effects. The number of rows in the data frame is the number of levels of the grouping factor. The number of columns is the dimension of the random effect associated with each level of the factor.

If condVar is TRUE each of the data frames has an attribute called "postVar" which is a three-dimensional array with symmetric faces. (The name of this attribute is a historical artifact.)

When drop is TRUE any components that would be data frames of a single column are converted to named numeric vectors.


To produce a “caterpillar plot” of the random effects apply dotplot to the result of a call to ranef with condVar =   TRUE.


fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
fm2 <- lmer(Reaction ~ Days + (1|Subject) + (0+Days|Subject), sleepstudy)
fm3 <- lmer(diameter ~ (1|plate) + (1|sample), Penicillin)
str(rr1 <- ranef(fm1, condVar = TRUE))
dotplot(rr1)  ## default
## specify free scales in order to make Day effects more visible
dotplot(rr1,scales = list(x = list(relation = 'free')))[["Subject"]]
if(FALSE) { ##-- condVar=TRUE is not yet implemented for multiple terms -- FIXME
str(ranef(fm2, condVar = TRUE))
op <- options(digits = 4)
ranef(fm3, drop = TRUE)

Documentation reproduced from package lme4, version 1.0-6. License: GPL (>= 2)