Come eseguire il bootstrap in r (con esempi)


Il bootstrap è un metodo che può essere utilizzato per stimare l’errore standard di qualsiasi statistica e produrre un intervallo di confidenza per la statistica.

Il processo di base per il bootstrap è il seguente:

  • Prendi k campioni replicati con sostituzione da un dato set di dati.
  • Per ciascun campione, calcolare la statistica di interesse.
  • Ciò fornisce k stime diverse per una determinata statistica, che puoi quindi utilizzare per calcolare l’errore standard della statistica e creare un intervallo di confidenza per la statistica.

Possiamo eseguire il bootstrap in R utilizzando le seguenti funzioni dalla libreria bootstrap :

1. Genera campioni bootstrap.

boot(dati, statistiche, R, …)

Oro:

  • dati: un vettore, una matrice o un blocco di dati
  • statistica: una funzione che produce la/e statistica/e da avviare
  • A: Numero di ripetizioni di bootstrap

2. Generare un intervallo di confidenza bootstrap.

boot.ci(oggetto di avvio, conf, tipo)

Oro:

  • bootobject: un oggetto restituito dalla funzione boot()
  • conf: l’intervallo di confidenza da calcolare. Il valore predefinito è 0,95
  • type: tipo di intervallo di confidenza da calcolare. Le opzioni includono ‘standard’, ‘basic’, ‘stud’, ‘perc’, ‘bca’ e ‘all’ – il valore predefinito è ‘all’

I seguenti esempi mostrano come utilizzare queste funzioni nella pratica.

Esempio 1: bootstrap di una singola statistica

Il codice seguente mostra come calcolare l’errore standard per l’ R quadrato di un modello di regressione lineare semplice:

 set.seed(0)
library (boot)

#define function to calculate R-squared
rsq_function <- function (formula, data, indices) {
  d <- data[indices,] #allows boot to select sample
  fit <- lm(formula, data=d) #fit regression model
  return (summary(fit)$r.square) #return R-squared of model
}
#perform bootstrapping with 2000 replications
reps <- boot(data=mtcars, statistic=rsq_function, R=2000, formula=mpg~disp)

#view results of boostrapping
reps

ORDINARY NONPARAMETRIC BOOTSTRAP


Call:
boot(data = mtcars, statistic = rsq_function, R = 2000, formula = mpg ~ 
    available)


Bootstrap Statistics:
     original bias std. error
t1* 0.7183433 0.002164339 0.06513426

Dai risultati possiamo vedere:

  • L’R quadrato stimato per questo modello di regressione è 0,7183433 .
  • L’errore standard per questa stima è 0,06513426 .

Possiamo anche visualizzare rapidamente la distribuzione dei campioni sottoposti a bootstrap:

 plot(reps)

Istogramma dei campioni bootstrap in R

Possiamo anche utilizzare il seguente codice per calcolare l’intervallo di confidenza al 95% per l’R quadrato stimato del modello:

 #calculate adjusted bootstrap percentile (BCa) interval
boot.ci(reps, type=" bca ")

CALL: 
boot.ci(boot.out = reps, type = "bca")

Intervals: 
Level BCa          
95% (0.5350, 0.8188)  
Calculations and Intervals on Original Scale

Dal risultato, possiamo vedere che l’intervallo di confidenza bootstrap al 95% per i valori R quadrati reali è (0,5350, 0,8188).

Esempio 2: bootstrap di più statistiche

Il codice seguente mostra come calcolare l’errore standard per ciascun coefficiente in un modello di regressione lineare multipla:

 set.seed(0)
library (boot)

#define function to calculate fitted regression coefficients
coef_function <- function (formula, data, indices) {
  d <- data[indices,] #allows boot to select sample
  fit <- lm(formula, data=d) #fit regression model
  return (coef(fit)) #return coefficient estimates of model
}

#perform bootstrapping with 2000 replications
reps <- boot(data=mtcars, statistic=coef_function, R=2000, formula=mpg~disp)

#view results of boostrapping
reps

ORDINARY NONPARAMETRIC BOOTSTRAP


Call:
boot(data = mtcars, statistic = coef_function, R = 2000, formula = mpg ~ 
    available)


Bootstrap Statistics:
       original bias std. error
t1* 29.59985476 -5.058601e-02 1.49354577
t2* -0.04121512 6.549384e-05 0.00527082

Dai risultati possiamo vedere:

  • Il coefficiente stimato per l’intercetta del modello è 29,59985476 e l’errore standard di questa stima è 1,49354577 .
  • Il coefficiente stimato per la variabile predittiva disp nel modello è -0,04121512 e l’errore standard di questa stima è 0,00527082 .

Possiamo anche visualizzare rapidamente la distribuzione dei campioni sottoposti a bootstrap:

 plot(reps, index=1) #intercept of model
plot(reps, index=2) #disp predictor variable

Bootstrap in R

Possiamo anche utilizzare il seguente codice per calcolare gli intervalli di confidenza al 95% per ciascun coefficiente:

 #calculate adjusted bootstrap percentile (BCa) intervals
boot.ci(reps, type=" bca ", index=1) #intercept of model
boot.ci(reps, type=" bca ", index=2) #disp predictor variable

CALL: 
boot.ci(boot.out = reps, type = "bca", index = 1)

Intervals: 
Level BCa          
95% (26.78, 32.66)  
Calculations and Intervals on Original Scale
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 2000 bootstrap replicates

CALL: 
boot.ci(boot.out = reps, type = "bca", index = 2)

Intervals: 
Level BCa          
95% (-0.0520, -0.0312)  
Calculations and Intervals on Original Scale

Dai risultati, possiamo vedere che gli intervalli di confidenza bootstrap al 95% per i coefficienti del modello sono i seguenti:

  • IC per intercettazione: (26.78, 32.66)
  • CI per visualizzazione : (-.0520, -.0312)

Risorse addizionali

Come eseguire una regressione lineare semplice in R
Come eseguire la regressione lineare multipla in R
Introduzione agli intervalli di confidenza

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *