Intervalo de confiança para mediana

40

Eu tenho que encontrar um IC de 95% na mediana e outros percentis. Não sei como abordar isso. Eu uso principalmente R como uma ferramenta de programação.

Dominic Comtois
fonte

Respostas:

31

Aqui está uma ilustração em um conjunto de dados R clássico:

> 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 

que fornece um intervalo de confiança (73,5, 77) na mediana.

( Nota: Versão corrigida, graças a John . Eu usei no anterior, o que levou à confusão!)103nrow

Xi'an
fonte
7
Parece suspeito para mim. O uso das funções from library(boot)aparece para confirmar:> boot.ci (boot (x, function (x, i) mediana (x [i]), R = 1000)) Intervalos: Nível Normal Básico Básico 95% (74.42, 78.22) (75.00 , 78,49) Percentil de nível BCa 95% (73,51, 77,00) (73,00, 77,00)
onestop
2
de nada Xi'an ... Como um aparte, eu sempre prefiro definir o valor N original na matriz, porque isso é uma constante nos vários tamanhos de inicialização que posso criar. Então, eu normalmente teria dito ncol = length (x). Acho que há menos chance de erro dessa maneira.
John John
6
Esta é apenas uma maneira ineficiente de calcular os quantis binomiais como na resposta da onestop .
whuber
30

Outra abordagem é baseada em quantis da distribuição binomial.
por exemplo:

> x=faithful$waiting
> sort(x)[qbinom(c(.025,.975), length(x), 0.5)]
[1] 73 77
uma parada
fonte
4
Eu gosto da simplicidade deste ... Os resultados estão próximos do método de inicialização.
Dominic Comtois
1
Obviamente, isso é muito mais eficiente do que o bootstrapping para o caso contínuo, mas uma desvantagem é que ele não é responsável por classificações vinculadas. Você conhece uma solução alternativa para isso?
27515 Ali_m em 29/06
15

Confira a reamostragem de autoinicialização. Procure na ajuda do R a função de inicialização. Dependendo dos seus dados com a reamostragem, você pode estimar os intervalos de confiança para praticamente qualquer coisa.

tharen
fonte
Aceita. Essa é a melhor abordagem. Subutilizado nas ciências biomédicas, na minha opinião.
precisa saber é
10
Considere analisar o bootstrap suavizado para estimar os quantis da população, pois o boostrap convencional parece ter problemas nesse caso - referências podem ser encontradas neste pdf . Se você estava apenas interessado na Mediana teórica, o estimador de Hodges-Lehman pode ser usado - como fornecido por, por exemplo, a wilcox.test(..., conf.int=TRUE)função de R.
21412 caracal
4

E existem outras abordagens: uma é baseada no teste de Wilcoxon Rank Sum aplicado a uma amostra com correção de continuidade. Em R, isso pode ser fornecido como:

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

E há o IC de David Olive para mediana discutido aqui:

IC para mediana

Germaniawerks
fonte
1

O resultado baseado na abordagem qbinom não está correto para amostras pequenas. Suponha que x tenha 10 componentes. Então qbinom (c (.025, .975), 10, .5) fornece 2 e 8. O intervalo resultante não trata as estatísticas de ordem na cauda inferior simetricamente com as da cauda superior; você deve obter 2 e 9, ou 3 e 8. A resposta certa é 2 e 9. Você pode verificar se há proc univariado no SAS. Pegue aqui é que você não precisa mais do que 0,025 de probabilidade abaixo e acima; o quantil inferior não faz isso, pois fornece pelo menos 0,025 em ou abaixo. Você é salvo na parte inferior porque a contagem que deve ser 1 deve ser mapeada para a estatística de segunda ordem, contando 0 e, portanto, o "desligado por um" é cancelado. Esse cancelamento fortuito não acontece no topo e, portanto, você obtém a resposta errada aqui. A classificação do código (x) [qbinom (c (.025, .975), comprimento (x) ,. 5) + c (0,1)] quase funciona, e 0,5 pode ser substituído por outros valores quantis para obter intervalos de confiança para outros quantis, mas não será correto quando existir um tal que P [X <= a ] = 025. Veja, por exemplo, Higgins, Statistical Nonparametric.

John Kolassa
fonte