So führen sie das Bootstrapping-Verfahren in R durch

Von Fabian
Kategorie: R
Lesezeit: 4 Minuten

Bootstrapping ist eine Methode, mit der der Standardfehler einer Statistik geschätzt und ein Konfidenzintervall für die Statistik erstellt werden kann.

Der grundlegende Prozess für das Bootstrapping ist wie folgt:

  • Nehmen Sie k wiederholte Proben mit Ersatz aus einem bestimmten Datensatz.
  • Berechnen Sie für jede Stichprobe die Statistik, an der Sie interessiert sind.
  • Dies führt zu k verschiedenen Schätzungen für eine bestimmte Statistik, mit denen Sie dann den Standardfehler der Statistik berechnen und ein Konfidenzintervall für die Statistik erstellen können.

Wir können Bootstrapping in R durchführen, indem wir die folgenden Funktionen aus der boot-Bibliothek verwenden:

1. Generieren Sie Bootstrap-Beispiele.

boot(data, statistic, r,…)

wo:

  • data: Ein Vektor, eine Matrix oder ein Dataframe
  • statistic: Eine Funktion, die die zu bootenden Statistiken erstellt
  • r: Anzahl der Bootstrap-Replikate

2. Generieren Sie ein Bootstrap-Konfidenzintervall.

boot.ci(bootobject, conf, type)

wo:

  • bootobject: Ein von der Funktion boot() zurückgegebenes Objekt
  • conf: Das zu berechnende Konfidenzintervall. Die Standardeinstellung ist 0,95
  • type: Art des zu berechnenden Konfidenzintervalls. Zu den Optionen gehören "Norm", "Basic", "Stud", "Perc", "Bca" und "All". Die Standardeinstellung ist "All".

Die folgenden Beispiele zeigen, wie diese Funktionen in der Praxis eingesetzt werden.

Beispiel 1: Booten Sie eine einzelne Statistik

Der folgende Code zeigt, wie der Standardfehler für dasR-Quadrat eines einfachen linearen Regressionsmodells berechnet wird:

set.seed(0)
library(boot)

# Definieren der Funktion zur Berechnung des R-Quadrats
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
}
# Bootstrapping mit 2000 Replikationen durchführen
reps <- boot(data=mtcars, statistic=rsq_function, R=2000, formula=mpg~disp)

# Ergebnisse des Boostrappings anzeigen
reps

ORDINARY NONPARAMETRIC BOOTSTRAP


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


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

Aus den Ergebnissen können wir sehen:

  • Das geschätzte R-Quadrat für dieses Regressionsmodell beträgt 0,7183433.
  • Der Standardfehler für diese Schätzung beträgt 0,06513426.

Wir können auch schnell die Verteilung der Bootstrap-Beispiele anzeigen:

plot(reps)

Histogramm der Bootstrap-Samples in R

Wir können auch den folgenden Code verwenden, um das 95%-Konfidenzintervall für das geschätzte R-Quadrat des Modells zu berechnen:

calculate adjusted bootstrap percentile (BCa) interval
#Angepasstes Bootstrap Percentil (BCa) Intervall berechnen
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

Aus der Ausgabe können wir ersehen, dass das 95% Bootstrap-Konfidenzintervall für die wahren R-Quadrat-Werte (.5350, .8188) beträgt.

Beispiel 2: Bootstrap Multiple Statistics

Der folgende Code zeigt, wie der Standardfehler für jeden Koeffizienten in einem multiplen linearen Regressionsmodell berechnet wird:

set.seed(0)
library(boot)

#Funktion zur Berechnung angepasster Regressionskoeffizienten definieren
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
}
#Bootstrapping mit 2000 Replikationen durchführen
reps <- boot(data=mtcars, statistic=coef_function, R=2000, formula=mpg~disp)

#Ergebnisse des Boostrappings anzeigen
reps

ORDINARY NONPARAMETRIC BOOTSTRAP


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


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

Aus den Ergebnissen können wir sehen:

  • Der geschätzte Koeffizient für den Achsenabschnitt des Modells beträgt 29,59985476 und der Standardfehler dieser Schätzung beträgt 1,49354577.
  • Der geschätzte Koeffizient für die Prädiktorvariable disp im Modell beträgt -0,04121512 und der Standardfehler dieser Schätzung beträgt 0,00527082.

Wir können auch schnell die Verteilung der Bootstrap-Beispiele anzeigen:

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

Bootstrapping in R

Wir können auch den folgenden Code verwenden, um die 95%-Konfidenzintervalle für jeden Koeffizienten zu berechnen:

#Angepasstes Bootstrap Percentil (BCa) Intervall berechnen
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

Aus der Ausgabe können wir ersehen, dass die 95% Bootstrap-Konfidenzintervalle für die Modellkoeffizienten wie folgt sind:

  • CI zum Abfangen: (26,78, 32,66)
  • CI für disp: (-.0520, -.0312)

Zusätzliche Ressourcen

So führen Sie eine einfache lineare Regression in R durch
So führen Sie eine mehrfache lineare Regression in R durch
Einführung in Konfidenzintervalle

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: