Słownik metodologiczny · Wnioskowanie statystyczne

Przedział bootstrapowy BCa – co poprawia w przedziale percentylowym?

Przedział BCa koryguje bootstrapowy przedział percentylowy o obciążenie i przyspieszenie. Pokazujemy wzór, rolę jackknife, przykład w R (boot.ci), opis do pracy i najczęstsze pułapki.

Strona główna / Słownik / Przedział bootstrapowy BCa
W skrócie: Przedział BCa (bias-corrected and accelerated) to bootstrapowy przedział ufności, który zamiast 2.5. i 97.5. centyla bierze centyle przesunięte o korektę obciążenia z0 i przyspieszenie a. Lepiej niż przedział percentylowy działa przy skośnych rozkładach oszacowań.

Co to jest przedział bootstrapowy BCa?

Przedział BCa (ang. bias-corrected and accelerated, przedział z korektą obciążenia i przyspieszeniem) to przedział ufności z bootstrapu, który poprawia przedział percentylowy dwiema korektami. Efron (1987) zaproponował go jako przedział, który sam uwzględnia transformacje i korekty obciążenia, bez wyprowadzania ich dla każdego zastosowania, i osiąga dokładność drugiego rzędu w wielu problemach.

Jak działa korekta BCa

Przedział percentylowy bierze 2.5. i 97.5. centyl rozkładu oszacowań z prób bootstrapowych. BCa bierze inne centyle:

α1 = Φ(z0 + (z0 + zα/2) / (1 − a(z0 + zα/2))),   analogicznie α2 z z1−α/2
  • z0 – korekta obciążenia: kwantyl rozkładu normalnego odpowiadający odsetkowi oszacowań bootstrapowych mniejszych od oszacowania z próby.
  • a – przyspieszenie: opisuje, jak szybko błąd standardowy zmienia się wraz z wartością parametru. Zwykle szacuje się je metodą jackknife, ze skośności oszacowań liczonych bez kolejnych obserwacji.

Gdy z0 = a = 0, BCa sprowadza się do przedziału percentylowego. Obliczenia krok po kroku opisują Efron i Tibshirani (1993).

Przykład

Długość pobytu w szpitalu 30 pacjentów (dane symulowane, rozkład prawoskośny) miała średnią 6.85 dnia (mediana 6.60, SD 4.33). Z 5000 prób bootstrapowych przedział percentylowy wyniósł [5.41, 8.46], a BCa [5.54, 8.68]. Korekty były dodatnie, z0 = 0.035 i a = 0.033, więc BCa wziął 3.8. i 98.5. centyl. Przedział przesunął się w stronę długiego prawego ogona.

Jak opisać w pracy

Średnia długość pobytu wyniosła 6.85 dnia, 95% CI [5.54, 8.68] (przedział bootstrapowy BCa, 5000 prób, pakiet boot w R).

Na co uważać

  • Liczba prób. BCa sięga do skrajnych centyli, więc potrzebuje tysięcy prób, nie setek. Gdy skorygowany centyl wypada poza zakres, boot.ci() ostrzega, że granicą jest skrajna statystyka porządkowa.
  • Niezależne obserwacje. Zwykły bootstrap losuje pojedyncze obserwacje. Przy danych zagnieżdżonych trzeba losować całe skupienia.
  • Nie naprawia próby. Korekta poprawia kształt przedziału, ale nie usuwa błędu doboru próby ani bardzo małej liczebności.

Przedziały BCa dla efektów pośrednich i parametrów modeli strukturalnych omawia hasło bootstrap w SEM.

Przykład reprodukowalny

Przedział BCa w R

Kod losuje 5000 prób bootstrapowych średniej z prawoskośnych danych, liczy przedział percentylowy i BCa, a potem odtwarza korekty z0 i a oraz granice BCa ręcznie.

Przedział BCa dla średniej długości pobytu

Dane wejściowe: dane symulowane z set.seed(3850): długość pobytu w szpitalu (dni) 30 pacjentów, rozkład logarytmiczno-normalny.

