Come stimare il terzo quartile di dati aggregati?


12

Esiste qualche trucco tecnico per determinare il terzo quartile se appartiene a un intervallo aperto che contiene più di un quarto della popolazione (quindi non posso chiudere l'intervallo e utilizzare la formula standard)?

modificare

Nel caso in cui ho frainteso qualcosa, fornirò un contesto più o meno completo. Ho i dati disposti in una tabella con due colonne e, diciamo, 6 righe. Ad ogni colonna corrisponde un intervallo (nella prima colonna) e una quantità di popolazione che "appartiene" a quell'intervallo. L'ultimo intervallo è aperto e comprende oltre il 25% della popolazione. Tutti gli intervalli (ad eccezione dell'ultimo) hanno lo stesso intervallo.

Dati di esempio (trasposti per la presentazione):

Column 1: (6;8),(8;10),(10;12),(12;14),(14;16),(16;∞)
Column 2:    51,    65,     68,     82,     78,   182 

La prima colonna deve essere interpretata come un intervallo di livello di reddito. Il secondo deve essere interpretato come il numero di dipendenti il ​​cui reddito appartiene all'intervallo.

La formula standard a cui sto pensando è .Q3=xQ3+3N4i=1k1ninQ3rQ3


Un presupposto comune quando si cerca di stimare i quantili con dati aggregati è quello di assumere l'uniformità all'interno dei bin. Ma quando sai qualcosa sul modo in cui è probabile che i dati vengano distribuiti (come nel caso dei redditi, che sono giustamente distorti), ipotesi che riflettono che la conoscenza tenderà a essere migliore. Un'altra alternativa sarebbe quella di supporre che sia liscia, e quindi lisciare i dati (sia tramite KDE o una certa distribuzione adattata), ridistribuire i punti all'interno dei bin in base al modello [e possibilmente rivalutare (in modo un po 'simile a EM) l'adattamento, e ridistribuire nuovamente nei contenitori] quindi stimare i quantili da quello.
Glen_b

Risposte:


16

È necessario adattare questi dati aggregati con un modello distributivo, poiché quello è l'unico modo per estrapolare nel quartile superiore.

Un modello

Per definizione, tale modello è dato da una funzione cadlag sale da 0 a 1 . La probabilità che assegna a qualsiasi intervallo ( a , b ] è F ( b ) - F ( a ) . Per adattarsi, è necessario posizionare una famiglia di possibili funzioni indicizzate da un parametro (vettoriale) θ , { F θ } Supponendo che il campione sintetizzi una raccolta di persone scelte in modo casuale e indipendente da una popolazione descritta da una specifica (ma sconosciuta) F θF01(a,b]F(b)F(a)θ{Fθ}Fθ, la probabilità del campione (o probabilità , ) è il prodotto delle singole probabilità. Nell'esempio sarebbe ugualeL

L(θ)=(Fθ(8)Fθ(6))51(Fθ(10)Fθ(8))65(Fθ()Fθ(16))182

perché persone hanno probabilità associate F θ ( 8 ) - F θ ( 6 ) , 65 hanno probabilità F θ ( 10 ) - F θ ( 8 ) e così via.51Fθ(8)Fθ(6)65Fθ(10)Fθ(8)

Adattamento del modello ai dati

La stima della verosimiglianza massima di è un valore che massimizza L (o, equivalentemente, il logaritmo di L ).θLL

Le distribuzioni di reddito sono spesso modellate da distribuzioni lognormali (vedere, ad esempio, http://gdrs.sourceforge.net/docs/PoleStar_TechNote_4.pdf ). Scrivendo , la famiglia delle distribuzioni lognormali èθ=(μ,σ)

F(μ,σ)(x)=12π(log(x)μ)/σexp(t2/2)dt.

Per questa famiglia (e molti altri) è semplice ottimizzare numericamente. Ad esempio, scriveremmo una funzione per calcolare il log ( L ( θ ) ) e quindi ottimizzarlo, perché il massimo di log ( L ) coincide con il massimo di L stesso e (di solito) log ( L ) è più semplice da calcolare e numericamente più stabile con cui lavorare:LRlog(L(θ))log(L)Llog(L)

logL <- function(thresh, pop, mu, sigma) {
  l <- function(x1, x2) ifelse(is.na(x2), 1, pnorm(log(x2), mean=mu, sd=sigma)) 
                        - pnorm(log(x1), mean=mu, sd=sigma)
  logl <- function(n, x1, x2)  n * log(l(x1, x2))
  sum(mapply(logl, pop, thresh, c(thresh[-1], NA)))
}

thresh <- c(6,8,10,12,14,16)
pop <- c(51,65,68,82,78,182)
fit <- optim(c(0,1), function(theta) -logL(thresh, pop, theta[1], theta[2]))

θ=(μ,σ)=(2.620945,0.379682)fit$par

Verifica dei presupposti del modello

F

predict <- function(a, b, mu, sigma, n) {
  n * ( ifelse(is.na(b), 1, pnorm(log(b), mean=mu, sd=sigma)) 
        - pnorm(log(a), mean=mu, sd=sigma) )

Viene applicato ai dati per ottenere le popolazioni di bin adattate o "previste":

pred <- mapply(function(a,b) predict(a,b,fit$par[1], fit$par[2], sum(pop)), 
               thresh, c(thresh[-1], NA))

Possiamo disegnare istogrammi dei dati e la previsione per confrontarli visivamente, mostrati nella prima riga di questi grafici:

Gli istogrammi

Per confrontarli, possiamo calcolare una statistica chi-quadrata. Questo di solito viene riferito a una distribuzione chi-quadrato per valutare la significatività :

chisq <- sum((pred-pop)^2 / pred)
df <- length(pop) - 2
pchisq(chisq, df, lower.tail=FALSE)

0.008768630.40

Usare l'adattamento per stimare i quantili

63(μ,σ)(2.620334,0.405454)F75th

exp(qnorm(.75, mean=fit$par[1], sd=fit$par[2]))

18.066317.76

Queste procedure e questo codice possono essere applicati in generale. La teoria della massima verosimiglianza può essere ulteriormente sfruttata per calcolare un intervallo di confidenza attorno al terzo quartile, se questo è di interesse.


Wow grazie! Devo ammettere che non mi aspettavo un macchinario così avanzato (almeno per me) da utilizzare per trovare una soluzione.
atad

Il macchinario non deve essere avanzato o sofisticato, ma qualunque cosa tu faccia dovrebbe seguire le stesse linee generali di questo esempio: assumere qualcosa sulla distribuzione del reddito, usarlo per adattarlo a un modello matematico, verificare la ragionevolezza del modello e se è una misura ragionevole, usalo per calcolare il quartile. Lungo la strada, usa metodi grafici perché possono rivelare modelli interessanti. (Qui, l'interesse è che c'è un'apparente deviazione dalla lognormalità nella fascia a basso reddito: mi chiedo perché ciò accada e cosa potrebbe dire su questa popolazione.)
whuber

+1, ottima risposta. Sembra che dovrò ancora imparare R.
dav

8

Troppo a lungo per un commento:

la risposta di Whubers è buona come una qualsiasi, ma assume l'asimmetria giusta nel suo modello log-normale. Ciò può essere realistico per i redditi di una popolazione generale, ma potrebbe non essere per i redditi di un singolo datore di lavoro di un determinato grado.

68645017.5

8017.3

17


1
16
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.