

   BBoooottssttrraapp EEssttiimmaatteess ooff PPrreeddiiccttiioonn EErrrroorr

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

   AArrgguummeennttss::

          x: a matrix containing the predictor (regressor) val-
             ues. 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 predic-
             tors 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'

   VVaalluuee::

        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.

   RReeffeerreenncceess::

        Efron, B. (1983). Estimating the error rate of a pre-
        diction 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.

   EExxaammpplleess::

        # 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

