Come ottenere un intervallo di confidenza per un percentile?


15

Ho un sacco di valori di dati grezzi che sono importi in dollari e voglio trovare un intervallo di confidenza per un percentile di tali dati. Esiste una formula per un tale intervallo di confidenza?

Risposte:


20

Questa domanda, che copre una situazione comune, merita una risposta semplice, non approssimativa. Fortunatamente ce n'è uno.

Supponiamo che siano valori indipendenti da una distribuzione sconosciuta cui quantile scriverò . Ciò significa che ogni ha una probabilità di (almeno) di essere minore o uguale a . Di conseguenza il numero di minore o uguale a ha una distribuzione binomiale . F q th F - 1 ( q ) X i q F - 1 ( q ) X i F - 1 ( q )X1,…,XnFqthF−1(q)XiqF−1(q)XiF−1(q)(n,q)

Motivati ​​da questa semplice considerazione, Gerald Hahn e William Meeker nel loro manuale Statistical Intervals (Wiley 1991) scrivono

Si ottiene un intervallo di confidenza senza distribuzione su due lati per ... comeF - 1 ( q ) [ X ( l ) , X ( u ) ]100(1−α)%F−1(q)[X(l),X(u)]

dove sono le statistiche dell'ordine del campione. Continuano a direX(1)≤X(2)≤⋯≤X(n)

Si possono scegliere numeri interi simmetricamente (o quasi simmetricamente) intorno a e il più vicino possibile, subordinatamente ai requisiti cheq ( n + 1 ) B ( u - 1 ; n , q ) - B ( l - 1 ; n , q ) ≥ 1 - α .0≤l≤u≤nq(n+1)

(1)B(u−1;n,q)−B(l−1;n,q)≥1−α.

L'espressione a sinistra è la possibilità che una variabile binomiale abbia uno dei valori . Evidentemente, questa è la possibilità che il numero di valori di dati compresi nel inferiore della distribuzione non sia né troppo piccolo (inferiore a ) né troppo grande ( o maggiore).{ l , l + 1 , … , u - 1 } X i 100 q % l u(n,q){l,l+1,…,u−1}Xi100q%lu

Hahn e Meeker seguono alcune osservazioni utili, che citerò.

L'intervallo precedente è conservativo perché il livello di confidenza effettivo, dato dal lato sinistro dell'equazione , è maggiore del valore specificato . ...1 - α(1)1−α

Talvolta è impossibile costruire un intervallo statistico privo di distribuzione che abbia almeno il livello di confidenza desiderato. Questo problema è particolarmente acuto nella stima dei percentili nella coda di una distribuzione da un piccolo campione. ... In alcuni casi, l'analista può far fronte a questo problema scegliendo e , prive di simmetria. Un'altra alternativa potrebbe essere quella di utilizzare un livello di confidenza ridotto.ulu


Facciamo un esempio (fornito anche da Hahn & Meeker). Forniscono un insieme ordinato di "misurazioni di un composto da un processo chimico" e chiedono un intervallo di confidenza per il percentile. Sostengono che e funzioneranno.100 ( 1 - α ) = 95 % q = 0,90 l = 85 u = 97n=100100(1−α)=95%q=0.90l=85u=97

Figura che mostra la distribuzione binomiale (100, 0,90)

La probabilità totale di questo intervallo, come mostrato dalle barre blu nella figura, è : è il più vicino possibile al , ma è comunque al di sopra di esso, scegliendo due valori limite ed eliminando tutte le possibilità nel coda sinistra e coda destra che vanno oltre quei tagli.95 %95.3%95%

Ecco i dati, mostrati in ordine, tralasciando dei valori dal centro:81

1.491.662.05…24.3324.7225.4625.6725.7726.6428.2828.2829.0729.1631.1431.8333.2437.3253.4358.11

Il più grande è e il più grande è . L'intervallo quindi è .85th24.3397th33.24[24.33,33.24]

