Fixando uma semente para obter sempre os mesmos resultados

set.seed(100)

Carregando o pacote boot

library(boot)

Criando uma função para calcular o R-quadrado de uma regressão linear

funcao_rsq <- function(formula, data, indices) {
  d <- data[indices,] 
  fit <- lm(formula, data=d) 
  return(summary(fit)$r.square) 
}

Função boot para rodar o boostrap e gerar 2000 regressões

reps <- boot(data=mtcars, statistic=funcao_rsq, R=2000, formula=mpg~disp)
reps
## 
## ORDINARY NONPARAMETRIC BOOTSTRAP
## 
## 
## Call:
## boot(data = mtcars, statistic = funcao_rsq, R = 2000, formula = mpg ~ 
##     disp)
## 
## 
## Bootstrap Statistics :
##      original      bias    std. error
## t1* 0.7183433 0.004693001  0.06363995

Gráfico dos resultados

plot(reps)

Intervalo de confiança de 95% para o R-quadrado

boot.ci(reps, type="bca")
## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 2000 bootstrap replicates
## 
## CALL : 
## boot.ci(boot.out = reps, type = "bca")
## 
## Intervals : 
## Level       BCa          
## 95%   ( 0.5425,  0.8157 )  
## Calculations and Intervals on Original Scale