Existen numerosas formas de calcular los CI de arranque y los valores p. El problema principal es que es imposible que el bootstrap genere datos bajo una hipótesis nula. La prueba de permutación es una alternativa viable basada en remuestreo para esto. Para usar una rutina de arranque adecuada, debe hacer algunas suposiciones sobre la distribución de muestreo de la estadística de prueba.
β∗0 0= β^- β^∗β∗0 0= β^∗- β^
bootstrap normal
Un enfoque es un bootstrap normal donde se toma la media y la desviación estándar de la distribución de bootstrap, se calcula la distribución de muestreo debajo de la nula cambiando la distribución y utilizando los percentiles normales de la distribución nula en el punto de la estimación en la muestra de arranque original . Este es un enfoque razonable cuando la distribución de bootstrap es normal, la inspección visual generalmente es suficiente aquí. Los resultados que utilizan este enfoque suelen ser muy similares a la estimación de errores robusta o basada en sándwich, que es robusta frente a los supuestos de heterocedasticidad y / o varianza de muestra finita. La suposición de una estadística de prueba normal es una condición más fuerte de los supuestos en la próxima prueba de arranque que discutiré.
bootstrap percentil
F∗0 02 × min ( F∗0 0( β^) , 1 - F∗0 0( β^) )
Bootstrap Studentizado
pags
Ejemplo de programación
Como ejemplo, usaré los city
datos en el paquete bootstrap. Los intervalos de confianza de bootstrap se calculan con este código:
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"))
y producir esta salida:
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
El IC del 95% para el bootstrap normal se obtiene calculando:
with(city.boot, 2*t0 - mean(t) + qnorm(c(0.025, 0.975)) %o% sqrt(var(t)[1,1]))
El valor p se obtiene así:
> with(city.boot, pnorm(abs((2*t0 - mean(t) - 1) / sqrt(var(t)[1,1])), lower.tail=F)*2)
[1] 0.0315
Lo que concuerda en que el IC normal del 95% no incluye el valor de la relación nula de 1.
Se obtiene el IC percentil (con algunas diferencias debido a los métodos para los lazos):
quantile(city.boot$t, c(0.025, 0.975))
Y el valor p para el percentil bootstrap es:
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])
Da una p de 0.035 que también concuerda con el intervalo de confianza en términos de exclusión de 1 del valor. En general, no podemos observar que, mientras que el ancho del IC del percentil es casi tan ancho como el IC normal y que el IC del percentil está más lejos de ser nulo, el IC del percentil debería proporcionar valores p más bajos. Esto se debe a que la forma de la distribución de muestreo subyacente al IC para el método de percentil no es normal.