Jak uruchomić bootstrap w r (z przykładami)


Metoda ładowania początkowego to metoda, której można użyć do oszacowania błędu standardowego dowolnej statystyki i ustalenia przedziału ufności dla tej statystyki.

Podstawowy proces ładowania początkowego jest następujący:

  • Pobierz k powtórzonych próbek z zamianą z danego zbioru danych.
  • Dla każdej próbki oblicz interesującą statystykę.
  • Daje to k różnych szacunków dla danej statystyki, które można następnie wykorzystać do obliczenia błędu standardowego statystyki i utworzenia przedziału ufności dla tej statystyki.

Możemy wykonać bootstrap w R, korzystając z następujących funkcji z biblioteki bootstrap :

1. Wygeneruj próbki bootstrap.

boot(dane, statystyki, R, …)

Złoto:

  • dane: wektor, macierz lub blok danych
  • statystyka: funkcja generująca statystykę, która ma zostać zainicjowana
  • Odp.: Liczba powtórzeń bootstrapu

2. Wygeneruj przedział ufności ładowania początkowego.

boot.ci (obiekt startowy, konf, typ)

Złoto:

  • bootobject: Obiekt zwracany przez funkcję boot().
  • conf: Przedział ufności do obliczenia. Wartość domyślna to 0,95
  • type: Typ przedziału ufności do obliczenia. Opcje obejmują „standard”, „podstawowy”, „stud”, „perc”, „bca” i „all” – domyślnie jest to „all”

Poniższe przykłady pokazują, jak wykorzystać te funkcje w praktyce.

Przykład 1: bootstrap pojedynczej statystyki

Poniższy kod pokazuje, jak obliczyć błąd standardowy dla kwadratu R prostego modelu regresji liniowej:

 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

Z wyników możemy zobaczyć:

  • Szacowany współczynnik R-kwadrat dla tego modelu regresji wynosi 0,7183433 .
  • Błąd standardowy tego oszacowania wynosi 0,06513426 .

Możemy również szybko wizualizować rozkład próbek ładowanych metodą ładowania początkowego:

 plot(reps)

Histogram próbek bootstrapowych w R

Możemy również użyć poniższego kodu, aby obliczyć 95% przedział ufności dla szacowanego kwadratu R modelu:

 #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

Z wyniku widzimy, że bootstrapowy 95% przedział ufności dla prawdziwych wartości R-kwadrat wynosi (0,5350, 0,8188).

Przykład 2: ładowanie wielu statystyk

Poniższy kod pokazuje, jak obliczyć błąd standardowy dla każdego współczynnika w modelu wielokrotnej regresji liniowej:

 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

Z wyników możemy zobaczyć:

  • Oszacowany współczynnik wyrazu wolnego modelu wynosi 29,59985476 , a błąd standardowy tego oszacowania wynosi 1,49354577 .
  • Oszacowany współczynnik dla zmiennej predykcyjnej disp w modelu wynosi -0,04121512 , a błąd standardowy tego oszacowania wynosi 0,00527082 .

Możemy również szybko wizualizować rozkład próbek ładowanych metodą bootstrap:

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

Bootstrapowanie w R

Możemy również użyć poniższego kodu do obliczenia 95% przedziałów ufności dla każdego współczynnika:

 #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

Z wyników widać, że bootstrapowe 95% przedziały ufności dla współczynników modelu są następujące:

  • IC dla przechwytywania: (26,78, 32,66)
  • CI dla disp : (-.0520, -.0312)

Dodatkowe zasoby

Jak wykonać prostą regresję liniową w R
Jak wykonać wielokrotną regresję liniową w R
Wprowadzenie do przedziałów ufności

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *