Bootstrapping for regression models

Share:

Description

This function provides a simple front-end to the boot function in the package also called boot. Whereas boot is very general and therefore has many arguments, the Boot function has very few arguments, but should meet the needs of many users.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
## Default S3 method:
Boot(object, f=coef, labels=names(coef(object)),
                     R=999, method=c("case", "residual"))
                     
## S3 method for class 'lm'
Boot(object, f=coef, labels=names(coef(object)),
                     R=999, method=c("case", "residual"))

## S3 method for class 'glm'
Boot(object, f=coef, labels=names(coef(object)),
                     R=999, method=c("case", "residual"))

## S3 method for class 'nls'
Boot(object, f=coef, labels=names(coef(object)),
                     R=999, method=c("case", "residual"))

Arguments

object

A regression object of class lm, glm or nls. The function may work with other regression objects that support the update method and have a subset argument

f

A function whose one argument is the name of a regression object that will be applied to the updated regression object to compute the statistics of interest. The default is coef, to return to regression coefficient estimates. For example, f = function(obj) coef(obj)[1]/coef(obj[2] will bootstrap the ratio of the first and second coefficient estimates.

labels

Provides labels for the statistics computed by f. If this argument is of the wrong length, then generic labels will be generated.

R

Number of bootstrap samples. The number of bootstrap samples actually computed may be smaller than this value if either the fitting method is iterative, or if the rank of a fittle lm or glm model is different in the bootstrap replication than in the original data.

method

The bootstrap method, either “case” for resampling cases or “residuals” for a residual bootstrap. See the details below. The residual bootstrap is available only for lm and nls objects and will return an error for glm objects.

Details

Whereas the boot function is very general, Boot is very specific. It takes the information from a regression object and the choice of method, and creates a function that is passed as the statistic argument to boot. The argument R is also passed to boot. All other arguments to boot are kept at their default values.

The methods available for lm and nls objects are “case” and “residual”. The case bootstrap resamples from the joint distribution of the terms in the model and the response. The residual bootstrap fixes the fitted values from the original data, and creates bootstraps by adding a bootstrap sample of the residuals to the fitted values to get a bootstrap response. It is an implementation of Algorithm 6.3, page 271, of Davison and Hinkley (1997). For nls objects ordinary residuals are used in the resampling rather than the standardized residuals used in the lm method. The residual bootstrap for generalized linear models has several competing approaches, but none are without problems. If you want to do a residual bootstrap for a glm, you will need to write your own call to boot.

An attempt to model fit to a bootstrap sample may fail. In a lm or glm fit, the bootstrap sample could have a different rank from the original fit. In an nls fit, convergence may not be obtained for some bootstraps. In either case, NA are returned for the value of the function f. The summary methods handle the NAs appropriately.

Value

See boot for the returned value from this function. The car package includes additional generic functions summary, confint and hist that works with boot objects.

Author(s)

Sanford Weisberg, sandy@umn.edu.

References

Davison, A, and Hinkley, D. (1997) Bootstrap Methods and their Applications. Oxford: Oxford University Press.

Fox, J. and Weisberg, S. (2011) Companion to Applied Regression, Second Edition. Thousand Oaks: Sage.

Fox, J. and Weisberg, S. (2012) Bootstrapping, http://socserv.mcmaster.ca/jfox/Books/Companion/appendix/Appendix-Bootstrapping.pdf.

Weisberg, S. (2014) Applied Linear Regression, Fourth Edition, Wiley Wiley, Chapters 4 and 11.

See Also

Functions that work with Boot objects from the boot package are boot.array, boot.ci, plot.boot and empinf. Additional functions in the car package are summary.boot, confint.boot, and hist.boot.

Examples

1
2
3
4
5
6
7
8
9
m1 <- lm(Fertility ~ ., swiss)
betahat.boot <- Boot(m1, R=199) # 199 bootstrap samples--too small to be useful
summary(betahat.boot)  # default summary
confint(betahat.boot)
hist(betahat.boot)
# Bootstrap for the estimated residual standard deviation:
sigmahat.boot <- Boot(m1, R=199, f=sigmaHat, labels="sigmaHat")
summary(sigmahat.boot)
confint(sigmahat.boot)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.