Co odczytać: granice w kolumnach Percentile i BCa, z0, a oraz skorygowane centyle i granice policzone ręcznie.

R
suppressPackageStartupMessages(library(boot))
set.seed(3850)
pobyt <- round(rlnorm(30, log(5), 0.8), 1)         # długość pobytu w szpitalu (dni), 30 pacjentów
srednia <- function(d, i) mean(d[i])
b <- boot(pobyt, srednia, R = 5000)                # 5000 prób bootstrapowych
round(c(srednia = mean(pobyt), mediana = median(pobyt), sd = sd(pobyt)), 2)
boot.ci(b, conf = 0.95, type = c("perc", "bca"))   # przedział percentylowy i BCa
z0 <- qnorm(mean(b$t < b$t0))                      # korekta obciążenia
theta_i <- sapply(seq_along(pobyt), function(i) mean(pobyt[-i]))   # jackknife
u <- mean(theta_i) - theta_i
a <- sum(u^3) / (6 * sum(u^2)^1.5)                 # przyspieszenie
round(c(z0 = z0, a = a), 4)
alfa <- pnorm(z0 + (z0 + qnorm(c(.025, .975))) / (1 - a * (z0 + qnorm(c(.025, .975)))))
granice <- quantile(b$t, alfa, names = FALSE)
round(c(centyl_d = alfa[1], centyl_g = alfa[2], dolna = granice[1], gorna = granice[2]), 3)  # BCa ręcznie
Wynik w R
srednia mediana      sd
   6.85    6.60    4.33
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 5000 bootstrap replicates

CALL :
boot.ci(boot.out = b, conf = 0.95, type = c("perc", "bca"))

Intervals :
Level     Percentile            BCa
95%   ( 5.413,  8.457 )   ( 5.537,  8.683 )
Calculations and Intervals on Original Scale
    z0      a
0.0346 0.0329
centyl_d centyl_g    dolna    gorna
   0.038    0.985    5.538    8.682

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet boot). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. boot (wersja 1.3-32): Canty, A., & Ripley, B. (2025). boot: Bootstrap functions (R package version 1.3-32) [Computer software]. https://doi.org/10.32614/CRAN.package.boot

Najczęstsze pytania

Czym przedział BCa różni się od przedziału percentylowego?

Przedział percentylowy bierze zawsze 2.5. i 97.5. centyl oszacowań bootstrapowych. BCa przesuwa te centyle o korektę obciążenia i przyspieszenie, więc lepiej oddaje skośność i obciążenie statystyki. Gdy obie korekty są równe zeru, przedziały są identyczne.

Ile prób bootstrapowych potrzeba do przedziału BCa?

Kilka tysięcy, na przykład 5000. Granice leżą w ogonach rozkładu bootstrapowego, a skorygowane centyle mogą być bardziej skrajne niż 2.5% i 97.5%, więc przy kilkuset próbach są niestabilne.

Jak policzyć przedział BCa w R?

W pakiecie boot: b <- boot(dane, statystyka, R = 5000), a potem boot.ci(b, type = "bca"). Funkcja statystyki musi przyjmować dane i wektor indeksów, np. function(d, i) mean(d[i]).

Powiązane hasła

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Efron, B. (1987). Better bootstrap confidence intervals. Journal of the American Statistical Association, 82(397), 171–185. https://doi.org/10.1080/01621459.1987.10478410
  2. Efron, B., & Tibshirani, R. J. (1993). An introduction to the bootstrap. Chapman & Hall.

Cytowania BibTeX

@article{efron1987better, author={Efron, Bradley}, title={{Better bootstrap confidence intervals}}, journal={Journal of the American Statistical Association}, year={1987}, volume={82}, number={397}, pages={171--185}, doi={10.1080/01621459.1987.10478410}}
@book{efron1993introduction, author={Efron, Bradley and Tibshirani, Robert J.}, title={{An introduction to the bootstrap}}, year={1993}, publisher={Chapman \& Hall}}
R