이 답변은 인용의 의미를 분석하고이를 설명하고 인용하려는 내용을 이해하는 데 도움이되는 시뮬레이션 연구 결과를 제공합니다. 이 연구는 기초 R
지식이있는 사람이라면 누구나 쉽게 확장하여 다른 신뢰 구간 절차와 다른 모델을 탐색 할 수 있습니다 .
이 연구에서 두 가지 흥미로운 문제가 나타났다. 하나는 신뢰 구간 절차의 정확성을 평가하는 방법에 관한 것입니다. 견고성에 대한 인상은 그것에 달려 있습니다. 비교할 수 있도록 두 가지 다른 정확도 측정 값을 표시합니다.
다른 문제는 신뢰도가 낮은 신뢰 구간 절차가 강력 할 수 있지만 해당 신뢰 한계 가 전혀 강력하지 않을 수 있다는 것입니다. 간격은 한쪽 끝에서 발생하는 오류가 다른 쪽 끝에서 발생하는 오류와 균형을 맞추기 때문에 잘 작동하는 경향이 있습니다. 실제적으로, 신뢰 구간 의 약 절반이 해당 매개 변수를 포함하고 있다는 것을 확신 할 수 있지만 실제가 모 델이 가정에서 어떻게 벗어나는 지에 따라 실제 매개 변수는 각 구간의 한 특정 끝에 거의 일관되게있을 수 있습니다 .50%
견고성 은 통계에서 표준 의미를 갖습니다.
견고성은 일반적으로 기본 확률 모델을 둘러싼 가정에서 벗어나는 것에 무감각 함을 의미합니다.
(Hoaglin, Mosteller 및 Tukey, 견고하고 탐색적인 데이터 분석 이해 . J. Wiley (1983), p. 2)
이것은 질문의 인용문과 일치합니다. 인용문을 이해하려면 여전히 신뢰 구간 의 의도 된 목적 을 알아야합니다 . 이를 위해 Gelman이 작성한 내용을 검토해 보겠습니다.
나는 세 가지 이유로 50 %에서 95 % 간격을 선호합니다 :
전산 안정성,
보다 직관적 인 평가 (50 % 간격의 절반에 실제 값이 포함되어야 함)
응용 프로그램에서는 비현실적인 근사 불확실성을 시도하지 말고 매개 변수와 예측 값이 어디에 있는지 파악하는 것이 가장 좋습니다.
예측 된 값을 얻는 것이 신뢰 구간 (CI)을위한 것이 아니기 때문에 CI가하는 매개 변수 값 을 얻는 데 중점을 둘 것입니다. 이를 "대상"값이라고합니다. 어디서, 정의에 의해, 정보원은 특정 확률 (그 신뢰도)과 그 타겟을 포함하도록 의도된다. 의도 된 적용 범위 달성은 CI 절차의 품질을 평가하기위한 최소 기준입니다. 또한 일반적인 CI 너비에 관심이있을 수 있습니다. 게시물을 적절한 길이로 유지하려면이 문제를 무시하겠습니다.
이러한 고려 사항을 통해 목표 모수 값과 관련하여 신뢰 구간 계산이 얼마나 오해를 일으킬 수 있는지 연구해야 합니다. 신뢰도가 낮은 CI는 모델과 다른 프로세스에서 데이터를 생성 한 경우에도 적용 범위를 유지할 수 있음을 암시하여 인용 할 수 있습니다. 그것은 우리가 테스트 할 수있는 것입니다. 절차는 다음과 같습니다
하나 이상의 모수를 포함하는 확률 모델을 채택하십시오. 고전적인 것은 알려지지 않은 평균과 분산의 정규 분포에서 샘플링하는 것입니다.
하나 이상의 모델 매개 변수에 대한 CI 프로 시저를 선택하십시오. 우수한 것은 표본 평균과 표본 표준 편차로부터 CI를 구성하고, 후자를 스튜던트 t 분포에 의해 주어진 계수로 곱한 것입니다.
다양한 신뢰 수준에 대한 적용 범위를 평가하려면 채택 된 모델과 크게 다르지 않은 다양한 모델에이 절차를 적용하십시오 .
50%99.8%
αp그런 다음
log(p1−p)−log(α1−α)
차이를 멋지게 포착합니다. 이 값이 0이면 적용 범위는 정확히 의도 된 값입니다. 음수가되면 적용 범위가 너무 낮아 CI가 너무 낙관적 이며 불확실성을 과소 평가 한다는 의미 입니다.
그렇다면 기본 모델이 혼란스러워 짐에 따라 이러한 오류율이 신뢰 수준에 따라 어떻게 달라 집니까? 시뮬레이션 결과를 그려서 대답 할 수 있습니다. 이 도표는 CI의 "거의 불확실성"이 "비현실적" 이이 전형적인 응용에 어떻게 존재할 수 있는지 정량화합니다 .
(1/30,1/30)
α95%3
α=50%50%95%5% 시간이 지나면 모델이 가정하는 방식으로 세계가 제대로 작동하지 않는 경우 오류율이 훨씬 높아질 수 있도록 준비해야합니다.
50%50%
이것은 R
플롯을 생성 한 코드입니다. 다른 분포, 다른 신뢰 범위 및 기타 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)
}