Las distribuciones muy sesgadas, como el log-normal, no dan como resultado intervalos de confianza de arranque precisos. Aquí hay un ejemplo que muestra que las áreas de cola izquierda y derecha están lejos del 0.025 ideal, sin importar qué método de arranque intente en R:
require(boot)
n <- 25
B <- 1000
nsim <- 1000
set.seed(1)
which <- c('basic', 'perc', 'norm', 'bca', 'stud')
mul <- 0; sdl <- 1.65 # on log scale
dist <- c('normal', 'lognormal')[2]
switch(dist, normal = {g <- function(x) x; mu <- mul},
lognormal = {g <- exp; mu <- exp(mul + sdl * sdl / 2)})
count <- matrix(0, nrow=length(which), ncol=2,
dimnames=list(which, c('lower', 'upper')))
stat <- function(x, j) {
## See http://www.psychology.mcmaster.ca/bennett/boot09/percentileT.pdf
x <- x[j]
m <- mean(x)
s <- sd(x)
n <- length(x)
sem <- s / sqrt(n)
m.var <- sem ^ 2
c(m, m.var)
}
for(i in 1 : nsim) {
if(i %% 100 == 0) cat(i, '')
x <- g(rnorm(n, mul, sdl))
b <- boot(x, stat, R=B)
ci <- boot.ci(b, type=which)
for(w in which) {
nam <- switch(w, perc='percent', norm='normal', basic='basic',
stud='student', bca='bca')
z <- rev(rev(ci[[nam]])[1:2])
count[w, 'lower'] <- count[w, 'lower'] + (z[1] > mu)
count[w, 'upper'] <- count[w, 'upper'] + (z[2] < mu)
}
}
cat('\n')
count / nsim
El resultado está abajo:
lower upper
basic 0.000 0.329
perc 0.003 0.257
norm 0.000 0.287
bca 0.015 0.185
stud 0.005 0.129
Para bootstraps individuales todavía no proporcionan una cobertura adecuada y precisa:
lower upper
basic 0.001 0.114
perc 0.005 0.093
norm 0.002 0.102
bca 0.017 0.067
stud 0.011 0.058
La probabilidad empírica también falla al proporcionar intervalos de confianza precisos al tomar muestras de la distribución lognormal.
¿Existe un enfoque de propósito general que no dependa de conocer la distribución por adelantado? ¿Alguien ha tratado de obtener intervalos de confianza para la media ajustando los datos a la distribución generalizada Tukey (esta distribución es muy flexible)? ¿Qué pasa con el uso de las bandas de confianza de Kolmogorov-Smirnov para el CDF? ¿Calcular la media en los límites superior e inferior del CDF sería terriblemente conservador? Me conformaría con un poco de conservadurismo si un método tiene una amplia aplicabilidad.
Para reformular los objetivos, estoy buscando un enfoque generalmente aplicable para obtener un intervalo de confianza para una población que signifique
- el intervalo es asimétrico si la distribución de datos sin procesar es asimétrica
- el intervalo tiene cobertura correcta en ambas colas (p. ej., probabilidad de error de 0.025 en ambas)
- El procedimiento no requiere que el analista especifique nada sobre la distribución subyacente o la transformación necesaria para hacer que la distribución sea simétrica
Tenga en cuenta que el teorema del límite central es irrelevante aquí; Tengo un tamaño de muestra pequeño fijo y el intervalo de confianza debe ser asimétrico para ser exacto en ambas colas. El paramétrica basadas en intervalo de confianza bajo un modelo lognormal con y todavía tiene mala cobertura (error de cola izquierda 0,012, 0,047 derecho cuando ambos deben ser 0,025).μ = 0 , σ = 1.65 n = 20000
Al seguir pensando en esto, hay dos formas amplias de conceptualizar el problema que me gustaría discutir.
- La media no es una cantidad que se presta a inferencia no paramétrica, al menos cuando se requiere exactitud de inferencia. La mediana de la muestra es significativa para cualquier distribución continua y tenemos un intervalo de confianza exacto simple para la mediana. En una muestra de tamaño de una distribución normal, el intervalo de confianza para la mediana es más largo que el intervalo de confianza basado en exacto para la media (ver código a continuación). Quizás este factor de 1,28 sea un precio razonable a pagar por la solidez y la completa libertad de distribución.1.28 × t
- Aunque ninguna rutina de arranque única proporcionará límites de confianza adecuadamente precisos para muestras de distribuciones extremadamente sesgadas, la carga de arranque doble puede mejorar significativamente la cobertura de confianza en ambas colas. Nankervis tiene algunos buenos resultados y proporciona un excelente algoritmo computacional. Pero ningún software que pude encontrar implementa esto.
Código R que ilustra 1. arriba:
## Exact CI for median from DescTools package SignTest.default
## See also ttp://www.stat.umn.edu/geyer/old03/5102/notes/rank.pdf,
## http://de.scribd.com/doc/75941305/Confidence-Interval-for-Median-Based-on-Sign-Test
cimed <- function(x, alpha=0.05, na.rm=FALSE) {
if(na.rm) x <- x[! is.na(x)]
n <- length(x)
k <- qbinom(p=alpha / 2, size=n, prob=0.5, lower.tail=TRUE)
## Actual CL: 1 - 2 * pbinom(k - 1, size=n, prob=0.5) >= 1 - alpha
sort(x)[c(k, n - k + 1)]
}
n <- 20
m <- 20000
cil <- cilt <- 0
z <- qt(0.975, n - 1)
for(i in 1 : m) {
x <- rnorm(n)
cil <- cil + diff(cimed(x))
cilt <- cilt + 2 * z * sqrt(var(x) / n)
}
cil <- cil / m
cilt <- cilt / m
c(cil, cilt, cilt / cil, cil / cilt)