Learn R Programming

bootstrap (version 2019.6)

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
# NOT RUN {
# 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