[R] validate (rms package) using step instead of fastbw

Frank E Harrell Jr f.harrell at Vanderbilt.Edu
Fri Feb 12 15:13:54 CET 2010

Ramon Diaz-Uriarte wrote:
> Dear All,
> For logistic regression models: is it possible to use validate (rms
> package) to compute bias-corrected AUC, but have variable selection
> with AIC use step (or stepAIC, from MASS), instead of fastbw?
> More details:
> I've been using the validate function (in the rms package, by Frank
> Harrell) to obtain, among other things, bootstrap bias-corrected
> estimates of the AUC, when variable selection is carried out (using
> AIC as criterion). validate calls predab.resample, which in turn calls
> fastbw (from the Design package, by Harrell). fastbw " Performs a
> slightly inefficient but numerically stable version of  fast backward
> elimination on factors, using a method based on Lawless and Singhal
> (1978). This method uses the fitted complete model (...)". However, I
> am finding that the models returned by fastbw are much smaller than
> those returned by stepAIC or step (a simple example is shown below),
> probably because of the approximation and using the complete model.
> I'd like to use step instead of fastbw. I think this can be done by
> hacking predab.resample in a couple of places but I am wondering if
> this is a bad idea (why?) or if I am reinventing the wheel.
> Best,
> R.
> P.S. Simple example of fastbw compared to step:
> library(MASS) ## for stepAIC and bwt data
> example(birthwt)
> library(rms)
> bwt.glm <- glm(low ~ ., family = binomial, data = bwt)
> bwt.lrm <- lrm(low ~ ., data = bwt)
> step(bwt.glm)
> ## same as stepAIC(bwt.glm)
> fastbw(bwt.lrm)

Hi Ramon,

By default fastbw uses type='residual' to compute test statistics on all 
deleted variables combined.  Use type='individual' to get the behavior 
in step.  In your example fastbw(..., type='ind') gives the same model 
as step() and comes surprisingly close to estimating the MLEs without 
refitting.  Of course you refit the reduced model to get MLEs.  Both 
true and approximate MLEs are biased by the variable selection so 
beware.  type= can be passed from calibrate or validate to fastbw.

Note that none of the statistics computed by step or fastbw were 
designed to be used with more than two completely pre-specified models. 
  Variable selection is hazardous both to inference and to prediction. 
There is no free lunch; we are torturing data to confess its own sins.


Frank E Harrell Jr   Professor and Chairman        School of Medicine
                      Department of Biostatistics   Vanderbilt University

More information about the R-help mailing list