Wie schätze ich das dritte Quartil der gruppierten Daten?

12

Gibt es einen technischen Trick, um das dritte Quartil zu bestimmen, wenn es zu einem offenen Intervall gehört, das mehr als ein Viertel der Bevölkerung enthält (also kann ich das Intervall nicht schließen und die Standardformel verwenden)?

Bearbeiten

Falls ich etwas missverstanden habe, werde ich mehr oder weniger vollständigen Kontext bereitstellen. Ich habe Daten in einer Tabelle mit zwei Spalten und 6 Zeilen angeordnet. Zu jeder Spalte gehört ein Intervall (in der ersten Spalte) und eine Bevölkerungsmenge, die zu diesem Intervall "gehört". Das letzte Intervall ist offen und umfasst mehr als 25% der Bevölkerung. Alle Intervalle (mit Ausnahme des letzten) haben den gleichen Bereich.

Beispieldaten (zur Präsentation übertragen):

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

Die erste Spalte ist als Einkommensbereich zu interpretieren. Die zweite ist als Anzahl der Mitarbeiter zu interpretieren, deren Einkommen zum Intervall gehört.

Die Standardformel, über die ich nachdenke, ist .Q3=xQ3+3N4i=1k1ninQ3rQ3

ein bisschen
quelle
Eine verbreitete Annahme beim Versuch, Quantile mit gruppierten Daten zu schätzen, ist die Annahme einer Einheitlichkeit innerhalb von Gruppen. Wenn Sie jedoch etwas über die Art und Weise wissen, in der die Daten wahrscheinlich verteilt werden (wie bei Einkommen, bei denen es sich um richtige Abweichungen handelt), werden Annahmen, die das Wissen widerspiegeln, tendenziell besser sein. Eine andere Alternative wäre anzunehmen, dass es glatt ist, und dann die Daten (ob durch KDE oder eine angepasste Verteilung) zu glätten, Punkte innerhalb von Behältern entsprechend dem Modell neu zu verteilen [und möglicherweise die Passung neu zu schätzen (in etwas EM-ähnlicher Weise), & wieder in Bins umverteilen] und daraus Quantile abschätzen.
Glen_b -Reinstate Monica

Antworten:

16

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)-μ)/σ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.LRlog(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:

Histogramme

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.008768630.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.

whuber
quelle
Wow, danke! Ich muss zugeben, dass ich nicht damit gerechnet habe, dass solch eine fortschrittliche (zumindest für mich) Maschine verwendet wird, um eine Lösung zu finden.
Am
Die Maschinerie muss nicht fortgeschritten oder hochentwickelt sein, aber was auch immer Sie tun, sollten Sie den gleichen allgemeinen Grundsätzen dieses Beispiels folgen: Nehmen Sie etwas über die Einkommensverteilung an, verwenden Sie diese, um ein mathematisches Modell anzupassen, überprüfen Sie das Modell auf Angemessenheit und ob es ist Bei einer angemessenen Anpassung wird das Quartil berechnet. Verwenden Sie dabei grafische Methoden, da diese interessante Muster aufdecken können. (Hier besteht das Interesse daran, dass es eine offensichtliche Abweichung von der Lognormalität in der niedrigen Einkommensklasse gibt: Ich würde mich fragen, warum das passiert und was es über diese Population aussagen könnte.)
whuber
+1, tolle Antwort. Sieht so aus, als müsste ich R noch lernen.
Dav
8

Zu lange für einen Kommentar:

Die Antwort von Whubers ist so gut wie jede andere, aber er geht in seinem logarithmischen Normalmodell von einer rechten Schiefe aus. Dies kann für Einkommen einer allgemeinen Bevölkerung realistisch sein, gilt jedoch möglicherweise nicht für Einkommen eines einzelnen Arbeitgebers in einer bestimmten Besoldungsgruppe.

68645017.5 .

8017.3

17

Henry
quelle
1
16