Diese Antwort analysiert die Bedeutung des Zitats und bietet die Ergebnisse einer Simulationsstudie, um es zu veranschaulichen und zu verstehen, was es möglicherweise zu sagen versucht. Die Studie kann leicht von jedem (mit grundlegenden R
Fähigkeiten) erweitert werden, um andere Konfidenzintervallverfahren und andere Modelle zu untersuchen.
In dieser Arbeit tauchten zwei interessante Fragen auf. Eines betrifft die Bewertung der Genauigkeit eines Konfidenzintervallverfahrens. Der Eindruck von Robustheit hängt davon ab. Ich zeige zwei verschiedene Genauigkeitsmaße an, damit Sie sie vergleichen können.
Das andere Problem ist , dass , obwohl ein Vertrauensintervall Verfahren mit niedrigem Vertrauen robust sein kann, die entsprechenden Vertrauensgrenzen durchaus nicht robust sein könnten. Intervalle funktionieren in der Regel gut, da die Fehler, die sie an einem Ende machen, häufig die Fehler ausgleichen, die sie am anderen Ende machen. In der Praxis können Sie sich ziemlich sicher sein, dass etwa die Hälfte Ihrer -Konfidenzintervalle ihre Parameter abdeckt, aber der tatsächliche Parameter kann konsistent in der Nähe eines bestimmten Endes jedes Intervalls liegen, abhängig davon, wie die Realität von Ihren Modellannahmen abweicht.50 %
Robust hat in der Statistik eine Standardbedeutung:
Robustheit impliziert im Allgemeinen eine Unempfindlichkeit gegenüber Abweichungen von Annahmen, die ein zugrunde liegendes Wahrscheinlichkeitsmodell betreffen.
(Hoaglin, Mosteller und Tukey, Verständnis von robuster und explorativer Datenanalyse . J. Wiley (1983), S. 2.)
Dies steht im Einklang mit dem Zitat in der Frage. Um das Zitat zu verstehen, müssen wir noch den beabsichtigten Zweck eines Konfidenzintervalls kennen. Sehen wir uns zu diesem Zweck an, was Gelman geschrieben hat.
Ich bevorzuge Intervalle von 50% bis 95% aus drei Gründen:
Rechenstabilität,
Intuitivere Auswertung (die Hälfte der 50% -Intervalle sollte den wahren Wert enthalten),
Ein Gefühl, dass es in Anwendungen am besten ist, ein Gefühl dafür zu bekommen, wo sich die Parameter und vorhergesagten Werte befinden, und nicht, eine unrealistische Nahezu-Gewissheit zu versuchen.
Da es nicht das Ziel von Konfidenzintervallen (CIs) ist , ein Gefühl für vorhergesagte Werte zu bekommen, werde ich mich darauf konzentrieren, ein Gefühl für Parameterwerte zu bekommen, wie es CIs tun. Nennen wir diese die "Ziel" -Werte. Daher soll ein CI per Definition sein Ziel mit einer bestimmten Wahrscheinlichkeit (seinem Konfidenzniveau) abdecken. Das Erreichen der beabsichtigten Abdeckungsraten ist das Mindestkriterium für die Bewertung der Qualität eines CI-Verfahrens. (Außerdem interessieren uns möglicherweise typische CI-Breiten. Um den Beitrag auf einer angemessenen Länge zu halten, werde ich dieses Problem ignorieren.)
Diese Überlegungen lassen uns untersuchen, inwieweit eine Konfidenzintervallberechnung uns in Bezug auf den Zielparameterwert irreführen könnte. Das Zitat könnte dahingehend interpretiert werden, dass CIs mit niedrigerem Konfidenzniveau ihre Abdeckung beibehalten, auch wenn die Daten von einem anderen Prozess als dem Modell generiert werden. Das können wir testen. Das Verfahren ist:
Nehmen Sie ein Wahrscheinlichkeitsmodell an, das mindestens einen Parameter enthält. Der Klassiker ist die Stichprobe aus einer Normalverteilung mit unbekanntem Mittelwert und unbekannter Varianz.
Wählen Sie eine CI-Prozedur für einen oder mehrere Parameter des Modells aus. Ein ausgezeichneter Wert berechnet den CI aus dem Stichprobenmittelwert und der Standardabweichung der Stichprobe und multipliziert diese mit einem Faktor, der durch eine Student-t-Verteilung gegeben ist.
Wenden Sie dieses Verfahren , um verschiedene unterschiedliche Modelle - nicht zu viel von dem angenommenen Scheidenden - die Berichterstattung über einen Bereich von Konfidenzniveaus zu beurteilen.
Als Beispiel habe ich genau das getan. Ich habe zugelassen, dass die zugrunde liegende Verteilung in einem weiten Bereich variiert, von fast Bernoulli über Uniform, Normal, Exponential und bis hin zu Lognormal. Dazu gehören symmetrische Verteilungen (die ersten drei) und stark verzerrte (die letzten beiden). Für jede Verteilung habe ich 50.000 Stichproben der Größe 12 erstellt. Für jede Stichprobe habe ich zweiseitige CIs mit einem Konfidenzniveau zwischen und , was die meisten Anwendungen abdeckt.50 %99,8 %
Es stellt sich nun eine interessante Frage: Wie sollen wir messen, wie gut (oder wie schlecht) eine CI-Prozedur abschneidet? Eine übliche Methode bewertet einfach den Unterschied zwischen der tatsächlichen Abdeckung und dem Konfidenzniveau. Dies kann jedoch für ein hohes Konfidenzniveau verdächtig gut aussehen. Wenn Sie beispielsweise versuchen, ein Vertrauen von 99,9% zu erreichen, aber nur eine Abdeckung von 99% erhalten, beträgt der rohe Unterschied lediglich 0,9%. Dies bedeutet jedoch, dass Ihre Prozedur das Ziel zehnmal häufiger nicht abdeckt, als es sollte! Aus diesem Grund sollte eine informativere Methode zum Vergleichen von Deckungen so etwas wie Quotenverhältnisse verwenden. Ich benutze Differenzen von Logs, die die Logarithmen von Odds Ratios sind. Insbesondere wenn das gewünschte Konfidenzniveau und die tatsächliche Abdeckungαp, dann
Log( p1 - p) -log( α1 - α)
fängt schön den Unterschied. Wenn es Null ist, entspricht die Abdeckung genau dem beabsichtigten Wert. Wenn es negativ ist, ist die Abdeckung zu niedrig - was bedeutet, dass das CI zu optimistisch ist und die Unsicherheit unterschätzt.
Die Frage ist also, wie diese Fehlerraten mit dem Konfidenzniveau variieren, wenn das zugrunde liegende Modell gestört wird. Wir können darauf antworten, indem wir die Simulationsergebnisse aufzeichnen. Diese Diagramme quantifizieren, wie "unrealistisch" die "Fast-Gewissheit" eines CI in dieser archetypischen Anwendung sein könnte.
( 1 / 30 , 1 / 30 )
Es ist klar, dass auf der Logit-Skala die Abdeckungen mit zunehmendem Konfidenzniveau divergierender werden. Es gibt jedoch einige interessante Ausnahmen. Wenn wir uns nicht um Störungen des Modells kümmern, die zu Versatz oder langen Schwänzen führen, können wir das Exponentielle und Lognormale ignorieren und uns auf den Rest konzentrieren. Ihr Verhalten ist unberechenbar, bis etwa überschreitet (ein logit von ). An diesem Punkt hat sich die Divergenz eingestellt.α95 %3
Diese kleine Studie bringt etwas Konkretes zu Gelmans Behauptung und illustriert einige der Phänomene, die er sich vorgestellt haben könnte. Insbesondere wenn wir ein CI-Verfahren mit einem niedrigen Konfidenzniveau verwenden, wie beispielsweise , sieht es so aus, als ob die Abdeckung auch bei starken Störungen des zugrunde liegenden Modells nahe bei : our Das Gefühl, dass ein solches CI etwa die Hälfte der Zeit korrekt und die andere Hälfte falsch ist, wird bestätigt. Das ist robust . Wenn wir stattdessen hoffen, dass wir in der Fälle Recht haben , was bedeutet, dass wir uns wirklich irren wollen, dann sind es nurα = 50 %50 %95 %5 % Dann sollten wir uns darauf einstellen, dass unsere Fehlerrate viel höher ist, falls die Welt nicht so funktioniert, wie es unser Modell annimmt.
Im Übrigen ist diese Eigenschaft von CIs zu einem großen Teil gültig, da symmetrische Konfidenzintervalle untersucht werden . Für die schiefen Verteilungen werden die einzelne Vertrauensgrenzen können schrecklich sein (und nicht robust überhaupt), aber ihre Fehler oft aufheben. Typischerweise ist ein Schwanz kurz und der andere lang, was zu einer Überdeckung an einem Ende und einer Unterdeckung am anderen Ende führt. Ich glaube , dass Vertrauensgrenzen werden nicht wie die entsprechenden Intervalle annähernd so robust sein.50 %50 %
Dies ist der R
Code, der die Diagramme erstellt hat. Es kann leicht modifiziert werden, um andere Verteilungen, andere Vertrauensbereiche und andere CI-Verfahren zu untersuchen.
#
# 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)
}