Wie erhalte ich ein Konfidenzintervall für ein Perzentil?


14

Ich habe eine Reihe von Rohdatenwerten, die Dollarbeträge sind, und ich möchte ein Konfidenzintervall für ein Perzentil dieser Daten finden. Gibt es eine Formel für ein solches Konfidenzintervall?

Antworten:


18

Diese Frage, die eine häufige Situation abdeckt, verdient eine einfache, nicht ungefähre Antwort. Zum Glück gibt es einen.

Angenommen, sind unabhängige Werte von einer unbekannten Verteilung F, deren q- tes Quantil I F - 1 ( q ) schreibt . Dies bedeutet, dass jedes X i eine Chance hat, dass (mindestens) q kleiner oder gleich F - 1 ( q ) ist . Folglich hat die Anzahl von X i kleiner oder gleich F - 1 ( q ) ein Binomial ( nX1,,XnFqthF1(q)XiqF1(q)XiF1(q) Verteilung.(n,q)

Motiviert durch diese einfache Überlegung schreiben Gerald Hahn und William Meeker in ihrem Handbuch Statistical Intervals (Wiley 1991)

Ein zweiseitiges verteilungsfreies konservatives -Konfidenzintervall für F - 1 ( q ) wird erhalten ... als [ X ( l ) , X ( u ) ]100(1α)%F1(q)[X(l),X(u)]

wobei die Ordnungsstatistik der Stichprobe ist. Sie fahren fort zu sagenX(1)X(2)X(n)

Man kann ganze Zahlen symmetrisch (oder nahezu symmetrisch) um q ( n + 1 ) und so nah wie möglich beieinander wählen , abhängig von den Anforderungen, dass B ( u - 1 ; n , q ) - B ( l - 1 ; n , q ) 1 - α .0lunq(n+1)

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

Der Ausdruck links ist die Wahrscheinlichkeit, dass eine Binomialvariable einen der Werte { l , l + 1 , , u - 1 } hat . Offensichtlich ist dies die Wahrscheinlichkeit, dass die Anzahl der Datenwerte X i , die innerhalb der unteren 100 q % der Verteilung liegen, weder zu klein (kleiner als l ) noch zu groß ( u oder größer) ist.(n,q){l,l+1,,u1}Xi100q%lu

Hahn und Meeker folgen mit einigen nützlichen Bemerkungen, die ich zitieren werde.

Das vorhergehende Intervall ist konservativ, da das tatsächliche Konfidenzniveau, das durch die linke Seite von Gleichung ist, größer als der angegebene Wert 1 - α ist . ...(1)1α

Es ist manchmal unmöglich, ein verteilungsfreies statistisches Intervall zu erstellen, das mindestens das gewünschte Konfidenzniveau aufweist. Dieses Problem ist besonders akut, wenn Perzentile im Schwanz einer Verteilung aus einer kleinen Stichprobe geschätzt werden. ... In einigen Fällen kann der Analyst dieses Problem lösen, indem er und u unsymmetrisch wählt. Eine andere Alternative kann darin bestehen, ein reduziertes Konfidenzniveau zu verwenden.lu


n=100100(1α)=95%q=0.90l=85u=97

Abbildung zeigt die Binomialverteilung (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.338490th90th


lulu2R

Die mittlere Simulationsabdeckung betrug 0,9503; Die erwartete Abdeckung beträgt 0,9523

Die Übereinstimmung zwischen Simulation und Erwartung ist hervorragend.

#
# 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

Ableitung

τqτXFX1(τ)q^τ=F^1(τ)

n(q^τqτ)

Erstens brauchen wir die asymptotische Verteilung des empirischen 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)

Da Inverse eine stetige Funktion ist, können wir die Delta-Methode verwenden.

n(y¯μy)N(0,σ2)g()n(g(y¯)g(μy))N(0,σ2(g(μy))2)

x=qτg()=F1()

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

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

Wenden Sie nun die oben erwähnte Delta-Methode an.

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)

Um das Konfidenzintervall zu konstruieren, müssen wir dann den Standardfehler berechnen, indem wir Beispielgegenstücke für jeden der Begriffe in der obigen Varianz einfügen:

Ergebnis

se(q^τ)=F^(q^τ)(1F^(q^τ))nf^(q^τ)2= τ(1τ)nf^(q^τ)2

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

X


1
Könnten Sie Ihre Antwort mit Inhalten aus dem verlinkten Artikel erweitern? Links funktionieren möglicherweise nicht für immer und dann wird diese Antwort weniger nützlich
Andy

1
Was ist der Vorteil dieses asymptotischen Ergebnisses auf der Grundlage von Dichteschätzungen im Vergleich zu der Verteilung, die auf der Binomialverteilung basiert?
Michael M


Ja, sollte ich diesen Link wieder hinzufügen? Ich denke, das ist ein bekanntes Ergebnis. Ich habe es schon im Unterricht gesehen und es ist nicht schwer mit Google zu finden. Ist es in einem solchen Fall besser, eine Verknüpfung herzustellen oder sie einzugeben oder beides?
Bmciv

Ich würde beides sagen, und dass Sie es wieder bearbeiten sollten, wenn dies aus Gründen der korrekten Zuordnung vollständig daraus zitiert / abgeleitet wird. Andernfalls spielt es möglicherweise keine Rolle, ob Sie es bearbeiten, aber im Allgemeinen besteht die Stack Exchange-Richtlinie darin, nur Link-Antworten zu unterbinden, um Link-Rot zu vermeiden, und zwar aus Prinzip (die Idee ist, ein unabhängiges Repository zu sein, kein Link-Index - aber Ich bin mir nicht sicher, wie viel von diesem Szenario mehr ist als ein imaginärer "rutschiger Hang".
Nick Stauner
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.