Reinterpretiamo questo. Si supponeva che questa procedura avesse almeno una probabilità del di coprire il percentile. Se quel percentile supera effettivamente , ciò significa che avremo osservato o più valori su nel nostro campione che sono inferiori al percentile. Questo è troppo. Se quel percentile è inferiore a , ciò significa che avremo osservato o meno valori nel nostro campione che sono inferiori al percentile. Sono troppo pochi.95%90th33.249710090th24.338490th In entrambi i casi, esattamente come indicato dalle barre rosse nella figura, si tratterebbe della prova del percentile giace in questo intervallo.90th


Un modo per trovare buone scelte di ed è quello di cercare in base alle proprie esigenze. Qui è un metodo che inizia con un intervallo approssimato simmetrica e poi ricerca variando sia e fino a , al fine di trovare un intervallo con buona copertura (se possibile). È illustrato con un codice. È impostato per verificare la copertura nell'esempio precedente per una distribuzione normale. Il suo output èlulu2R

La copertura media della simulazione era 0,9503; la copertura prevista è 0,9523

L'accordo tra simulazione e aspettativa è eccellente.

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

Derivazione

Il -quantile (questo è il concetto più generale del percentile) di una variabile casuale è dato da . La controparte campione può essere scritta come - questo è solo il quantile di esempio. Siamo interessati alla distribuzione di:τqτXFX−1(τ)q^τ=F^−1(τ)

n(q^τ−qτ)

Innanzitutto, abbiamo bisogno della distribuzione asintotica del cdf empirico.

Poiché , puoi usare il teorema del limite centrale. è una variabile casuale bernoulli, quindi la media è e la varianza è .F^(x)=1n∑1{Xi<x}1{Xi<x}P(Xi<x)=F(x)F(x)(1−F(x))

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

Ora, poiché inverse è una funzione continua, possiamo usare il metodo delta.

[** Il metodo delta dice che se e è una funzione continua, allora **]n(y¯−μy)→N(0,σ2)g(⋅)n(g(y¯)−g(μy))→N(0,σ2(g′(μy))2)

Nella parte sinistra di (1), prendi ex=qτg(⋅)=F−1(⋅)

n(F−1(F^(qτ))−F−1(F(qτ)))=n(q^τ−qτ)

[** nota che nell'ultimo passaggio c'è un po 'di mano perché , ma sono asintoticamente uguali se noiosi da mostrare **]F−1(F^(qτ))≠F^−1(F^(qτ))=q^τ

Ora applica il metodo delta sopra menzionato.

Since (funzione inversa teorema)ddxF−1(x)=1f(F−1(x))

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

Quindi, per costruire l'intervallo di confidenza, dobbiamo calcolare l'errore standard collegando le controparti campione di ciascuno dei termini nella varianza sopra:

Risultato

Quindi√se(q^τ)=F^(q^τ)(1−F^(q^τ))nf^(q^τ)2= τ(1−τ)nf^(q^τ)2

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

Ciò richiederà di stimare la densità di , ma questo dovrebbe essere piuttosto semplice. In alternativa, è possibile avviare facilmente anche il CI di avvio.X


1
Potresti espandere la tua risposta con i contenuti dell'articolo collegato? I collegamenti potrebbero non funzionare per sempre e quindi questa risposta diventerebbe meno utile
— Andy,

1
Qual è il vantaggio di questo risultato asintotico basato su stime di densità rispetto alla distribuzione libera cibased sulla distribuzione binomiale?
— Michael M,


Sì, dovrei aggiungere di nuovo quel link? Penso che questo sia un risultato ben noto. L'ho visto in classe prima e non è difficile da trovare su Google. In un caso come questo, è meglio collegarsi ad esso o digitarlo o entrambi?
— bmciv,

Direi entrambi e che dovresti modificarlo nuovamente se questo è citato / derivato interamente da esso per motivi di corretta attribuzione. Altrimenti potrebbe non importare se lo modifichi, ma in generale, la politica di Stack Exchange è di scoraggiare le risposte di soli collegamenti per evitare la putrefazione dei collegamenti e per principio (l'idea è di essere un repository indipendente, non un indice di link - ma Non sono sicuro di quanto di questo scenario sia più di un immaginario "pendio scivoloso").
— Nick Stauner,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.