residualPlots {car}R Documentation

Residual Plots and Curvature Tests for Linear Model Fits

Description

Plots the residuals versus each term in a mean function and versus fitted values. Also computes a curvature test for each of the plots by adding a quadratic term and testing the quadratic to be zero. This is Tukey's test for nonadditivity when plotting against fitted values.

Usage

### This is a generic function with only one required argument:

residualPlots (model, ...)

## Default S3 method:
residualPlots(model, terms = ~., layout = NULL, ask, 
                 main = "", fitted = TRUE, AsIs=TRUE, plot = TRUE, 
                 tests = TRUE, ...)

## S3 method for class 'lm'
residualPlots(model, ...)

## S3 method for class 'glm'
residualPlots(model, ...) 

### residualPlots calls residualPlot, so these arguments can be
### used with either function

residualPlot(model, ...)  

## Default S3 method:
residualPlot(model, variable = "fitted", type = "pearson", 
                 plot = TRUE,     
                 quadratic = TRUE, 
                 smooth = FALSE, span = 1/2, smooth.lwd=lwd, smooth.lty=lty,
                 smooth.col=col.lines, 
                 labels,
                 id.method = "y",
                 id.n = if(id.method[1]=="identify") Inf else 0,
                 id.cex=1, id.col=palette()[1],
                 col = palette()[1], col.lines = palette()[2], 
                 xlab, ylab, lwd = 1, lty=1, grid=TRUE, ...)   
                 
## S3 method for class 'lm'
residualPlot(model, ...) 
  
## S3 method for class 'glm'
residualPlot(model, variable = "fitted", type = "pearson", 
                 plot = TRUE, quadratic = FALSE, smooth = TRUE, ...)  

Arguments

model

A regression object.

terms

A one-sided formula that specifies a subset of the predictors. One residual plot is drawn for each specified. The default ~ . is to plot against all predictors. For example, the specification terms = ~ . - X3 would plot against all predictors except for X3. To get a plot against fitted values only, use the arguments terms = ~ 1, fitted=TRUE, Interactions are skipped. For polynomial terms, the plot is against the first-order variable (which may be centered and scaled depending on how the poly function is used). Plots against factors are boxplots. Plots against other matrix terms, like splines, use the result of predict(model), type="terms")[, variable]) as the horizontal axis; if the predict method doesn't permit this type, then matrix terms are skipped.

layout

If set to a value like c(1, 1) or c(4, 3), the layout of the graph will have this many rows and columns. If not set, the program will select an appropriate layout. If the number of graphs exceed nine, you must select the layout yourself, or you will get a maximum of nine per page. If layout=NA, the function does not set the layout and the user can use the par function to control the layout, for example to have plots from two models in the same graphics window.

ask

If TRUE, ask the user before drawing the next plot; if FALSE, don't ask.

main

Main title for the graphs. The default is main="" for no title.

fitted

If TRUE, the default, include the plot against fitted values.

AsIs

If FALSE, terms that use the “as-is” function I are skipped; if TRUE, the default, they are included.

plot

If TRUE, draw the plot(s).

tests

If TRUE, display the curvature tests.

...

Additional arguments passed to residualPlot and then to plot.

variable

Quoted variable name for the horizontal axis, or "fitted" to plot versus fitted values.

type

Type of residuals to be used. Pearson residuals are appropriate for lm objects since these are equivalent to ordinary residuals with ols and correctly weighted residuals with wls. Any quoted string that is an appropriate value of the type argument to residuals.lm or "rstudent" or "rstandard" for Studentized or standardized residuals.

quadratic

if TRUE, fits the quadratic regression of the vertical axis on the horizontal axis and displays a lack of fit test. Default is TRUE for lm and FALSE for glm.

smooth

if TRUE fits a loess smooth using the settings given below. Defaults to FALSE for lm objects and TRUE for glm objects.

span, smooth.lwd, smooth.lty, smooth.col

Should a lowess smooth be added to the figure? The span is the smoothing parameter for lowess, smooth.lwd, smooth.lty, and smooth.col are, respectively, the width, type, and color of the line drawn on the plot.

id.method,labels,id.n,id.cex,id.col

Arguments for the labelling of points. The default is id.n=0 for labeling no points. See showLabels for details of these arguments.

col

default color for points

col.lines

default color for lines

xlab

X-axis label. If not specified, a useful label is constructed by the function.

ylab

Y-axis label. If not specified, a useful label is constructed by the function.

lwd

line width for lines.

lty

line type for quadratic.

grid

If TRUE, the default, a light-gray background grid is put on the graph

Details

residualPlots draws one or more residuals plots depending on the value of the terms and fitted arguments. If terms = ~ ., the default, then a plot is produced of residuals versus each first-order term in the formula used to create the model. Interaction terms, spline terms, and polynomial terms of more than one predictor are skipped. In addition terms that use the “as-is” function, e.g., I(X^2), will also be skipped unless you set the argument AsIs=TRUE. A plot of residuals versus fitted values is also included unless fitted=FALSE.

In addition to plots, a table of curvature tests is displayed. For plots against a term in the model formula, say X1, the test displayed is the t-test for for I(X^2) in the fit of update, model, ~. + I(X^2)). Econometricians call this a specification test. For factors, the displayed plot is a boxplot, and no curvature test is computed. For fitted values, the test is Tukey's one-degree-of-freedom test for nonadditivity. You can suppress the tests with the argument tests=FALSE.

residualPlot, which is called by residualPlots, should be viewed as an internal function, and is included here to display its arguments, which can be used with residualPlots as well. The residualPlot function returns the curvature test as an invisible result.

residCurvTest computes the curvature test only. For any factors a boxplot will be drawn. For any polynomials, plots are against the linear term. Other non-standard predictors like B-splines are skipped.

Value

For lm objects, returns a data.frame with one row for each plot drawn, one column for the curvature test statistic, and a second column for the corresponding p-value. This function is used primarily for its side effect of drawing residual plots.

Author(s)

Sanford Weisberg, sandy@stat.umn.edu

References

Fox, J. and Weisberg, S. (2011) An R Companion to Applied Regression, Second Edition. Sage.

Weisberg, S. (2005) Applied Linear Regression, Third Edition, Wiley, Chapter 8

See Also

See Also lm, identify, showLabels

Examples

residualPlots(lm(longley))

[Package car version 2.0-12 Index]