백분위 수에 대한 신뢰 구간을 얻는 방법?


15

나는 달러 금액 인 많은 원시 데이터 값을 가지고 있으며 해당 데이터의 백분위 수에 대한 신뢰 구간을 찾고 싶습니다. 그러한 신뢰 구간에 대한 공식이 있습니까?

답변:


21

일반적인 상황을 다루는이 질문은 간단하고 대략적인 답변이 필요합니다. 다행히도 하나가 있습니다.

이 Quantile I 쓸 알 수없는 분포 의 독립 값 이라고 가정 합니다 . 이것은 각각의 가 (적어도) 가 보다 작거나 같을 가능성 이 있음을 의미합니다 . 결과적 으로 보다 작거나 같은 의 수 는 이항 분포 갖습니다 .X1,,XnFqthF1(q)XiqF1(q)XiF1(q)(n,q)

이 간단한 고려에 의해 동기를 부여받은 Gerald Hahn과 William Meeker는 자신의 핸드북 통계 간격 (Wiley 1991)에서 다음과 같이 썼습니다.

대한 양측 분포없는 보수적 신뢰 구간은 다음 과 같이 구합니다.100(1α)%F1(q)[X(l),X(u)]

여기서 은 샘플 의 주문 통계 입니다. 그들은 말을 진행X(1)X(2)X(n)

하나의 정수를 선택할 수 주위에 대칭 (혹은 거의 대칭) 과 같은 가깝게 요건 가능한 주제로 그0lunq(n+1)

(1)B(u1;n,q)B(l1;n,q)1α.

왼쪽의 표현은 이항 변수가 값 중 하나 일 가능성입니다 . 분명히 이것은 분포의 에 속하는 데이터 값 의 수가 너무 작 거나 ( 보다 작 거나) 너무 크지 않을 가능성입니다 ( 이상).(n,q){l,l+1,,u1}Xi100q%lu

Hahn과 Meeker는 몇 가지 유용한 말을 썼다.

방정식 의 왼쪽에 표시된 실제 신뢰 수준 이 지정된 값 보다 크기 때문에 앞의 구간은 보수적 입니다. ...(1)1α

적어도 원하는 신뢰 수준을 갖는 분포없는 통계 구간을 구성하는 것은 때때로 불가능합니다. 이 문제는 작은 표본에서 분포의 꼬리에 백분위 수를 추정 할 때 특히 심각합니다. ... 어떤 경우에는 분석가가 과 비대칭 으로 선택하여이 문제에 대처할 수 있습니다 . 또 다른 대안은 신뢰 수준을 낮추는 것입니다.lu


Hahn & Meeker가 제공하는 예제를 통해 작업 해 봅시다. 이들은 "화학 공정으로부터 화합물의 측정 값" 의 순서 집합을 제공하고 백분위 수 에 대해 신뢰 구간을 요구합니다 . 그들은 이고 이 작동 한다고 주장 합니다.n=100100(1α)=95%q=0.90l=85u=97

이항 분포 (100, 0.90)를 보여주는 그림

그림에서 파란색 막대 같이이 구간의 총 확률은이다 : 하나가 얻을 수있는 가깝게의 그 아직 아직 모든 가능성이 컷오프를 선택하고 제거하여, 그 위에 수 컷오프를 벗어난 왼쪽 꼬리와 오른쪽 꼬리.95.3%95%

다음은 중간에서 개의 값을 제외하고 순서대로 표시된 데이터입니다 .81

1.491.662.0524.3324.7225.4625.6725.7726.6428.2828.2829.0729.1631.1431.8333.2437.3253.4358.11

가장 큰 및 최대이다 . 따라서 구간은 입니다.85th24.3397th33.24[24.33,33.24]

다시 해석해 봅시다. 이 절차는 백분위 수 를 포함 할 확률이 이상이어야합니다 . 해당 백분위 수가 실제로 초과하는 경우 샘플에서 백분위 수 미만인 값 중 개 이상 을 관찰했음을 의미 합니다. 너무 많아 이 백분위 수가 보다 작은 경우 샘플에서 백분위 수 미만인 이하의 값을 관찰했음을 의미 합니다. 너무 적습니다.95%90th33.249710090th24.338490th 두 경우 모두 (그림에서 빨간색 막대로 표시된 바와 같이) 이 간격 내에 있는 백분위 수에 대한 증거 입니다.90th


