Stima dell'intervallo di confidenza binomiale: perché non è simmetrica?


30

Ho usato il seguente codice r per stimare gli intervalli di confidenza di una proporzione binomiale perché capisco che questo sostituisce un "calcolo di potenza" quando si progettano i ricevitori che utilizzano i disegni della curva caratteristica che cercano il rilevamento di malattie in una popolazione.

n è 150 e la malattia, a nostro avviso, è prevalente per il 25% nella popolazione. Ho calcolato i valori per il 75% di sensibilità e il 90% di specificità (perché è quello che le persone sembrano fare).

    binom.test(c(29,9), p=0.75, alternative=c("t"), conf.level=0.95)

    binom.test(c(100, 12), p=0.90, alternative=c("t"), conf.level=0.95)

Ho anche visitato questo sito:

http://statpages.org/confint.html

Che è una pagina Java che calcola gli intervalli di confidenza binomiale e fornisce la stessa risposta.

Ad ogni modo, dopo quel lungo set-up, voglio chiedermi perché gli intervalli di confidenza non sono simmetrici, ad es.

   95 percent confidence interval:
   0.5975876 0.8855583 

   sample estimate probability: 0.7631579 

Scusate se questa è una domanda stupida, ma ovunque guardo sembra suggerire che saranno simmetrici, e un mio collega sembra pensare che lo saranno anche loro.

Risposte:


20

Si ritiene che siano simmetrici perché abbastanza spesso viene utilizzata un'approssimazione normale. Questo funziona abbastanza bene nel caso in cui p sia intorno a 0,5. binom.testd'altra parte riporta intervalli "esatti" di Clopper-Pearson, che si basano sulla distribuzione F (vedi qui per le formule esatte di entrambi gli approcci). Se implementassimo l'intervallo Clopper-Pearson in R sarebbe qualcosa di simile (vedi nota ):

Clopper.Pearson <- function(x, n, conf.level){
    alpha <- (1 - conf.level) / 2
    QF.l <- qf(1 - alpha, 2*n - 2*x + 2, 2*x)
    QF.u <- qf(1 - alpha, 2*x + 2, 2*n - 2*x)

    ll <- if (x == 0){
          0
    } else { x / ( x + (n-x+1)*QF.l ) }

    uu <- if (x == 0){
          0
    } else { (x+1)*QF.u / ( n - x + (x+1)*QF.u ) }

    return(c(ll, uu))
}

Si vede sia nel collegamento che nell'implementazione che la formula per il limite superiore e inferiore è completamente diversa. L'unico caso di un intervallo di confidenza simmetrico è quando p = 0,5. Usando le formule dal link e tenendo conto di ciò in questo caso è facile ricavare come viene.n=2×x

Personalmente l'ho capito meglio guardando gli intervalli di confidenza basati su un approccio logistico. I dati binomiali sono generalmente modellati utilizzando una funzione di collegamento logit, definita come:

logit(x)=log(x1x)

Questa funzione di collegamento "mappa" il termine di errore in una regressione logistica a una distribuzione normale. Di conseguenza, gli intervalli di confidenza nel framework logistico sono simmetrici rispetto ai valori logit, proprio come nel classico framework di regressione lineare. La trasformazione del logit viene utilizzata esattamente per consentire di utilizzare l'intera teoria basata sulla normalità attorno alla regressione lineare.

Dopo aver effettuato la trasformazione inversa:

logit1(x)=ex1+ex

Ottieni di nuovo un intervallo asimmetrico. Ora questi intervalli di confidenza sono effettivamente distorti. La loro copertura non è quella che ti aspetteresti, specialmente ai confini della distribuzione binomiale. Tuttavia, a titolo illustrativo, mostrano perché è logico che una distribuzione binomiale abbia intervalli di confidenza asimmetrici.

Un esempio in R:

logit <- function(x){ log(x/(1-x)) }
inv.logit <- function(x){ exp(x)/(1+exp(x)) }
x <- c(0.2, 0.5, 0.8)
lx <- logit(x)
upper <- lx + 2
lower <- lx - 2

logxtab <- cbind(lx, upper, lower)
logxtab # the confidence intervals are symmetric by construction
xtab <- inv.logit(logxtab)
xtab # back transformation gives asymmetric confidence intervals

nota : infatti, R utilizza la distribuzione beta, ma questo è completamente equivalente e computazionalmente un po 'più efficiente. L'implementazione in R è quindi diversa da quella che mostro qui, ma dà esattamente lo stesso risultato.


2
Intendevi davvero dire che il logit "trasforma la distribuzione binomiale in una distribuzione normale" ??
whuber

@whuber: bella cattura della formula e bella cattura della formulazione. Praticamente no. Si assicura che gli errori in una regressione logistica seguano la distribuzione normale. Grazie per la correzione.
Joris Meys,

