R: Regression Diagnostics

influence.measures {base} | R Documentation

## Regression Diagnostics

### Description

This suite of functions can be used to compute some of the regression diagnostics discussed in Belsley, Kuh and Welsch (1980), and in Cook and Weisberg (1982).

### Usage

    influence.measures(lm.obj)

    rstandard(lm.obj,
              infl = lm.influence(lm.obj),
              res = weighted.residuals(lm.obj),
              sd = sqrt(deviance(lm.obj)/df.residual(lm.obj)))
    rstudent (lm.obj, infl = ..., res = ...)
    dffits   (lm.obj, infl = ..., res = ...)
    dfbetas  (lm.obj, infl = ...)
    covratio (lm.obj, infl = ..., res = ...)
    cooks.distance(lm.obj, infl = ..., res = ..., sd = ...)

    hat(x, intercept = TRUE)

### Arguments

`lm.obj` | the resulting object returned by `lm`.
`infl` | influence structure as returned by `lm.influence`.
`res` | (possibly weighted) residuals, with proper default.
`sd` | standard deviation to use, see default.
`x` | the X or design matrix.
`intercept` | should an intercept column be pre-prended to `x`?

### Details

The primary function is `influence.measures` which produces a class `"infl"` object tabular display showing the DFBETAS for each model variable, DFFITS, covariance ratios, Cook's distances and the diagonal elements of the hat matrix. Cases which are influential with respect to any of these measures are marked with an asterisk.

The functions `dfbetas`, `dffits`, `covratio` and `cooks.distance` provide direct access to the corresponding diagnostic quantities. Functions `rstandard` and `rstudent` give the standardized and Studentized residuals respectively. (These re-normalize the residuals to have unit variance, using an overall and leave-one-out measure of the error variance respectively.)

The optional `infl`, `res` and `sd` arguments are there to encourage the use of these direct access functions, in situations where, e.g., the underlying basic influence measures (from `lm.influence`) are already available.

Note that cases with `weights == 0` are dropped from all these functions, but that if a linear model has been fitted with `na.action = na.exclude`, suitable values are filled it for the cases excluded during fitting.

The function `hat()` exists mainly for S (version 2) compatibility.

### 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.

### See Also

`lm.influence`.

### Examples

    ## Analysis of the life-cycle savings data
    ## given in Belsley, Kuh and Welsch.
    data(LifeCycleSavings)
    lm.SR <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
    summary(inflm.SR <- influence.measures(lm.SR))
    inflm.SR
    which(apply(inflm.SR$is.inf, 1, any)) # which observations `are' influential
    dim(dfb <- dfbetas(lm.SR))            # the 1st columns of influence.measures
    all(dfb == inflm.SR$infmat[, 1:5])
    rstandard(lm.SR)
    rstudent(lm.SR)
    dffits(lm.SR)
    covratio(lm.SR)

    ## Huber's data [Atkinson 1985]
    xh <- c(-4:0, 10)
    yh <- c(2.48, .73, -.04, -1.44, -1.32, 0)
    summary(lmH <- lm(yh ~ xh))
    influence.measures(lmH)

[Package Contents]