5.4 Bootstrap

O método de bootstrap foi proposto por (Efron 1979). Dada uma amostra aleatória \(\boldsymbol{X}=(X_1, \ldots, X_n)\) de uma distribuição de probabilidades desconhecida \(F\), o método permite estimar a distribuição amostral de alguma variável aleatória \(R(\boldsymbol{X},F)\) com base nos dados observados \(\boldsymbol{x}\). Efron aplica o método em uma série de exemplos, tais como o cálculo da variância da mediana amostral, taxas de erro na análise discriminante linear e estimação de parâmetros de uma regressão.

De acordo com (Lehmann and Romano 2005, 671), ‘o teste via bootstrap pode ser visto com uma aproximação analítica do teste corrigido de Bartlett da razão de verossimilhança’. Assim, o bootstrap ‘captura automaticamente a correção de Bartlett’ com probabilidade de erro de rejeição igual a \(O(n^{-2})\), contra \(O(n^{-1})\) do teste de verossimilhança usual (Beran and Ducharme 1991).

(Efron and Hastie 2016) apresentam diversos exemplos, recomendando o ‘ambicioso’ pacote bootstrap (S et al. 2019). Há também o pacote boot (Canty and Ripley 2022) que implementa funções e conjuntos de dados de (Davison and Hinkley 1997).

Exemplo 5.10 Pode-se utilizar a função bootstrap::bootstrap para estimar um intervalo de confiança para a média, comparado com o intervalo de confiança assintótico conforme Seção IC para a média.

# gerando as re-amostras via bootstrap
library(bootstrap)
n <- 20
set.seed(4321); x <- rnorm(n, mean = 5, sd = 2)
theta <- function(x){mean(x)}
results <- bootstrap::bootstrap(x, 1000, theta)

# intervalo de confiança via bootstrap
m_boot <- mean(results$thetastar)
li_boot <- quantile(results$thetastar, .025)
ls_boot <- quantile(results$thetastar, .975)
c(li_boot, ls_boot)
##     2.5%    97.5% 
## 4.232709 5.778373
# intervalo de confiança assintótico
li_ass <- mean(x)-1.96*sqrt(var(x)/n)
ls_ass <- mean(x)+1.96*sqrt(var(x)/n)
c(li_ass, ls_ass)
## [1] 4.142245 5.833840
# gráficos
hist(results$thetastar, 25, main = 'Estimativas via bootstrap')
abline(v = m_boot, col = 'red')
abline(v = li_boot, col = 'blue')
abline(v = ls_boot, col = 'blue')

Referências

Beran, Rudolf, and Gilles R Ducharme. 1991. Asympotic Theory for Bootstrap Methods in Statistics. ?
Canty, Angelo, and B. D. Ripley. 2022. boot: Bootstrap R (S-Plus) Functions. https://cran.r-project.org/package=boot.
Davison, Anthony Christopher, and David Victor Hinkley. 1997. Bootstrap Methods and Their Application. Cambridge University Press. https://github.com/Johnnyboycurtis/TSI/blob/master/doc/Davison%2C%20Hinkley%20-Bootstrap%20Methods%20and%20their%20Application.pdf.
Efron, Bradley. 1979. “Bootstrap Methods: Another Look at the Jackknife.” Annals of Statistics 7 (1): 1–26. http://www.jstor.org/stable/2958830.
Efron, Bradley, and Trevor Hastie. 2016. Computer Age Statistical Inference: Algorithms, Evidence, and Data Science. Cambridge University Press. Cambridge, UK. https://hastie.su.domains/CASI/.
Lehmann, Erich L, and Joseph P Romano. 2005. Testing Statistical Hypotheses, 3rd Edition. Springer. https://link.springer.com/book/10.1007/0-387-27605-X.
S, StatLib, Robert Tibshirani, and Friedrich Leisch. 2019. Bootstrap: Functions for the Book "an Introduction to the Bootstrap". https://CRAN.R-project.org/package=bootstrap.