plot.lm {stats} R Documentation

## Plot Diagnostics for an lm Object

### Description

Four plots (selectable by `which`) are currently provided: a plot of residuals against fitted values, a Scale-Location plot of sqrt{| residuals |} against fitted values, a Normal Q-Q plot, and a plot of Cook's distances versus row labels.

### Usage

```## S3 method for class 'lm':
plot(x, which = 1:4,
caption = c("Residuals vs Fitted", "Normal Q-Q plot",
"Scale-Location plot", "Cook's distance plot"),
panel = points,
sub.caption = deparse(x\$call), main = "",
ask = prod(par("mfcol")) < length(which) && dev.interactive(),
...,
id.n = 3, labels.id = names(residuals(x)), cex.id = 0.75)
```

### Arguments

 `x` `lm` object, typically result of `lm` or `glm`. `which` If a subset of the plots is required, specify a subset of the numbers `1:4`. `caption` Captions to appear above the plots `panel` Panel function. A useful alternative to `points` is `panel.smooth`. `sub.caption` common title—above figures if there are multiple; used as `sub` (s.`title`) otherwise. `main` title to each plot—in addition to the above `caption`. `ask` logical; if `TRUE`, the user is asked before each plot, see `par(ask=.)`. `...` other parameters to be passed through to plotting functions. `id.n` number of points to be labelled in each plot, starting with the most extreme. `labels.id` vector of labels, from which the labels for extreme points will be chosen. `NULL` uses observation numbers. `cex.id` magnification of point labels.

### Details

`sub.caption`—by default the function call—is shown as a subtitle (under the x-axis title) on each plot when plots are on separate pages, or as a subtitle in the outer margin (if any) when there are multiple plots per page.

The “Scale-Location” plot, also called “Spread-Location” or “S-L” plot, takes the square root of the absolute residuals in order to diminish skewness (sqrt{| E |} is much less skewed than | E | for Gaussian zero-mean E).

This ‘S-L’ and the Q-Q plot use standardized residuals which have identical variance (under the hypothesis). They are given as R[i] / (s*sqrt(1 - h.ii)) where h.ii are the diagonal entries of the hat matrix, `influence()``\$hat`, see also `hat`.

### Author(s)

John Maindonald and Martin Maechler.

### References

Belsley, D. A., Kuh, E. and Welsch, R. E. (1980) Regression Diagnostics. New York: Wiley.

Cook, R. D. and Weisberg, S. (1982) Residuals and Influence in Regression. London: Chapman and Hall.

Hinkley, D. V. (1975) On power transformations to symmetry. Biometrika 62, 101–111.

McCullagh, P. and Nelder, J. A. (1989) Generalized Linear Models. London: Chapman and Hall.

`termplot`, `lm.influence`, `cooks.distance`.

### Examples

```## Analysis of the life-cycle savings data
## given in Belsley, Kuh and Welsch.
plot(lm.SR <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings))

## 4 plots on 1 page; allow room for printing model formula in outer margin:
par(mfrow = c(2, 2), oma = c(0, 0, 2, 0))
plot(lm.SR)
plot(lm.SR, id.n = NULL)               # no id's
plot(lm.SR, id.n = 5, labels.id = NULL)# 5 id numbers

## Fit a smooth curve, where applicable:
plot(lm.SR, panel = panel.smooth)
## Gives a smoother curve
plot(lm.SR, panel = function(x,y) panel.smooth(x, y, span = 1))

par(mfrow=c(2,1))# same oma as above
plot(lm.SR, which = 1:2, sub.caption = "Saving Rates, n=50, p=5")
```

[Package stats version 2.1.0 Index]