Hoe te bootstrapping in r (met voorbeelden)


Bootstrapping is een methode die kan worden gebruikt om de standaardfout van een statistiek te schatten en een betrouwbaarheidsinterval voor de statistiek te genereren.

Het basisproces voor bootstrapping is als volgt:

  • Neem k replicaatmonsters met vervanging uit een gegeven dataset.
  • Bereken voor elk monster de betreffende statistiek.
  • Dit levert k verschillende schattingen op voor een bepaalde statistiek, die u vervolgens kunt gebruiken om de standaardfout van de statistiek te berekenen en een betrouwbaarheidsinterval voor de statistiek te creëren.

We kunnen in R opstarten met behulp van de volgende functies uit de bootstrapbibliotheek :

1. Genereer bootstrap-voorbeelden.

boot(gegevens, statistieken, R, …)

Goud:

  • gegevens: een vector, matrix of blok gegevens
  • statistiek: een functie die de te starten statistiek(en) produceert
  • A: Aantal bootstrap-herhalingen

2. Genereer een bootstrap-betrouwbaarheidsinterval.

boot.ci(opstartobject, conf, type)

Goud:

  • bootobject: een object dat wordt geretourneerd door de functie boot().
  • conf: het betrouwbaarheidsinterval dat moet worden berekend. De standaardwaarde is 0,95
  • type: Type betrouwbaarheidsinterval dat moet worden berekend. Opties omvatten ’standaard‘, ‚basic‘, ’stud‘, ‚perc‘, ‚bca‘ en ‚all‘ – standaard is ‚all‘

De volgende voorbeelden laten zien hoe u deze functies in de praktijk kunt gebruiken.

Voorbeeld 1: start een enkele statistiek

De volgende code laat zien hoe u de standaardfout voor het R-kwadraat van een eenvoudig lineair regressiemodel kunt berekenen:

 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

Uit de resultaten kunnen we zien:

  • De geschatte R-kwadraat voor dit regressiemodel is 0,7183433 .
  • De standaardfout voor deze schatting is 0,06513426 .

We kunnen ook snel de distributie van bootstrapped samples visualiseren:

 plot(reps)

Histogram van bootstrapped-monsters in R

We kunnen ook de volgende code gebruiken om het 95% betrouwbaarheidsinterval voor het geschatte R-kwadraat van het model te berekenen:

 #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

Uit het resultaat kunnen we zien dat het bootstrapped-betrouwbaarheidsinterval van 95% voor de echte R-kwadraatwaarden (0,5350, 0,8188) is.

Voorbeeld 2: meerdere statistieken opstarten

De volgende code laat zien hoe u de standaardfout voor elke coëfficiënt in een meervoudig lineair regressiemodel kunt berekenen:

 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

Uit de resultaten kunnen we zien:

  • De geschatte coëfficiënt voor het modelonderschepping is 29,59985476 en de standaardfout van deze schatting is 1,49354577 .
  • De geschatte coëfficiënt voor de voorspellende variabele disp in het model is -0,04121512 en de standaardfout van deze schatting is 0,00527082 .

We kunnen ook snel de distributie van bootstrapped samples visualiseren:

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

Opstarten in R

We kunnen ook de volgende code gebruiken om de 95%-betrouwbaarheidsintervallen voor elke coëfficiënt te berekenen:

 #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

Uit de resultaten kunnen we zien dat de bootstrapped 95%-betrouwbaarheidsintervallen voor de modelcoëfficiënten als volgt zijn:

  • IC voor onderschepping: (26.78, 32.66)
  • CI voor weergave : (-.0520, -.0312)

Aanvullende bronnen

Hoe eenvoudige lineaire regressie uit te voeren in R
Hoe meervoudige lineaire regressie uit te voeren in R
Inleiding tot betrouwbaarheidsintervallen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert