Direkt zum Inhalt
Urkunden
Datenmanagement in RDateneingabe in RGraphen in RR DokumentationR SchnittstelleStatistik in R

Bootstrapping in R

Nichtparametrisches Bootstrapping

Das boot-Paket bietet umfangreiche Möglichkeiten für Bootstrapping und verwandte Resampling-Methoden. Du kannst eine einzelne Statistik (z. B. den Median) oder einen Vektor (z. B. die Regressionsgewichte) booten. In diesem Abschnitt lernst du die Grundlagen des nichtparametrischen Bootstrappings kennen.

Die wichtigste Bootstrapping-Funktion ist boot( ) und hat das folgende Format:

bootobject <- boot(data= , statistic= , R=, ...) where

   
parameter Beschreibung
data Ein Vektor, eine Matrix oder ein Datenrahmen
Statistik Die Funktion sollte einen Indizes-Parameter enthalten, den die boot() -Funktion verwenden kann, um Fälle für jede Replikation auszuwählen (siehe Beispiele unten).
R Anzahl der Bootstrap-Wiederholungen
... Zusätzliche Parameter, die an die Funktion übergeben werden, die die Statistik von Interesse erstellt

boot( ) ruft die statistische Funktion R mal auf. Jedes Mal wird ein Satz zufälliger Indizes mit Ersetzung aus den ganzen Zahlen 1:nrow(data) erzeugt. Diese Indizes werden in der Statistikfunktion verwendet, um eine Stichprobe auszuwählen. Die Statistiken werden für die Stichprobe berechnet und die Ergebnisse werden im Boot-Objekt gesammelt. Die Struktur des Bootobjekts umfasst

   
Element Beschreibung
t0 Die beobachteten Werte der k-Statistik werden auf die ursprünglichen Daten angewendet.
t Eine R x k-Matrix, bei der jede Zeile ein Bootstrap-Replikat der k Statistiken ist.

Du kannst auf diese als bootobject$t0 und bootobject$t zugreifen.

Sobald du die Bootstrap-Stichproben erstellt hast, kannst du die Ergebnisse mit print(bootobject) und plot(bootobject) untersuchen. Wenn die Ergebnisse vernünftig aussehen, kannst du die Funktion boot.ci( ) verwenden, um Konfidenzintervalle für die Statistik(en) zu erhalten.

Das Format ist

boot.ci(bootobjekt, conf=, type= ) wobei

   
parameter Beschreibung
bootobject Das von der Boot-Funktion zurückgegebene Objekt
conf Das gewünschte Konfidenzintervall (Standard: conf=0,95)
Typ Der Typ des zurückgegebenen Konfidenzintervalls. Mögliche Werte sind "norm", "basic", "stud", "perc", "bca" und "all" (Standard: type="all")

Bootstrapping einer Einzelstatistik (k=1)

Das folgende Beispiel generiert das bootstrapped 95% Konfidenzintervall für R-Quadrat in der linearen Regression von Meilen pro Gallone (mpg) auf Fahrzeuggewicht (wt) und Hubraum (disp). Die Datenquelle ist mtcars. Das Bootstrapped-Konfidenzintervall basiert auf 1000 Wiederholungen.

# Bootstrap 95% CI for R-Squared
library(boot)
# function to obtain R-Squared from the data
rsq <- function(formula, data, indices)
{
  d <- data[indices,] # allows boot to select sample
  fit <- lm(formula, data=d)
  return(summary(fit)$r.square)
}
# bootstrapping with 1000 replications
results <- boot(data=mtcars, statistic=rsq,
   R=1000, formula=mpg~wt+disp)

# view results
results
plot(results)

# get 95% confidence interval
boot.ci(results, type="bca")

Bootstrap-Ergebnisse 

Bootstrapping mehrerer Statistiken (k>1)

Im obigen Beispiel liefert die Funktion rsq eine Zahl und boot.ci ein einzelnes Konfidenzintervall. Die Statistikfunktion, die du bereitstellst, kann auch einen Vektor zurückgeben. Im nächsten Beispiel erhalten wir den 95%-KI für die drei Regressionskoeffizienten des Modells (Achsenabschnitt, Fahrzeuggewicht, Hubraum). In diesem Fall fügen wir plot( ) und boot.ci( ) einen Indexparameter hinzu, der angibt, welche Spalte in bootobject$t analysiert werden soll.

# Bootstrap 95% CI for regression coefficients
library(boot)
# function to obtain regression weights

bs <- function(formula, data, indices)
{
  d <- data[indices,] # allows boot to select sample
  fit <- lm(formula, data=d)
  return(coef(fit))
}
# bootstrapping with 1000 replications
results <- boot(data=mtcars, statistic=bs,
   R=1000, formula=mpg~wt+disp)

# view results
results
plot(results, index=1) # intercept
plot(results, index=2) # wt
plot(results, index=3) # disp

# get 95% confidence intervals
boot.ci(results, type="bca", index=1) # intercept
boot.ci(results, type="bca", index=2) # wt
boot.ci(results, type="bca", index=3) # disp

Bootstrap abfangen bootstrap b1 bootstrap b2 

Weiter gehen

Die Funktion boot( ) kann sowohl nichtparametrisches als auch parametrisches Resampling erzeugen. Für den nichtparametrischen Bootstrap gibt es gewöhnliche, ausgewogene, antithetische und Permutationsverfahren. Für den nichtparametrischen Bootstrap wird eine geschichtete Wiederholungsstichprobe unterstützt. Es können auch Gewichte für das Importance Resampling angegeben werden.

Die Funktion boot.ci( ) nimmt ein Boot-Objekt und erzeugt 5 verschiedene Arten von zweiseitigen nichtparametrischen Konfidenzintervallen. Dazu gehören die Normalapproximation erster Ordnung, das Basis-Bootstrap-Intervall, das Studentized-Bootstrap-Intervall, das Bootstrap-Perzentil-Intervall und das angepasste Bootstrap-Perzentil-Intervall (BCa).

Weitere Informationen findest du in help(boot), help(boot.ci) und help(plot.boot).

Mehr lernen

Gute Informationsquellen sind Resampling Methods in R: The boot Package von Angelo Canty, Getting started with the boot package von Ajay Shah, Bootstrapping Regression Models vonJohn Fox und Bootstrap Methods and Their Applications von Davison und Hinkley.

Zum Üben

Probiere diese interaktive Übung mit dem Boot-Paket aus dem DataCamp-Kurs "Intro to Computational Finance with R" aus.

R Grundlagen lernen

Beherrsche die Grundlagen der Datenanalyse in R, einschließlich Vektoren, Listen und Datenrahmen, und übe R mit echten Datensätzen.
Beginne R kostenlos zu lernen