Learn R Programming

bootstrap (version 2015.2)

bootpred: Bootstrap Estimates of Prediction Error

Description

See Efron and Tibshirani (1993) for details on this function.

Usage

bootpred(x,y,nboot,theta.fit,theta.predict,err.meas,...)

Arguments

x
a matrix containing the predictor (regressor) values. Each row corresponds to an observation.
y
a vector containing the response values
nboot
the number of bootstrap replications
theta.fit
function to be cross-validated. Takes x and y as an argument. See example below.
theta.predict
function producing predicted values for theta.fit. Arguments are a matrix x of predictors and fit object produced by theta.fit. See example below.
err.meas
function specifying error measure for a single response y and prediction yhat. See examples below
...
any additional arguments to be passed to theta.fit

Value

list with the following components
app.err
the apparent error rate - that is, the mean value of err.meas when theta.fit is applied to x and y, and then used to predict y.
optim
the bootstrap estimate of optimism in app.err. A useful estimate of prediction error is app.err+optim
err.632
the ".632" bootstrap estimate of prediction error.
call
The deparsed call

References

Efron, B. (1983). Estimating the error rate of a prediction rule: improvements on cross-validation. J. Amer. Stat. Assoc, vol 78. pages 316-31. Efron, B. and Tibshirani, R. (1993) An Introduction to the Bootstrap. Chapman and Hall, New York, London.

Examples

Run this code
# bootstrap prediction error estimation in least squares
#  regression
   x <- rnorm(85)  
   y <- 2*x +.5*rnorm(85)                      
   theta.fit <- function(x,y){lsfit(x,y)}
   theta.predict <- function(fit,x){
               cbind(1,x)%*%fit$coef         
               }    
   sq.err <- function(y,yhat) { (y-yhat)^2}                   
   results <- bootpred(x,y,20,theta.fit,theta.predict,
     err.meas=sq.err)  
                                      
# for a classification problem, a standard choice 
# for err.meas would simply count up the
#  classification errors:
    miss.clas <- function(y,yhat){ 1*(yhat!=y)}
# with this specification,  bootpred estimates 
#  misclassification rate

Run the code above in your browser using DataLab