r statistics-bootstrap

intervalos de confianza de arranque ajustados(BCa) con arranque paramétrico en el paquete de arranque



statistics-bootstrap (1)

Después de mirar la página boot.ci, decidí usar un objeto de inicio construido siguiendo las líneas de un ejemplo en el Capítulo 6 de Davison y Hinkley y ver si generaba los errores que observaste. Recibo una advertencia pero no errores.

require(boot) lmcoef <- function(data, i){ d <- data[i, ] d.reg <- lm(y~x, d) c(coef(d.reg)) } lmboot <- boot(d, lmcoef, R=999) m1 boot.ci(lmboot, index=2) # I am presuming that the interest is in the x-coefficient #---------------------------------- BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 999 bootstrap replicates CALL : boot.ci(boot.out = lmboot, index = 2) Intervals : Level Normal Basic 95% (-0.0210, 0.0261 ) (-0.0236, 0.0245 ) Level Percentile BCa 95% (-0.0171, 0.0309 ) (-0.0189, 0.0278 ) Calculations and Intervals on Original Scale Warning message: In boot.ci(lmboot, index = 2) : bootstrap variances needed for studentized intervals

Estoy intentando usar boot.ci del paquete de boot de R para calcular los intervalos de confianza del bootstrap corregidos por sesgo y sesgo desde un bootstrap paramétrico. A partir de la lectura de las páginas de manual y la experimentación, he llegado a la conclusión de que tengo que calcular las estimaciones de boot.ci y boot.ci a boot.ci , pero esto no se establece explícitamente en ninguna parte. No he podido encontrar otra documentación, aunque para ser justos, no he visto el libro original de Davison y Hinkley en el que se basa el código ...

Si ejecuto ingenuamente b1 <- boot(...,sim="parametric") y luego boot.ci(b1) , obtengo los influence values cannot be found from a parametric bootstrap error influence values cannot be found from a parametric bootstrap . Este error ocurre si y solo si especifico type="all" o type="bca" ; boot.ci(b1,type="bca") da el mismo error. Así lo hace empinf(b1) . La única forma en que puedo hacer que las cosas funcionen es calcular explícitamente las estimaciones de jackknife (usando empinf() con el argumento de data ) y boot.ci a boot.ci

Datos de construcción:

set.seed(101) d <- data.frame(x=1:20,y=runif(20)) m1 <- lm(y~x,data=d)

Oreja:

b1 <- boot(d$y, statistic=function(yb,...) { coef(update(m1,data=transform(d,y=yb))) }, R=1000, ran.gen=function(d,m) { unlist(simulate(m)) }, mle=m1, sim="parametric")

Bien hasta ahora

boot.ci(b1) boot.ci(b1,type="bca") empinf(b1)

Todos dan el error descrito anteriormente.

Esto funciona:

L <- empinf(data=d$y,type="jack", stype="i", statistic=function(y,f) { coef(update(m1,data=d[f,])) }) boot.ci(b1,type="bca",L=L)

¿Alguien sabe si esta es la forma en que se supone que debo hacerlo?

actualización : el autor original del paquete de boot respondió a un correo electrónico:

... estás en lo cierto de que el problema es que estás haciendo un bootstrap paramétrico. Los intervalos bca implementados en el arranque son intervalos no paramétricos y esto debería haberse expresado explícitamente en algún lugar. Las fórmulas para los intervalos bca paramétricos no son las mismas y dependen de los derivados de las probabilidades familiares menos favorables cuando existen parámetros molestos como en su caso. (Consulte las páginas 206-207 en Davison y Hinkley) empinf asume que la estadística se encuentra en una de las formas utilizadas para bootstrapping no paramétrico (lo que hizo en su ejemplo, llamada a empinf), pero su llamada original a boot (correctamente) tenía la estadística en una forma diferente apropiada para remuestreo paramétrico.

Ciertamente puede hacer lo que está haciendo, pero no estoy seguro de las propiedades teóricas de mezclar el muestreo paramétrico con la estimación de intervalos no paramétricos.