Intervalli di confidenza della massima verosimiglianza
L'approssimazione normale al campione di Bernoulli si basa sull'avere una dimensione del campione relativamente grande e proporzioni del campione lontane dalle code. La stima della massima verosimiglianza si concentra sulle probabilità trasformate nel log e questo fornisce intervalli non simmetrici ed efficienti per che dovrebbe essere usato invece.p
Definisci le probabilità del registro comeβ^0=log(p^/(1−p^))
Un 1- per è dato da:αβ0
CI(β0)α=β^0±Zα/21/(np^(1−p^)−−−−−−−−−−−√
E questo viene di nuovo trasformato in un intervallo (non simmetrico) per con:p
CI(p)α=1/(1+exp(−CI(β0)α)
Questo CI ha il vantaggio aggiuntivo che le proporzioni si trovano nell'intervallo tra 0 o 1 e che l'IC è sempre più stretto dell'intervallo normale pur essendo del livello corretto. Puoi ottenerlo facilmente in R specificando:
set.seed(123)
y <- rbinom(100, 1, 0.35)
plogis(confint(glm(y ~ 1, family=binomial)))
2.5 % 97.5 %
0.2795322 0.4670450
Intervalli di confidenza binomiali esatti
Nei piccoli campioni, l'approssimazione normale all'MLE - sebbene migliore dell'approssimazione normale alla proporzione del campione - potrebbe non essere affidabile. Va bene. può essere preso per seguire una densità binomiale . I limiti per possono essere trovati prendendo il 2,5 ° e il 97,5 ° percentile da questa distribuzione.Y=np^(n,p)p^
CIα=(F−1p^(0.025),F−1p^(0.975))
Raramente possibile a mano, un esatto intervallo di confidenza binomiale può essere ottenuto per usando metodi computazionali.p
qbinom(p = c(0.025, 0.975), size = length(y), prob = mean(y))/length(y)
[1] 0.28 0.47
Intervalli di confidenza imparziali imparziali
E se è esattamente 0 o 1, uno stimatore imparziale mediano può essere usato per ottenere stime di intervallo non singolari basate sulla funzione di probabilità imparziale mediana. Puoi banalmente prendere il limite inferiore del caso all-0 come 0 WLOG. Il limite superiore è qualsiasi proporzione che soddisfa:pp1−α/2
p1−α/2:P(Y=0)/2+P(Y>y)>0.975
Questa è anche una routine computazionale.
set.seed(12345)
y <- rbinom(100, 1, 0.01) ## all 0
cil <- 0
mupfun <- function(p) {
0.5*dbinom(0, 100, p) +
pbinom(1, 100, p, lower.tail = F) -
0.975
} ## for y=0 successes out of n=100 trials
ciu <- uniroot(mupfun, c(0, 1))$root
c(cil, ciu)
[1] 0.00000000 0.05357998 ## includes the 0.01 actual probability
Gli ultimi due metodi sono implementati nel epitools
pacchetto in R.