Validation of an Ordinary Linear Model
The validate
function when used on an object created by
ols
does resampling validation of a multiple linear regression
model, with or without backward step-down variable deletion. Uses
resampling to estimate the optimism in various measures of predictive
accuracy which include R^2, MSE (mean squared error with a
denominator of n), the g-index, and the intercept and slope
of an overall
calibration a + b * (predicted y). The "corrected"
slope can be thought of as shrinkage factor that takes into account
overfitting. validate.ols
can also be used when a model for a
continuous response is going to be applied to a binary response. A
Somers' D_{xy} for this case is computed for each resample by
dichotomizing y
. This can be used to obtain an ordinary receiver
operating characteristic curve area using the formula 0.5(D_{xy} +
1). The Nagelkerke-Maddala R^2 index for the dichotomized
y
is also given. See predab.resample
for the list of
resampling methods.
The LaTeX needspace package must be in effect to use the latex
method.
# fit <- fitting.function(formula=response ~ terms, x=TRUE, y=TRUE) ## S3 method for class 'ols' validate(fit, method="boot", B=40, bw=FALSE, rule="aic", type="residual", sls=0.05, aics=0, force=NULL, estimates=TRUE, pr=FALSE, u=NULL, rel=">", tolerance=1e-7, ...)
fit |
a fit derived by |
method,B,bw,rule,type,sls,aics,force,estimates,pr |
see
|
u |
If specifed, |
rel |
relationship for dichotomizing predicted |
tolerance |
tolerance for singularity; passed to |
... |
other arguments to pass to |
matrix with rows corresponding to R-square, MSE, g, intercept, slope, and optionally D_{xy} and R^2, and columns for the original index, resample estimates, indexes applied to whole or omitted sample using model derived from resample, average optimism, corrected index, and number of successful resamples.
prints a summary, and optionally statistics for each re-fit
Frank Harrell
Department of Biostatistics, Vanderbilt University
fh@fharrell.com
set.seed(1) x1 <- runif(200) x2 <- sample(0:3, 200, TRUE) x3 <- rnorm(200) distance <- (x1 + x2/3 + rnorm(200))^2 f <- ols(sqrt(distance) ~ rcs(x1,4) + scored(x2) + x3, x=TRUE, y=TRUE) #Validate full model fit (from all observations) but for x1 < .75 validate(f, B=20, subset=x1 < .75) # normally B=300 #Validate stepwise model with typical (not so good) stopping rule validate(f, B=20, bw=TRUE, rule="p", sls=.1, type="individual")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.