plot.merMod {lme4}  R Documentation 
diagnostic plots for merMod fits
## S3 method for class 'merMod'
plot(x,
form = resid(., type = "pearson") ~ fitted(.), abline,
id = NULL, idLabels = NULL, grid, ...)
## S3 method for class 'merMod'
qqmath(x, data = NULL, id = NULL, idLabels = NULL, ...)
x 
a fitted [ng]lmer model 
form 
an optional formula specifying the desired
type of plot. Any variable present in the original data
frame used to obtain 
abline 
an optional numeric value, or numeric vector of length two. If given as a single value, a horizontal line will be added to the plot at that coordinate; else, if given as a vector, its values are used as the intercept and slope for a line added to the plot. If missing, no lines are added to the plot. 
id 
an optional numeric value, or onesided
formula. If given as a value, it is used as a
significance level for a twosided outlier test for the
standardized, or normalized residuals. Observations with
absolute standardized (normalized) residuals greater than
the 
idLabels 
an optional vector, or onesided formula.
If given as a vector, it is converted to character and
used to label the observations identified according to

data 
ignored: required for S3 method compatibility 
grid 
an optional logical value indicating whether
a grid should be added to plot. Default depends on the
type of lattice plot used: if 
... 
optional arguments passed to the lattice plot function. 
Diagnostic plots for the linear mixedeffects fit are
obtained. The form
argument gives considerable
flexibility in the type of plot specification. A
conditioning expression (on the right side of a 
operator) always implies that different panels are used
for each level of the conditioning factor, according to a
lattice display. If form
is a onesided formula,
histograms of the variable on the right hand side of the
formula, before a 
operator, are displayed (the
lattice function histogram
is used). If
form
is twosided and both its left and right hand
side variables are numeric, scatter plots are displayed
(the lattice function xyplot
is used). Finally, if
form
is twosided and its left had side variable
is a factor, boxplots of the right hand side variable by
the levels of the left hand side variable are displayed
(the lattice function bwplot
is used).
qqmath
produces a QQ plot of the residuals
(see qqmath.ranef.mer
for QQ plots of the
conditional mode values).
original version in nlme package by Jose Pinheiro and Douglas Bates.
influencePlot
in the car
package
data(Orthodont,package="nlme")
fm1 < lmer(distance ~ age + (ageSubject), data=Orthodont)
## standardized residuals versus fitted values by gender
plot(fm1, resid(., scaled=TRUE) ~ fitted(.)  Sex, abline = 0)
## boxplots of residuals by Subject
plot(fm1, Subject ~ resid(., scaled=TRUE))
## observed versus fitted values by Subject
plot(fm1, distance ~ fitted(.)  Subject, abline = c(0,1))
## residuals by age, separated by Subject
plot(fm1, resid(., scaled=TRUE) ~ age  Sex, abline = 0)
## scalelocation plot, with red smoothed line
scale_loc_plot < function(m, line.col = "red", line.lty = 1,
line.lwd = 2) {
plot(fm1, sqrt(abs(resid(.))) ~ fitted(.),
type = c("p", "smooth"),
par.settings = list(plot.line =
list(alpha=1, col = line.col,
lty = line.lty, lwd = line.lwd)))
}
scale_loc_plot(fm1)
## QQ plot
lattice::qqmath(fm1, id=0.05)
ggp.there < "package:ggplot2" %in% search()
if (ggp.there  require("ggplot2")) {
## we can create the same plots using ggplot2 and the fortify() function
fm1F < fortify.merMod(fm1)
ggplot(fm1F, aes(.fitted, .resid)) + geom_point(colour="blue") +
facet_grid(. ~ Sex) + geom_hline(yintercept=0)
## note: Subjects are ordered by mean distance
ggplot(fm1F, aes(Subject,.resid)) + geom_boxplot() + coord_flip()
ggplot(fm1F, aes(.fitted,distance)) + geom_point(colour="blue") +
facet_wrap(~Subject) +geom_abline(intercept=0,slope=1)
ggplot(fm1F, aes(age,.resid)) + geom_point(colour="blue") + facet_grid(.~Sex) +
geom_hline(yintercept=0)+ geom_line(aes(group=Subject),alpha=0.4) +
geom_smooth(method="loess")
## (warnings about loess are due to having only 4 unique x values)
if(!ggp.there) detach("package:ggplot2")
}