Câu trả lời này phân tích ý nghĩa của trích dẫn và đưa ra kết quả của một nghiên cứu mô phỏng để minh họa cho nó và giúp hiểu những gì nó có thể đang cố gắng nói. Nghiên cứu có thể dễ dàng được mở rộng bởi bất kỳ ai (có R
kỹ năng thô sơ ) để khám phá các quy trình khoảng tin cậy khác và các mô hình khác.
Hai vấn đề thú vị nổi lên trong tác phẩm này. Một mối quan tâm làm thế nào để đánh giá tính chính xác của thủ tục khoảng tin cậy. Ấn tượng người ta nhận được về sự mạnh mẽ phụ thuộc vào điều đó. Tôi hiển thị hai biện pháp chính xác khác nhau để bạn có thể so sánh chúng.
50%
Mạnh mẽ có một ý nghĩa tiêu chuẩn trong thống kê:
Sự mạnh mẽ nói chung ngụ ý sự vô cảm đối với sự khởi hành từ các giả định xung quanh một mô hình xác suất cơ bản.
(Hoaglin, Mosteller và Tukey, Hiểu phân tích dữ liệu mạnh mẽ và khám phá . J. Wiley (1983), trang 2.)
Điều này phù hợp với trích dẫn trong câu hỏi. Để hiểu báo giá chúng ta vẫn cần biết mục đích dự định của khoảng tin cậy. Để kết thúc này, hãy xem lại những gì Gelman đã viết.
Tôi thích khoảng 50% đến 95% vì 3 lý do:
Tính ổn định tính toán,
Đánh giá trực quan hơn (một nửa khoảng 50% nên chứa giá trị thực),
Một ý nghĩa rằng trong các ứng dụng, tốt nhất là bạn nên hiểu về các tham số và giá trị dự đoán sẽ ở đâu, không cố gắng gần như không chắc chắn.
Vì việc hiểu được các giá trị dự đoán không phải là mục đích của khoảng tin cậy (CIs), tôi sẽ tập trung vào việc hiểu ý nghĩa của các giá trị tham số , đó là những gì các TCTD làm. Hãy gọi đây là các giá trị "mục tiêu". Từ đâu, theo định nghĩa, một CI được thiết kế để trang trải mục tiêu của mình với một xác suất nào đó (mức độ tin cậy của nó). Đạt được tỷ lệ bao phủ dự định là tiêu chí tối thiểu để đánh giá chất lượng của bất kỳ thủ tục CI nào. (Ngoài ra, chúng tôi có thể quan tâm đến độ rộng CI điển hình. Để giữ bài đăng ở độ dài hợp lý, tôi sẽ bỏ qua vấn đề này.)
Những cân nhắc này mời chúng tôi nghiên cứu tính toán khoảng tin cậy có thể đánh lừa chúng tôi bao nhiêu về giá trị tham số đích. Báo giá có thể được đọc là gợi ý rằng các TCTD có độ tin cậy thấp hơn có thể duy trì phạm vi bảo hiểm của họ ngay cả khi dữ liệu được tạo bởi một quy trình khác với mô hình. Đó là điều chúng ta có thể kiểm tra. Thủ tục là:
Thông qua một mô hình xác suất bao gồm ít nhất một tham số. Kiểu cổ điển là lấy mẫu từ một phân phối chuẩn của trung bình và phương sai không xác định.
Chọn một thủ tục CI cho một hoặc nhiều tham số của mô hình. Một kết quả tuyệt vời sẽ xây dựng CI từ giá trị trung bình mẫu và độ lệch chuẩn mẫu, nhân hệ số sau với hệ số được cung cấp bởi phân phối Student t.
Áp dụng quy trình đó cho các mô hình khác nhau - khởi hành không quá nhiều từ mô hình được thông qua - để đánh giá phạm vi bảo hiểm của nó qua một loạt các mức độ tin cậy.
50%99.8%
αp, sau đó
log(p1−p)−log(α1−α)
độc đáo nắm bắt sự khác biệt. Khi nó bằng 0, phạm vi bảo hiểm chính xác là giá trị dự định. Khi nó âm tính, phạm vi bảo hiểm quá thấp - điều đó có nghĩa là CI quá lạc quan và đánh giá thấp sự không chắc chắn.
Sau đó, câu hỏi đặt ra là làm thế nào để các tỷ lệ lỗi này thay đổi theo mức độ tin cậy khi mô hình cơ bản bị nhiễu loạn? Chúng ta có thể trả lời nó bằng cách vẽ kết quả mô phỏng. Các lô này định lượng mức độ "không thực tế" của "gần như chắc chắn" của một CI có thể có trong ứng dụng nguyên mẫu này.
(1/30,1/30)
α95%3
α=50%50%95%5% thời gian sau đó, chúng ta nên chuẩn bị cho tỷ lệ lỗi của chúng ta lớn hơn nhiều trong trường hợp thế giới không hoạt động hoàn toàn theo cách mà mô hình của chúng ta giả định.
50%50%
Đây là R
mã sản xuất các lô. Nó dễ dàng được sửa đổi để nghiên cứu các phân phối khác, phạm vi tin cậy khác và các thủ tục CI khác.
#
# 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)
}