Esistono numerosi modi per calcolare gli elementi della configurazione e i valori p di bootstrap. Il problema principale è che è impossibile per il bootstrap generare dati con un'ipotesi nulla. Il test di permutazione è una valida alternativa basata sul ricampionamento a questo. Per utilizzare un bootstrap adeguato è necessario formulare alcune ipotesi sulla distribuzione campionaria della statistica test.
β*0= β^- β^*β*0= β^*- β^
bootstrap normale
Un approccio è un normale bootstrap in cui si prende la deviazione media e standard della distribuzione bootstrap, si calcola la distribuzione campionaria sotto il valore zero spostando la distribuzione e usando i percentili normali dalla distribuzione nulla nel punto della stima nel campione bootstrap originale . Questo è un approccio ragionevole quando la distribuzione bootstrap è normale, l'ispezione visiva di solito è sufficiente qui. I risultati che utilizzano questo approccio sono in genere molto vicini alla stima dell'errore basata su sandwich, che è robusta contro l'eteroscedasticità e / o le ipotesi di varianza del campione finito. L'assunzione di una normale statistica test è una condizione più forte delle ipotesi nel prossimo test bootstrap che discuterò.
bootstrap percentile
F*02 × min ( F*0( β^) , 1 - F*0( β^) )
Bootstrap studentizzato
p
Esempio di programmazione
Ad esempio, userò i city
dati nel pacchetto bootstrap. Gli intervalli di confidenza bootstrap sono calcolati con questo codice:
ratio <- function(d, w) sum(d$x * w)/sum(d$u * w)
city.boot <- boot(city, ratio, R = 999, stype = "w", sim = "ordinary")
boot.ci(city.boot, conf = c(0.90, 0.95),
type = c("norm", "basic", "perc", "bca"))
e produrre questo output:
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 999 bootstrap replicates
CALL :
boot.ci(boot.out = city.boot, conf = c(0.9, 0.95), type = c("norm",
"basic", "perc", "bca"))
Intervals :
Level Normal Basic
90% ( 1.111, 1.837 ) ( 1.030, 1.750 )
95% ( 1.042, 1.906 ) ( 0.895, 1.790 )
Level Percentile BCa
90% ( 1.291, 2.011 ) ( 1.292, 2.023 )
95% ( 1.251, 2.146 ) ( 1.255, 2.155 )
Calculations and Intervals on Original Scale
L'IC 95% per il normale bootstrap si ottiene calcolando:
with(city.boot, 2*t0 - mean(t) + qnorm(c(0.025, 0.975)) %o% sqrt(var(t)[1,1]))
Il valore p si ottiene così:
> with(city.boot, pnorm(abs((2*t0 - mean(t) - 1) / sqrt(var(t)[1,1])), lower.tail=F)*2)
[1] 0.0315
Il che concorda sul fatto che l'IC normale al 95% non include il valore del rapporto nullo di 1.
L'IC percentuale è ottenuto (con alcune differenze dovute ai metodi per i legami):
quantile(city.boot$t, c(0.025, 0.975))
E il valore p per il bootstrap percentile è:
cvs <- quantile(city.boot$t0 - city.boot$t + 1, c(0.025, 0.975))
mean(city.boot$t > cvs[1] & city.boot$t < cvs[2])
Fornisce un valore di 0,035 che concorda anche con l'intervallo di confidenza in termini di esclusione di 1 dal valore. Non possiamo in generale osservare che, mentre la larghezza dell'IC percentuale è quasi larga quanto l'IC normale e che l'IC percentuale è più nullo che l'IC percentuale dovrebbe fornire valori p inferiori. Questo perché la forma della distribuzione di campionamento alla base dell'IC per il metodo percentile non è normale.