답변:
일반적인 상황을 다루는이 질문은 간단하고 대략적인 답변이 필요합니다. 다행히도 하나가 있습니다.
이 Quantile I 쓸 알 수없는 분포 의 독립 값 이라고 가정 합니다 . 이것은 각각의 가 (적어도) 가 보다 작거나 같을 가능성 이 있음을 의미합니다 . 결과적 으로 보다 작거나 같은 의 수 는 이항 분포 갖습니다 .
이 간단한 고려에 의해 동기를 부여받은 Gerald Hahn과 William Meeker는 자신의 핸드북 통계 간격 (Wiley 1991)에서 다음과 같이 썼습니다.
대한 양측 분포없는 보수적 신뢰 구간은 다음 과 같이 구합니다.
여기서 은 샘플 의 주문 통계 입니다. 그들은 말을 진행
하나의 정수를 선택할 수 주위에 대칭 (혹은 거의 대칭) 과 같은 가깝게 요건 가능한 주제로 그
왼쪽의 표현은 이항 변수가 값 중 하나 일 가능성입니다 . 분명히 이것은 분포의 에 속하는 데이터 값 의 수가 너무 작 거나 ( 보다 작 거나) 너무 크지 않을 가능성입니다 ( 이상).
Hahn과 Meeker는 몇 가지 유용한 말을 썼다.
방정식 의 왼쪽에 표시된 실제 신뢰 수준 이 지정된 값 보다 크기 때문에 앞의 구간은 보수적 입니다. ...
적어도 원하는 신뢰 수준을 갖는 분포없는 통계 구간을 구성하는 것은 때때로 불가능합니다. 이 문제는 작은 표본에서 분포의 꼬리에 백분위 수를 추정 할 때 특히 심각합니다. ... 어떤 경우에는 분석가가 과 비대칭 으로 선택하여이 문제에 대처할 수 있습니다 . 또 다른 대안은 신뢰 수준을 낮추는 것입니다.
Hahn & Meeker가 제공하는 예제를 통해 작업 해 봅시다. 이들은 "화학 공정으로부터 화합물의 측정 값" 의 순서 집합을 제공하고 백분위 수 에 대해 신뢰 구간을 요구합니다 . 그들은 이고 이 작동 한다고 주장 합니다.
그림에서 파란색 막대 같이이 구간의 총 확률은이다 : 하나가 얻을 수있는 가깝게의 그 아직 아직 모든 가능성이 컷오프를 선택하고 제거하여, 그 위에 수 컷오프를 벗어난 왼쪽 꼬리와 오른쪽 꼬리.
다음은 중간에서 개의 값을 제외하고 순서대로 표시된 데이터입니다 .
가장 큰 및 최대이다 . 따라서 구간은 입니다.
다시 해석해 봅시다. 이 절차는 백분위 수 를 포함 할 확률이 이상이어야합니다 . 해당 백분위 수가 실제로 초과하는 경우 샘플에서 백분위 수 미만인 값 중 개 이상 을 관찰했음을 의미 합니다. 너무 많아 이 백분위 수가 보다 작은 경우 샘플에서 백분위 수 미만인 이하의 값을 관찰했음을 의미 합니다. 너무 적습니다. 두 경우 모두 (그림에서 빨간색 막대로 표시된 바와 같이) 이 간격 내에 있는 백분위 수에 대한 증거 입니다.
과 의 좋은 선택을 찾는 한 가지 방법 은 필요에 따라 검색하는 것입니다. 다음은 대칭 근사 간격으로 시작한 다음 범위가 좋은 구간을 찾기 위해 과 를 최대 까지 변경하여 검색하는 방법입니다 (가능한 경우). 코드 와 함께 설명되어 있습니다. 위의 예에서 정규 분포에 대한 적용 범위를 확인하도록 설정되었습니다. 출력은R
시뮬레이션 평균 범위는 0.9503입니다. 예상 범위는 0.9523입니다
시뮬레이션과 기대 사이의 일치가 뛰어납니다.
#
# Near-symmetric distribution-free confidence interval for a quantile `q`.
# Returns indexes into the order statistics.
#
quantile.CI <- function(n, q, alpha=0.05) {
#
# Search over a small range of upper and lower order statistics for the
# closest coverage to 1-alpha (but not less than it, if possible).
#
u <- qbinom(1-alpha/2, n, q) + (-2:2) + 1
l <- qbinom(alpha/2, n, q) + (-2:2)
u[u > n] <- Inf
l[l < 0] <- -Inf
coverage <- outer(l, u, function(a,b) pbinom(b-1,n,q) - pbinom(a-1,n,q))
if (max(coverage) < 1-alpha) i <- which(coverage==max(coverage)) else
i <- which(coverage == min(coverage[coverage >= 1-alpha]))
i <- i[1]
#
# Return the order statistics and the actual coverage.
#
u <- rep(u, each=5)[i]
l <- rep(l, 5)[i]
return(list(Interval=c(l,u), Coverage=coverage[i]))
}
#
# Example: test coverage via simulation.
#
n <- 100 # Sample size
q <- 0.90 # Percentile
#
# You only have to compute the order statistics once for any given (n,q).
#
lu <- quantile.CI(n, q)$Interval
#
# Generate many random samples from a known distribution and compute
# CIs from those samples.
#
set.seed(17)
n.sim <- 1e4
index <- function(x, i) ifelse(i==Inf, Inf, ifelse(i==-Inf, -Inf, x[i]))
sim <- replicate(n.sim, index(sort(rnorm(n)), lu))
#
# Compute the proportion of those intervals that cover the percentile.
#
F.q <- qnorm(q)
covers <- sim[1, ] <= F.q & F.q <= sim[2, ]
#
# Report the result.
#
message("Simulation mean coverage was ", signif(mean(covers), 4),
"; expected coverage is ", signif(quantile.CI(n,q)$Coverage, 4))
유도
-quantile 랜덤 변수의 (이 백분율보다 더 일반적인 개념이다) 주어진다 . 샘플 상대방은 . 이것은 샘플 Quantile 일뿐입니다. 우리는 다음의 배포에 관심이 있습니다 :
먼저, 경험적 cdf의 점근 분포가 필요합니다.
이제 역함수는 연속 함수이므로 델타 방법을 사용할 수 있습니다.
델타 방법은 이고 이 연속 함수이면 **]
(1)의 좌측에서 받아 및
[** 마지막 단계에서 이지만 표시하기가 지루한 경우 점근 적으로 동일합니다. **]
이제 위에서 언급 한 델타 방법을 적용하십시오.
이후 (역함수 정리)
그런 다음 신뢰 구간을 구성하려면 위의 분산에서 각 항의 표본 대응 부분을 연결하여 표준 오차를 계산해야합니다.
결과
따라서
그리고
이를 위해서는 밀도를 추정 해야하지만 이는 매우 간단합니다. 또는 CI를 매우 쉽게 부트 스트랩 할 수도 있습니다.