Skip to content
/ FRB Public

Fast and robust bootstrap for robust regression estimators

License

Notifications You must be signed in to change notification settings

msalibian/FRB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fast and Robust Bootstrap

Matias Salibian 2022-05-12

Fast and Robust Bootstrap

This package implements the Fast and Robust Bootstrap as proposed in Salibian-Barrera and Zamar (2002), and Salibian-Barrera, M., Van Aels, S. and Willems, G. (2008) for robust regression estimators (MM-estimators) computed with robustbase::lmrob.

To install it use the following commands (assuming that you have the devtools package from CRAN already installed):

devtools::install_github("msalibian/FRB")

To use it (after installation), simply call frb on an lmrob object as computed by robustbase::lmrob. Here’s an example:

library(robustbase)
library(FRB)
a <- lmrob(LNOx ~ LNOxEm + sqrtWS, data=NOxEmissions)
set.seed(123)
tmp <- frb(lmrob.object=a, nboot=1000, return.coef=FALSE)

If the argument return.coef is set to FALSE, then frb returns the estimated covariance matrix of the robust regression estimators. For example, the estimated standard errors for each parameter estimate are

sqrt(diag(tmp$var))
## [1] 0.054340731 0.007633753 0.013364467

We can compare them with the estimated standard errors given by the usual asyptotic approximation:

sqrt(diag(summary(a)$cov))
## (Intercept)      LNOxEm      sqrtWS 
## 0.054256788 0.007482346 0.013222502

If the argument return.coef is TRUE then the returned list has an element $coef that contains a matrix with nboot rows with a bootstrapped regression coefficient in each of them.

The argument return.indices indicates whether to return the matrix of the indices of the bootstrap samples.

The argument centered indicates whether the returned bootstrap regression coefficients should be centered (β̂* − β̂n) or not. For example:

# by default the bootstrapped estimators are centered
set.seed(123)
tmp <- frb(lmrob.object=a, nboot=1000, return.coef=TRUE)

# we now add the regression estimator to each bootstrapped one
tmp2 <- scale(tmp$coef, scale=FALSE, center=-coef(a))

# use the argument centered=FALSE to return the non-centered 
# bootstrapped estimators instead
set.seed(123)
tmp3 <- frb(lmrob.object=a, nboot=1000, return.coef=TRUE, centered=FALSE)

# and check that the results are the same
all.equal(tmp2, tmp3$coef)
## [1] TRUE

About

Fast and robust bootstrap for robust regression estimators

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published