Intervallo di confidenza per la mediana


40

Devo trovare un IC al 95% sulla mediana e altri percentili. Non so come affrontarlo. Uso principalmente R come strumento di programmazione.

Risposte:


31

Ecco un'illustrazione su un set di dati R classico:

> 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 

che fornisce un intervallo di confidenza (73,5, 77) sulla mediana.

( Nota: versione corretta, grazie a John . Ho usato in precedenza, il che ha portato alla confusione!)103nrow


7
Mi sembra sospettosamente limitato. L'utilizzo delle funzioni da library(boot)appare per confermare ciò:> boot.ci (boot (x, function (x, i) median (x [i]), R = 1000)) Intervalli: Livello Normale Base 95% (74.42, 78.22) (75.00 , 78.49) Livello percentuale BCa 95% (73.51, 77.00) (73.00, 77.00)
onestop

2
prego Xi'an ... A parte questo, preferisco sempre impostare il valore N originale nella matrice perché è una costante tra le varie dimensioni di bootstrap che potrei creare. Quindi, in genere avrei detto ncol = lunghezza (x). Trovo che ci siano meno possibilità di errore in questo modo.
John,

6
Questo è solo un modo inefficiente per calcolare i quantili binomiali come nella risposta di onestop .
whuber

30

Un altro approccio si basa sui quantili della distribuzione binomiale.
per esempio:

> x=faithful$waiting
> sort(x)[qbinom(c(.025,.975), length(x), 0.5)]
[1] 73 77

4
Mi piace la semplicità di questo ... I risultati sono vicini al metodo bootstrap.
Dominic Comtois,

1
Questo è ovviamente molto più efficiente del bootstrap per il caso continuo, ma uno svantaggio è che non tiene conto dei ranghi legati. Ti capita di conoscere una soluzione alternativa per questo?
ali_m

15

Dai un'occhiata al ricampionamento del bootstrap. Cerca la guida R per la funzione di avvio. A seconda dei tuoi dati con il ricampionamento, puoi stimare gli intervalli di confidenza per qualsiasi cosa.


Essere d'accordo. Questo è l'approccio migliore. Secondo me, sottoutilizzato nelle scienze biomediche.
pmgjones,

10
Considera di esaminare il bootstrap smussato per stimare i quantili di popolazione poiché il boostrap convenzionale sembra avere problemi in quel caso - i riferimenti possono essere trovati in questo pdf . Se eri solo interessato alla mediana teorica, puoi utilizzare lo stimatore di Hodges-Lehman, come fornito, ad esempio, dalla wilcox.test(..., conf.int=TRUE)funzione di R.
Caracal,

4

E ci sono altri approcci: uno si basa sul test di somma di rango di Wilcoxon applicato per un campione con correzione della continuità. In R questo può essere fornito come:

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

E c'è l'IC di David Olive per la mediana discussa qui:

CI per la mediana


1

Il risultato basato sull'approccio qbinom non è corretto per piccoli campioni. Supponiamo che x abbia 10 componenti. Quindi qbinom (c (.025, .975), 10, .5) fornisce 2 e 8. L'intervallo risultante non tratta le statistiche dell'ordine nella coda inferiore simmetricamente a quelle della coda superiore; dovresti ottenere 2 e 9, oppure 3 e 8. La risposta giusta è 2 e 9. Puoi verificare il proc univariato in SAS. Cattura qui è che non hai bisogno di più di 0,025 probabilità sotto e sopra; il quantile inferiore non lo fa, dato che fornisce almeno .025 a o inferiore. Si viene salvati in fondo perché il conteggio che dovrebbe essere 1 dovrebbe essere mappato alla statistica del secondo ordine, contando 0, e quindi "off by one" annulla. Questa cancellazione fortuita non avviene in cima e quindi ottieni la risposta sbagliata qui. Il codice sort (x) [qbinom (c (.025, .975), lunghezza (x) ,. 5) + c (0,1)] quasi funziona, e .5 può essere sostituito da altri valori quantili per ottenere intervalli di confidenza per altri quantili, ma non sarà giusto quando esiste un tale che P [X <= a ] =. 025. Vedi, ad esempio, Higgins, Non parametrici.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.