Sie müssen diese zusammengefassten Daten mit einem Verteilungsmodell kombinieren, da dies die einzige Möglichkeit ist, ins obere Quartil zu extrapolieren.
Ein Model
Per Definition ist ein solches Modell durch eine Cadlag- Funktion die von 0 auf 1 steigt . Die Wahrscheinlichkeit, die einem Intervall ( a , b) zugewiesen wird, ist F ( b ) - F ( a ) . Um die Anpassung vorzunehmen, müssen Sie eine Familie möglicher Funktionen setzen, die durch einen (Vektor) -Parameter θ , { F θ } indiziert sind. Angenommen, die Stichprobe fasst eine Ansammlung von Personen zusammen, die nach dem Zufallsprinzip und unabhängig von einer Population ausgewählt wurden, die durch ein bestimmtes (aber unbekanntes) F θ beschrieben wirdF01(a,b]F(b)−F(a)θ{Fθ}Fθ die Wahrscheinlichkeit der Probe (oder Wahrscheinlichkeit , ) ist das Produkt der Einzelwahrscheinlichkeiten. Im Beispiel wäre es gleichL
L (θ)=(Fθ(8)−Fθ(6))51(Fθ( 10 ) -Fθ( 8 ))65⋯ (Fθ( ∞ ) -Fθ( 16 ))182
da der Personen zugeordnete Wahrscheinlichkeiten F θ ( 8 ) - F θ ( 6 ) haben , haben 65 Wahrscheinlichkeiten F θ ( 10 ) - F θ (51Fθ( 8 ) - Fθ( 6 )65 , und so weiter.Fθ( 10 ) - Fθ( 8 )
Anpassen des Modells an die Daten
Die Maximum-Likelihood-Schätzung von ist ein Wert, der L maximiert (oder äquivalent den Logarithmus vonθL ).L
Einkommensverteilungen werden häufig durch logarithmische Normalverteilungen modelliert (siehe z. B. http://gdrs.sourceforge.net/docs/PoleStar_TechNote_4.pdf ). Wenn man schreibt, ist die Familie der logarithmischen Normalverteilungenθ = ( μ ,σ)
F( μ , σ)( x ) = 12 π--√∫( log( x ) - & mgr; ) / & sgr ;.- ∞exp( - t2/ 2)dt .
Für diese Familie (und viele andere) ist es einfach, numerisch zu optimieren . Zum Beispiel würden wir in eine Funktion schreiben, um log ( L ( θ ) ) zu berechnen und dann zu optimieren, da das Maximum von log ( L ) mit dem Maximum von L selbst und (normalerweise) log ( L ) übereinstimmt.LR
Log(L(θ))log(L)Llog(L) einfacher zu berechnen ist und numerisch stabiler zu arbeiten mit:
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]))
Die Lösung in diesem Beispiel ist , in dem Wert gefunden .θ=(μ,σ)=(2.620945,0.379682)fit$par
Modellannahmen überprüfen
Wir müssen zumindest überprüfen, wie gut dies mit der angenommenen Lognormalität übereinstimmt, also schreiben wir eine Funktion, um zu berechnen :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) )
Es wird auf die Daten angewendet, um die angepassten oder "vorhergesagten" Behälterpopulationen zu erhalten:
pred <- mapply(function(a,b) predict(a,b,fit$par[1], fit$par[2], sum(pop)),
thresh, c(thresh[-1], NA))
Wir können Histogramme der Daten und der Vorhersage zeichnen, um sie visuell zu vergleichen. Dies wird in der ersten Reihe dieser Diagramme gezeigt:
Zum Vergleich können wir eine Chi-Quadrat-Statistik berechnen. Dies wird üblicherweise als Chi-Quadrat-Verteilung bezeichnet, um die Signifikanz zu bestimmen :
chisq <- sum((pred-pop)^2 / pred)
df <- length(pop) - 2
pchisq(chisq, df, lower.tail=FALSE)
0.00876−8630.40 , was (hypothetisch, da wir uns derzeit nur im Erkundungsmodus befinden) darauf hinweist, dass diese Statistik keinen signifikanten Unterschied zwischen den Daten und der Anpassung feststellt.
Verwenden der Anpassung zum Schätzen von Quantilen
63(μ,σ)(2.620334,0.405454)F75th
exp(qnorm(.75, mean=fit$par[1], sd=fit$par[2]))
18.066317.76
Diese Verfahren und dieser Code können im Allgemeinen angewendet werden. Die Theorie der maximalen Wahrscheinlichkeit kann weiter genutzt werden, um ein Konfidenzintervall um das dritte Quartil zu berechnen, wenn dies von Interesse ist.