Jawaban ini menganalisis makna kutipan dan menawarkan hasil studi simulasi untuk mengilustrasikannya dan membantu memahami apa yang mungkin ingin dikatakan. Studi ini dapat dengan mudah diperluas oleh siapa saja (dengan R
keterampilan dasar ) untuk mengeksplorasi prosedur interval kepercayaan lain dan model lainnya.
Dua masalah menarik muncul dalam karya ini. Yang satu menyangkut bagaimana mengevaluasi keakuratan prosedur interval kepercayaan. Kesan yang didapat seseorang tentang ketahanan tergantung pada hal itu. Saya menampilkan dua ukuran akurasi yang berbeda sehingga Anda dapat membandingkannya.
Masalah lainnya adalah bahwa meskipun prosedur interval kepercayaan dengan kepercayaan rendah mungkin kuat, batas kepercayaan yang sesuai mungkin tidak kuat sama sekali. Interval cenderung bekerja dengan baik karena kesalahan yang mereka buat di satu sisi sering mengimbangi kesalahan yang mereka buat di sisi lain. Sebagai hal yang praktis, Anda dapat yakin bahwa sekitar setengah dari interval kepercayaan mencakup parameter mereka, tetapi parameter aktual mungkin secara konsisten terletak di dekat salah satu ujung setiap interval, tergantung pada bagaimana realitas berangkat dari asumsi model Anda.50 %
Robust memiliki makna standar dalam statistik:
Robustness umumnya menyiratkan ketidakpekaan terhadap penyimpangan dari asumsi seputar model probabilistik yang mendasarinya.
(Hoaglin, Mosteller, dan Tukey, Understanding Robust and Exploratory Data Analysis . J. Wiley (1983), p. 2.)
Ini konsisten dengan kutipan dalam pertanyaan. Untuk memahami kutipan, kita masih perlu mengetahui tujuan dari interval kepercayaan. Untuk tujuan ini, mari kita tinjau apa yang ditulis Gelman.
Saya lebih suka interval 50% hingga 95% untuk 3 alasan:
Stabilitas komputasi,
Evaluasi yang lebih intuitif (setengah interval 50% harus mengandung nilai sebenarnya),
Perasaan bahwa dalam aplikasi sebaiknya untuk mengetahui di mana parameter dan nilai yang diprediksi akan terjadi, bukan untuk mencoba kepastian hampir tidak realistis.
Karena mendapatkan rasa nilai yang diprediksi bukan untuk apa interval kepercayaan (CI) dimaksudkan, saya akan fokus untuk mendapatkan rasa nilai parameter , yang dilakukan CI. Sebut ini nilai "target". Dimana, menurut definisi, CI dimaksudkan untuk menutupi targetnya dengan probabilitas tertentu (tingkat kepercayaannya). Mencapai tingkat cakupan yang dimaksud adalah kriteria minimum untuk mengevaluasi kualitas prosedur CI. (Selain itu, kami mungkin tertarik dengan lebar CI biasa. Untuk menjaga agar posting tetap masuk akal, saya akan mengabaikan masalah ini.)
Pertimbangan ini mengundang kami untuk mempelajari seberapa banyak perhitungan interval kepercayaan bisa menyesatkan kami mengenai nilai parameter target. Kutipan tersebut dapat dibaca sebagai menunjukkan bahwa CI dengan keyakinan rendah mungkin mempertahankan cakupan mereka bahkan ketika data dihasilkan oleh proses yang berbeda dari model. Itu sesuatu yang bisa kita uji. Prosedurnya adalah:
Adopsi model probabilitas yang mencakup setidaknya satu parameter. Yang klasik adalah pengambilan sampel dari distribusi normal dari mean dan varians yang tidak diketahui.
Pilih prosedur CI untuk satu atau lebih parameter model. Yang sangat baik membangun CI dari mean sampel dan standar deviasi sampel, mengalikan yang terakhir dengan faktor yang diberikan oleh distribusi t Student.
Terapkan prosedur itu ke berbagai model yang berbeda - berangkat tidak terlalu banyak dari model yang diadopsi - untuk menilai cakupannya pada berbagai tingkat kepercayaan.
Sebagai contoh, saya telah melakukan hal itu. Saya telah mengizinkan distribusi yang mendasari bervariasi di berbagai bidang, dari hampir Bernoulli, ke Uniform, ke Normal, ke Exponential, dan semua jalan ke Lognormal. Ini termasuk distribusi simetris (tiga yang pertama) dan yang sangat miring (dua yang terakhir). Untuk setiap distribusi saya menghasilkan 50.000 sampel ukuran 12. Untuk setiap sampel saya membangun CI tingkat kepercayaan dua sisi antara dan , yang mencakup sebagian besar aplikasi.99,8 %50 %99,8 %
Masalah menarik sekarang muncul: Bagaimana seharusnya kita mengukur seberapa baik (atau seberapa buruk) prosedur CI melakukan? Metode umum hanya mengevaluasi perbedaan antara cakupan aktual dan tingkat kepercayaan. Ini bisa terlihat mencurigakan bagus untuk tingkat kepercayaan tinggi. Misalnya, jika Anda mencoba untuk mencapai kepercayaan 99,9% tetapi Anda hanya mendapatkan cakupan 99%, perbedaan mentahnya hanya 0,9%. Namun, itu berarti prosedur Anda gagal menutupi target sepuluh kali lebih sering daripada seharusnya! Untuk alasan ini, cara yang lebih informatif untuk membandingkan pertanggungan harus menggunakan rasio odds. Saya menggunakan perbedaan log, yang merupakan logaritma rasio odds. Khususnya, ketika tingkat kepercayaan yang diinginkan adalah dan cakupan aktual adalahpαhal, kemudian
log( hal1 - hal) -log( α1 - α)
baik menangkap perbedaannya. Ketika nol, cakupan persis nilai yang dimaksudkan. Ketika negatif, cakupannya terlalu rendah - yang berarti CI terlalu optimis dan meremehkan ketidakpastian.
Pertanyaannya, kemudian, bagaimana tingkat kesalahan ini bervariasi dengan tingkat kepercayaan karena model yang mendasarinya terganggu? Kita dapat menjawabnya dengan merencanakan hasil simulasi. Plot-plot ini mengkuantifikasi seberapa "tidak realistisnya" "hampir-pasti" CI dalam aplikasi pola dasar ini.
Grafik menunjukkan hasil yang sama, tetapi yang di sebelah kiri menampilkan nilai pada skala logit sedangkan yang di sebelah kanan menggunakan skala mentah. Distribusi Beta adalah Beta (yang praktis merupakan distribusi Bernoulli). Distribusi lognormal adalah eksponensial dari distribusi Normal standar. Distribusi normal dimasukkan untuk memverifikasi bahwa prosedur CI ini benar-benar mencapai cakupan yang dimaksudkan dan untuk mengungkapkan berapa banyak variasi yang diharapkan dari ukuran simulasi yang terbatas. (Memang, grafik untuk distribusi normal nyaman mendekati nol, tidak menunjukkan penyimpangan yang signifikan.)( 1 / 30 , 1 / 30 )
Jelas bahwa pada skala logit, pertanggungan tumbuh lebih berbeda ketika tingkat kepercayaan meningkat. Ada beberapa pengecualian yang menarik. Jika kita tidak peduli dengan gangguan dari model yang memperkenalkan kemiringan atau ekor panjang, maka kita dapat mengabaikan eksponensial dan lognormal dan fokus pada yang lain. Perilaku mereka tidak menentu sampai melebihi atau lebih (logit ), di mana titik divergensi telah ditetapkan.95 % 3α95 %3
Studi kecil ini membawa konkret ke klaim Gelman dan menggambarkan beberapa fenomena yang mungkin ada dalam pikirannya. Secara khusus, ketika kami menggunakan prosedur CI dengan tingkat kepercayaan rendah, seperti , maka bahkan ketika model yang mendasarinya sangat terganggu, sepertinya cakupannya akan tetap mendekati : kami merasa bahwa CI seperti itu akan benar sekitar separuh waktu dan salah setengah lainnya ditanggung. Itu kuat . Jika sebaliknya kita berharap menjadi benar, katakanlah, dari waktu, yang berarti kita benar-benar ingin salah hanya50 % 95 % 5 %α = 50 %50 %95 %5 % pada saat itu, maka kita harus siap untuk tingkat kesalahan kita menjadi jauh lebih besar jika dunia tidak bekerja seperti yang diperkirakan oleh model kita.
Kebetulan, properti CI ini memegang sebagian besar karena kami mempelajari interval kepercayaan simetris . Untuk distribusi miring, batas kepercayaan individu bisa sangat buruk (dan tidak kuat sama sekali), tetapi kesalahan mereka sering kali dibatalkan. Biasanya satu ekor pendek dan yang lain panjang, mengarah ke cakupan berlebih di satu ujung dan di bawah cakupan di ujung lainnya. Saya percaya bahwa batas kepercayaan tidak akan mendekati sekuat interval yang sesuai.50 %50 %50 %
Ini adalah R
kode yang menghasilkan plot. Ini mudah dimodifikasi untuk mempelajari distribusi lain, rentang kepercayaan lain, dan prosedur CI lainnya.
#
# 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)
}