È 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( Un )θ{ 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:LR
log( 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:
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.00876−8630.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.