Intervalo de confianza para la mediana

40

Tengo que encontrar un IC del 95% en la mediana y otros percentiles. No sé cómo abordar esto. Principalmente uso R como herramienta de programación.

Dominic Comtois
fuente

Respuestas:

31

Aquí hay una ilustración de un conjunto de datos R clásico:

> x       = faithful$waiting
> bootmed = apply(matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4), 1, median)
> quantile(bootmed, c(.025, 0.975))
2.5% 97.5% 
 73.5    77 

lo que da un intervalo de confianza (73.5, 77) en la mediana.

( Nota: versión corregida, gracias a John . ¡Utilicé en el anterior, lo que llevó a la confusión!)103nrow

Xi'an
fuente
77
Parece sospechosamente estrecho para mí. El uso de las funciones de library(boot)parece confirmar esto:> boot.ci (boot (x, function (x, i) mediana (x [i]), R = 1000)) Intervalos: Nivel Normal Básico 95% (74.42, 78.22) (75.00 , 78.49) Nivel Percentil BCa 95% (73.51, 77.00) (73.00, 77.00)
día
2
De nada, Xi'an ... Por otro lado, siempre prefiero establecer el valor N original en la matriz porque es una constante en varios tamaños de bootstrap que podría hacer. Entonces, típicamente habría dicho ncol = length (x). Encuentro que hay menos posibilidades de error de esa manera.
John
66
Esta es solo una manera ineficiente de calcular los cuantiles binomiales como en la respuesta de onestop .
whuber
30

Otro enfoque se basa en cuantiles de la distribución binomial.
p.ej:

> x=faithful$waiting
> sort(x)[qbinom(c(.025,.975), length(x), 0.5)]
[1] 73 77
una parada
fuente
44
Me gusta la simplicidad de este ... Los resultados están cerca del método bootstrap.
Dominic Comtois
1
Obviamente, esto es mucho más eficiente que el bootstrapping para el caso continuo, pero una desventaja es que no tiene en cuenta los rangos vinculados. ¿Conoces una solución para esto?
ali_m
15

Echa un vistazo al remuestreo de bootstrap. Busque la ayuda de R para la función de arranque. Dependiendo de sus datos con el remuestreo, puede estimar los intervalos de confianza para casi cualquier cosa.

tharen
fuente
De acuerdo. Este es el mejor enfoque. Subutilizado en las ciencias biomédicas, en mi opinión.
pmgjones
10
Considere buscar en el bootstrap suavizado para estimar los cuantiles de población, ya que el boostrap convencional parece tener problemas en ese caso; las referencias se pueden encontrar en este pdf . Si solo estaba interesado en la mediana teórica, se puede usar el estimador de Hodges-Lehman, como lo proporciona, por ejemplo, la wilcox.test(..., conf.int=TRUE)función de R.
caracal
4

Y hay otros enfoques: uno se basa en la prueba Wilcoxon Rank Sum aplicada para una muestra con corrección de continuidad. En R esto se puede suministrar como:

wilcox.test(x,conf.level=0.95,alternative="two.sided",correct=TRUE)

Y aquí está el CI de David Olive para la mediana discutido aquí:

CI para mediana

Germaniawerks
fuente
1

El resultado basado en el enfoque qbinom no es correcto para muestras pequeñas. Supongamos que x tiene 10 componentes. Entonces qbinom (c (.025, .975), 10, .5) da 2 y 8. El intervalo resultante no trata las estadísticas de orden en la cola inferior simétricamente con las de la cola superior; debe obtener 2 y 9, o 3 y 8. La respuesta correcta es 2 y 9. Puede verificar el proceso univariante en SAS. Captura aquí es que no necesita más de .025 de probabilidad por debajo y por encima; el cuantil inferior no hace esto, ya que da al menos .025 en o por debajo. Se guarda en la parte inferior porque el recuento que debe ser 1 debe asignarse a la estadística de segundo orden, contando 0, por lo que se cancela "apagado por uno". Esta cancelación fortuita no ocurre en la parte superior, por lo que obtienes la respuesta incorrecta aquí. El código sort (x) [qbinom (c (.025, .975), length (x) ,. 5) + c (0,1)] casi funciona, y .5 puede reemplazarse por otros valores de cuantiles para obtener intervalos de confianza para otros cuantiles, pero no será correcto cuando exista un tal que P [X <= a ] =. 025. Ver, por ejemplo, Higgins, estadísticas no paramétricas.

John Kolassa
fuente