Solo una breve nota tecnica, la trasformazione "arcsine" è quella che ha una convergenza più veloce alla normalità rispetto alla trasformazione logistica. Impostare (doveXè il numero di "successi" eNil numero di prove) e puoi mostrare con il cosiddetto "metodo delta" che la varianza diYè approssimativamente costante (e indipendente daY, come dovrebbe essere nella distribuzione normale). Y=2πarcsinXNXNYY
Probislogic,

Il collegamento fornito per "probabilità esatte" è interrotto. Ne hai un altro?
S. Kolassa - Ripristina Monica l'

@StephanKolassa Puoi trovare le formule Clopper Pearson anche qui: en.wikipedia.org/wiki/…
Joris Meys,

24

Per capire perché non dovrebbe essere simmetrico, pensa alla situazione in cui e ottieni 9 successi in 10 prove. Poi p = 0,9 e il 95% CI per p è [0.554, 0.997]. Il limite superiore non può essere maggiore di 1 ovviamente, quindi la maggior parte dell'incertezza deve cadere a fianco di p .p=0.9p^=0.9pp^


9

p

(p^p)/p(1p)=±zα/2

Ad ogni modo, puoi ottenere tutti e tre in R con il seguente:

library(Hmisc)
binconf(29, 38, method = "asymptotic")
binconf(29, 38, method = "exact")
binconf(29, 38, method = "wilson")

Si noti che il metodo "wilson" è lo stesso intervallo di confidenza utilizzato da prop.test senza la correzione della continuità di Yates:

prop.test(29, 38, correct = FALSE)

Vedi qui per il manuale SPLUS + R gratuito di Laura Thompson che accompagna l'analisi categorica dei dati di Agresti in cui questi argomenti sono discussi in modo molto dettagliato.


1
(+1) È bello aver citato il libro di testo di Laura e aggiunto questo complemento di informazioni sugli IC di Wilson.
chl

2
Grazie. Vorrei sottolineare che l'intervallo di Wilson è discusso nell'articolo a cui fa riferimento @Joris.

9

Ci sono intervalli di confidenza simmetriche per la distribuzione binomiale: asimmetria non è costretto su di noi, nonostante tutte le ragioni già menzionate. Gli intervalli simmetrici sono generalmente considerati inferiori in questo

  1. Sebbene siano numericamente simmetrici, non sono simmetrici in probabilità : cioè le loro coperture a una coda differiscono l'una dall'altra. Questa - una conseguenza necessaria della possibile asimmetria della distribuzione binomiale - è il nocciolo della questione.

  2. Spesso un endpoint deve essere irrealistico (minore di 0 o maggiore di 1), come sottolinea @Rob Hyndman.

Detto questo, ho il sospetto che gli IC numericamente simmetrici possano avere alcune buone proprietà, come la tendenza ad essere più brevi di quelli probabilisticamente simmetrici in alcune circostanze.


p^=K/n

@cb Non seguo questo. Innanzitutto, un CI più corto non avrà necessariamente densità uguali a ciascuna estremità. Secondo, il commento su "non esiste" non ha senso per me: cosa significa "non esiste"?
whuber

1
CI più breve. Per calcolare il CI più corto per una data copertura, inizierei dalla massima densità e allargherei un breve passo verso il lato in cui la densità è maggiore. Lì ottengo la massima copertura di fiducia (per il breve passo che è). Ingrandisco ripetutamente ci fino a quando non ho l'area desiderata (copertura). Se i miei passi sono piccoli (infinitesimali) la densità su entrambi i lati sarà (circa) la stessa. Ho fatto un errore in questa strategia?
cbeleites supporta Monica il

pp^=4/5=0.8pp<70%

1
p=0.8k{3,4,5}n=5pnkpk=4n=5Pr(p|n=5,k=4), p[0,1]. This is not the binomial distribution Pr(k|n,p) but that of proportion p (I don't know its name). Please help me to understand why there is no density for this distribution?
cbeleites supports Monica

6

Binomial distribution is just not symmetric, yet this fact emerges especially for p near 0 or 1 and for small n; most people use it for p0.5 and so the confusion.


2

I know that it has been a while, but I thought that I would chime in here. Given n and p, it is simple to compute the probability of a particular number of successes directly using the binomial distribution. One can then examine the distribution to see that it is not symmetric. It will approach symmetry for large np and large n(1-p).

One can accumulate the probabilities in the tails to compute a particular CI. Given the discrete nature of the distribution, finding a particular probability in a tail (e.g., 2.5% for a 95% CI) will require interpolation between the number of successes. With this method, one can compute CIs directly without approximation (other than the required interpolation).

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.