Learn R Programming

lme4 (version 1.1-35.1)

ranef: Extract the modes of the random effects

Description

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.

Usage

# S3 method for merMod
ranef (object, condVar = TRUE,
      drop = FALSE, whichel = names(ans), postVar = FALSE, ...)
# S3 method for ranef.mer
dotplot (x, data, main = TRUE, transf = I, level = 0.95, ...)
# S3 method for ranef.mer
qqmath (x, data, main = TRUE, level = 0.95, ...)
# S3 method for ranef.mer
as.data.frame (x, ...)

Value

  • From ranef: An object of class ranef.mer composed of 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".

    • If there is a single random-effects term for a given grouping factor, this attribute is a three-dimensional array with symmetric faces; each face contains the variance-covariance matrix for a particular level of the grouping factor.

    • If there is more than one random-effects term for a given grouping factor (e.g. (1|f) + (0+x|f)), this attribute is a list of arrays as described above, one for each term.

    (The name of this attribute is a historical artifact, and may be changed to condVar at some point in the future.) When drop is TRUE any components that would be data frames of a single column are converted to named numeric vectors.

  • From as.data.frame: This function converts the random effects to a "long format" data frame with columns

    grpvar

    grouping variable

    term

    random-effects term, e.g. “(Intercept)” or “Days”

    grp

    level of the grouping variable (e.g., which Subject)

    condval

    value of the conditional mean

    condsd

    conditional standard deviation

Arguments

object

an object of a class of fitted models with random effects, typically a merMod object.

condVar

a logical argument indicating if the conditional variance-covariance matrices of the random effects should be added as an attribute.

drop

should components of the return value that would be data frames with a single column, usually a column called ‘(Intercept)’, be returned as named vectors instead?

whichel

character vector of names of grouping factors for which the random effects should be returned.

postVar

a (deprecated) synonym for condVar

x

a random-effects object (of class ranef.mer) produced by ranef

main

include a main title, indicating the grouping factor, on each sub-plot?

transf

transformation for random effects: for example, exp for plotting parameters from a (generalized) logistic regression on the odds rather than log-odds scale

data

This argument is required by the dotplot and qqmath generic methods, but is not actually used.

level

confidence level for confidence intervals

...

some methods for these generic functions require additional arguments.

Details

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 (or a list of such arrays). 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; 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.

Examples

Run this code
library(lattice) ## for dotplot, qqmath
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)
ranef(fm1)
str(rr1 <- ranef(fm1))
dotplot(rr1)  ## default
qqmath(rr1)
## specify free scales in order to make Day effects more visible
dotplot(rr1,scales = list(x = list(relation = 'free')))[["Subject"]]
## plot options: ... can specify appearance of vertical lines with
## lty.v, col.line.v, lwd.v, etc..
dotplot(rr1, lty = 3, lty.v = 2, col.line.v = "purple",
        col = "red", col.line.h = "gray")
ranef(fm2)
op <- options(digits = 4)
ranef(fm3, drop = TRUE)
options(op)
## as.data.frame() provides RE's and conditional standard deviations:
str(dd <- as.data.frame(rr1))
if (require(ggplot2)) {
    ggplot(dd, aes(y=grp,x=condval)) +
        geom_point() + facet_wrap(~term,scales="free_x") +
        geom_errorbarh(aes(xmin=condval -2*condsd,
                           xmax=condval +2*condsd), height=0)
}

Run the code above in your browser using DataLab