과 의 좋은 선택을 찾는 한 가지 방법 은 필요에 따라 검색하는 것입니다. 다음은 대칭 근사 간격으로 시작한 다음 범위가 좋은 구간을 찾기 위해 과 를 최대 까지 변경하여 검색하는 방법입니다 (가능한 경우). 코드 와 함께 설명되어 있습니다. 위의 예에서 정규 분포에 대한 적용 범위를 확인하도록 설정되었습니다. 출력은lulu2R

시뮬레이션 평균 범위는 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))

4

유도

-quantile 랜덤 변수의 (이 백분율보다 더 일반적인 개념이다) 주어진다 . 샘플 상대방은τqτXFX1(τ)q^τ=F^1(τ) . 이것은 샘플 Quantile 일뿐입니다. 우리는 다음의 배포에 관심이 있습니다 :

n(q^τqτ)

먼저, 경험적 cdf의 점근 분포가 필요합니다.

F^(x)=1n1{Xi<x}1{Xi<x}P(Xi<x)=F(x)F(x)(1F(x))

n(F^(x)F(x))N(0,F(x)(1F(x)))(1)

이제 역함수는 연속 함수이므로 델타 방법을 사용할 수 있습니다.

델타 방법은 이고 이 연속 함수이면 **]n(y¯μy)N(0,σ2)g()n(g(y¯)g(μy))N(0,σ2(g(μy))2)

(1)의 좌측에서 받아 및x=qτg()=F1()

n(F1(F^(qτ))F1(F(qτ)))=n(q^τqτ)

[** 마지막 단계에서 이지만 표시하기가 지루한 경우 점근 적으로 동일합니다. **]F1(F^(qτ))F^1(F^(qτ))=q^τ

이제 위에서 언급 한 델타 방법을 적용하십시오.

이후 (역함수 정리)ddxF1(x)=1f(F1(x))

n(q^τqτ)N(0,F(qτ)(1F(qτ))f(F1(F(qτ)))2)=N(0,F(qτ)(1F(qτ))f(qτ)2)

그런 다음 신뢰 구간을 구성하려면 위의 분산에서 각 항의 표본 대응 부분을 연결하여 표준 오차를 계산해야합니다.

결과

따라서se(q^τ)=F^(q^τ)(1F^(q^τ))nf^(q^τ)2= τ(1τ)nf^(q^τ)2

그리고CI0.95(q^τ)=q^τ±1.96se(q^τ)

이를 위해서는 밀도를 추정 해야하지만 이는 매우 간단합니다. 또는 CI를 매우 쉽게 부트 스트랩 할 수도 있습니다.X


1
링크 된 기사의 내용으로 답변을 확장 할 수 있습니까? 링크가 영원히 작동하지 않을 수
Andy

1
이항 분포를 기반으로 한 분포가없는 ci와 비교하여 밀도 추정을 기반으로 한이 점근 적 결과의 이점은 무엇입니까?
Michael M

이것은 여전히 원래 링크 한 기사를 기반으로 합니까?
Nick Stauner

예, 해당 링크를 다시 추가해야합니까? 나는 이것이 잘 알려진 결과라고 생각합니다. 이전에 수업에서 보았으며 Google에서 찾기가 어렵지 않습니다. 이와 같은 경우 링크하거나 입력하거나 두 가지 모두를 사용하는 것이 더 낫습니까?
bmciv

나는 두 가지 모두를 말하고, 이것이 적절한 귀속을 위해 인용되거나 파생 된 경우 다시 편집해야한다고 말합니다. 그렇지 않으면 편집 여부는 중요하지 않지만 일반적으로 스택 교환 정책은 링크 썩음을 피하기 위해 링크 전용 응답을 권장하지 않으며 원칙적으로는 링크 인덱스가 아니라 독립적 인 저장소라는 아이디어입니다. 나는 그 시나리오 중 어느 것이 상상의 "미끄러운 경사"이상인지 확실하지 않다.
Nick Stauner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.