leverages {india} | R Documentation |
Computes leverage measures from a fitted model object.
leverages(model, ...)
## S3 method for class 'lm'
leverages(model, infl = lm.influence(model, do.coef = FALSE), ...)
## S3 method for class 'ols'
leverages(model, ...)
## S3 method for class 'ridge'
leverages(model, ...)
## S3 method for class 'ols'
hatvalues(model, ...)
## S3 method for class 'ridge'
hatvalues(model, ...)
model |
|
infl |
influence structure as returned by |
... |
further arguments passed to or from other methods. |
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
.
This function never creates the prediction matrix and only obtains its diagonal elements from
the singular value decomposition of \bold{X}
.
Function hatvalues
only is a wrapper for function leverages
.
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. doi:10.1080/00401706.1988.10488370.
# 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)