Learn R Programming

india (version 0.1)

leverages: Leverages

Description

Computes leverage measures from a fitted model object.

Usage

leverages(model, ...)
  # S3 method for lm
leverages(model, infl = lm.influence(model, do.coef = FALSE), ...)
  # S3 method for ols
leverages(model, ...)
  # S3 method for ridge
leverages(model, ...)

# S3 method for ols hatvalues(model, ...) # S3 method for ridge hatvalues(model, ...)

Value

A vector containing the diagonal of the prediction (or ‘hat’) matrix.

For linear regression (i.e., for "lm" or "ols" objects) the prediction matrix assumes the form

$$\bold{H} = \bold{X}(\bold{X}^T\bold{X})^{-1}\bold{X}^T,$$

in which case, \(h_{ii} = \bold{x}_i^T(\bold{X}^T\bold{X})^{-1}\bold{x}_i\) for \(i=1,\dots,n\). Whereas for ridge regression, the prediction matrix is given by

$$\bold{H}(\lambda) = \bold{X}(\bold{X}^T\bold{X} + \lambda\bold{I})^{-1}\bold{X}^T,$$

where \(\lambda\) represents the ridge parameter. Thus, the diagonal elements of \(\bold{H}(\lambda)\), are \(h_{ii}(\lambda) = \bold{x}_i^T(\bold{X}^T\bold{X} + \lambda\bm{I})^{-1}\bold{x}_i\), \(i=1,\dots,n\).

Arguments

model

an R object, returned by lm, ols or ridge.

infl

influence structure as returned by lm.influence.

...

further arguments passed to or from other methods.

References

Chatterjee, S., Hadi, A.S. (1988). Sensivity Analysis in Linear Regression. Wiley, New York.

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

Walker, E., Birch, J.B. (1988). Influence measures in ridge regression. Technometrics 30, 221-227. tools:::Rd_expr_doi("10.1080/00401706.1988.10488370").

Examples

Run this code
# Leverages for linear regression
fm <- ols(stack.loss ~ ., data = stackloss)
lev <- leverages(fm)
cutoff <- 2 * mean(lev)
plot(lev, ylab = "Leverages", ylim = c(0,0.45))
abline(h = cutoff, lty = 2, lwd = 2, col = "red")
text(17, lev[17], label = as.character(17), pos = 3)

# Leverages for ridge regression
data(portland)
fm <- ridge(y ~ ., data = portland)
lev <- leverages(fm)
cutoff <- 2 * mean(lev)
plot(lev, ylab = "Leverages", ylim = c(0,0.7))
abline(h = cutoff, lty = 2, lwd = 2, col = "red")
text(10, lev[10], label = as.character(10), pos = 3)

Run the code above in your browser using DataLab