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")Bereitgestellt von
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)# dispBereitgestellt von
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).
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
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
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
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.
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.
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.