Questa risposta analizza il significato della citazione e offre i risultati di uno studio di simulazione per illustrarla e aiutare a capire cosa potrebbe cercare di dire. Lo studio può essere facilmente esteso da chiunque (con R
abilità rudimentali ) per esplorare altre procedure di intervallo di confidenza e altri modelli.
In questo lavoro sono emerse due questioni interessanti. Uno riguarda come valutare l'accuratezza di una procedura di intervallo di confidenza. L'impressione che si ottiene dalla solidità dipende da quello. Visualizzo due diverse misure di precisione in modo da poterle confrontare.
L'altro problema è che sebbene una procedura di intervallo di confidenza con scarsa confidenza possa essere solida, i limiti di confidenza corrispondenti potrebbero non essere affatto solidi. Gli intervalli tendono a funzionare bene perché gli errori che fanno ad una estremità spesso controbilanciano gli errori che fanno all'altra. In pratica, puoi essere abbastanza sicuro che circa la metà dei tuoi intervalli di confidenza al copre i loro parametri, ma il parametro reale potrebbe trovarsi costantemente vicino a una fine particolare di ogni intervallo, a seconda di come la realtà si discosta dalle ipotesi del tuo modello.50%
Robusto ha un significato standard nelle statistiche:
La robustezza implica generalmente insensibilità alle deviazioni dalle ipotesi che circondano un modello probabilistico sottostante.
(Hoaglin, Mosteller e Tukey, Understanding Robust and Exploratory Data Analysis . J. Wiley (1983), p. 2.)
Ciò è coerente con la citazione nella domanda. Per comprendere la citazione dobbiamo ancora conoscere lo scopo previsto di un intervallo di confidenza. A tal fine, rivediamo cosa ha scritto Gelman.
Preferisco intervalli dal 50% al 95% per 3 motivi:
Stabilità computazionale,
Valutazione più intuitiva (metà degli intervalli del 50% dovrebbe contenere il valore reale),
Una sensazione che nelle applicazioni è meglio avere un'idea di dove saranno i parametri e i valori previsti, non tentare una quasi irrealistica quasi certezza.
Poiché ottenere un senso dei valori previsti non è ciò a cui sono destinati gli intervalli di confidenza (CI), mi concentrerò sull'ottenere un senso dei valori dei parametri , che è ciò che fanno gli EC. Chiamiamo questi valori "target". Quindi, per definizione, un CI è destinato a coprire il suo obiettivo con una probabilità specificata (il suo livello di confidenza). Il raggiungimento dei tassi di copertura previsti è il criterio minimo per valutare la qualità di qualsiasi procedura di IC. (Inoltre, potremmo essere interessati alle larghezze tipiche degli elementi della configurazione. Per mantenere il post a una lunghezza ragionevole, ignorerò questo problema.)
Queste considerazioni ci invitano a studiare quanto un calcolo dell'intervallo di confidenza potrebbe trarci in inganno riguardo al valore del parametro target. La citazione potrebbe essere interpretata nel senso che suggerisce che gli elementi della configurazione a bassa confidenza potrebbero conservare la loro copertura anche quando i dati sono generati da un processo diverso dal modello. È qualcosa che possiamo testare. La procedura è:
Adotta un modello di probabilità che includa almeno un parametro. Quello classico è il campionamento da una distribuzione normale di media e varianza sconosciute.
Selezionare una procedura CI per uno o più parametri del modello. Un eccellente costruisce l'IC dalla media campionaria e dalla deviazione standard del campione, moltiplicando quest'ultima per un fattore dato da una distribuzione t di Student.
Applicare tale procedura a vari modelli diversi - non allontanandosi troppo da quello adottato - per valutare la sua copertura su una gamma di livelli di confidenza.
Ad esempio, ho fatto proprio questo. Ho permesso alla distribuzione sottostante di variare su un'ampia gamma, da quasi Bernoulli, a Uniform, a Normal, a Exponential e fino a Lognormal. Questi includono distribuzioni simmetriche (le prime tre) e fortemente distorte (le ultime due). Per ogni distribuzione ho generato 50.000 campioni di dimensione 12. Per ogni campione ho creato elementi di configurazione a due lati di livelli di confidenza tra il e il , che copre la maggior parte delle applicazioni.50%99.8%
Sorge ora un problema interessante: come dovremmo misurare quanto bene (o quanto male) sta eseguendo una procedura di CI? Un metodo comune valuta semplicemente la differenza tra la copertura effettiva e il livello di confidenza. Questo può sembrare sospettosamente buono per alti livelli di confidenza. Ad esempio, se stai cercando di ottenere il 99,9% di confidenza ma ottieni solo il 99% di copertura, la differenza grezza è solo dello 0,9%. Tuttavia, ciò significa che la procedura non riesce a coprire l'obiettivo dieci volte più spesso di quanto dovrebbe! Per questo motivo, un modo più informativo di confrontare le coperture dovrebbe usare qualcosa come gli odds ratio. Uso le differenze di logit, che sono i logaritmi dei rapporti di probabilità. In particolare, quando il livello di confidenza desiderato è e la copertura effettiva èpαp, poi
log(p1−p)−log(α1−α)
cattura bene la differenza. Quando è zero, la copertura è esattamente il valore previsto. Quando è negativo, la copertura è troppo bassa, il che significa che l'IC è troppo ottimista e sottovaluta l'incertezza.
La domanda, quindi, è come variano questi tassi di errore con il livello di confidenza quando il modello sottostante è perturbato? Possiamo rispondere tracciando i risultati della simulazione. Queste trame quantificano quanto "irrealistico" la "quasi certezza" di un elemento della configurazione potrebbe essere in questa applicazione archetipica.
La grafica mostra gli stessi risultati, ma quello a sinistra mostra i valori sulle scale logit mentre quello a destra usa le scale grezze. La distribuzione Beta è una Beta (che è praticamente una distribuzione di Bernoulli). La distribuzione lognormale è l'esponenziale della distribuzione normale standard. La distribuzione normale è inclusa per verificare che questa procedura CI raggiunga davvero la sua copertura prevista e per rivelare quanta variazione aspettarsi dalle dimensioni finite della simulazione. (In effetti, i grafici per la distribuzione normale sono comodamente vicini allo zero, senza mostrare deviazioni significative.)(1/30,1/30)
È chiaro che sulla scala del logit, le coperture diventano più divergenti con l'aumentare del livello di confidenza. Vi sono tuttavia alcune interessanti eccezioni. Se non ci preoccupiamo delle perturbazioni del modello che introducono asimmetria o lunghe code, allora possiamo ignorare l'esponenziale e il lognormale e concentrarci sul resto. Il loro comportamento è irregolare fino a quando supera il o giù di lì (un logit di ), a quel punto si è verificata la divergenza.95 % 3α95%3
Questo piccolo studio porta una certa concretezza all'affermazione di Gelman e illustra alcuni dei fenomeni che avrebbe potuto pensare. In particolare, quando stiamo usando una procedura CI con un livello di confidenza basso, come , quindi anche quando il modello sottostante è fortemente perturbato, sembra che la copertura sarà ancora vicina al : il nostro sentendo che tale IC sarà corretto circa la metà del tempo e scorretto l'altra metà sarà confermata. È robusto . Se invece speriamo di avere ragione, diciamo, il delle volte, il che significa che vogliamo davvero sbagliare solo il50 % 95 % 5 %α=50%50%95%5% del tempo, quindi dovremmo essere pronti a rendere il nostro tasso di errore molto maggiore nel caso in cui il mondo non funzioni esattamente come suppone il nostro modello.
Per inciso, questa proprietà del IC è valida in gran parte perché stiamo studiando intervalli di confidenza simmetrici . Per le distribuzioni distorte, i limiti di confidenza individuali possono essere terribili (e non del tutto robusti), ma i loro errori spesso si annullano. Tipicamente una coda è corta e l'altra lunga, portando a una copertura eccessiva da un lato e una copertura insufficiente dall'altro. Ritengo che i limiti di confidenza del non saranno così robusti quanto gli intervalli corrispondenti.50 %50%50%
Questo è il R
codice che ha prodotto i grafici. È prontamente modificato per studiare altre distribuzioni, altri intervalli di confidenza e altre procedure di CI.
#
# Zero-mean distributions.
#
distributions <- list(Beta=function(n) rbeta(n, 1/30, 1/30) - 1/2,
Uniform=function(n) runif(n, -1, 1),
Normal=rnorm,
#Mixture=function(n) rnorm(n, -2) + rnorm(n, 2),
Exponential=function(n) rexp(n) - 1,
Lognormal=function(n) exp(rnorm(n, -1/2)) - 1
)
n.sample <- 12
n.sim <- 5e4
alpha.logit <- seq(0, 6, length.out=21); alpha <- signif(1 / (1 + exp(-alpha.logit)), 3)
#
# Normal CI.
#
CI <- function(x, Z=outer(c(1,-1), qt((1-alpha)/2, n.sample-1)))
mean(x) + Z * sd(x) / sqrt(length(x))
#
# The simulation.
#
#set.seed(17)
alpha.s <- paste0("alpha=", alpha)
sim <- lapply(distributions, function(dist) {
x <- matrix(dist(n.sim*n.sample), n.sample)
x.ci <- array(apply(x, 2, CI), c(2, length(alpha), n.sim),
dimnames=list(Endpoint=c("Lower", "Upper"),
Alpha=alpha.s,
NULL))
covers <- x.ci["Lower",,] * x.ci["Upper",,] <= 0
rowMeans(covers)
})
(sim)
#
# The plots.
#
logit <- function(p) log(p/(1-p))
colors <- hsv((1:length(sim)-1)/length(sim), 0.8, 0.7)
par(mfrow=c(1,2))
plot(range(alpha.logit), c(-2,1), type="n",
main="Confidence Interval Accuracies (Logit Scales)", cex.main=0.8,
xlab="Logit(alpha)",
ylab="Logit(coverage) - Logit(alpha)")
abline(h=0, col="Gray", lwd=2)
legend("bottomleft", names(sim), col=colors, lwd=2, bty="n", cex=0.8)
for(i in 1:length(sim)) {
coverage <- sim[[i]]
lines(alpha.logit, logit(coverage) - alpha.logit, col=colors[i], lwd=2)
}
plot(range(alpha), c(-0.2, 0.05), type="n",
main="Raw Confidence Interval Accuracies", cex.main=0.8,
xlab="alpha",
ylab="coverage-alpha")
abline(h=0, col="Gray", lwd=2)
legend("bottomleft", names(sim), col=colors, lwd=2, bty="n", cex=0.8)
for(i in 1:length(sim)) {
coverage <- sim[[i]]
lines(alpha, coverage - alpha, col=colors[i], lwd=2)
}