Comment estimer le troisième quartile de données regroupées?


12

Existe-t-il une astuce technique pour déterminer le troisième quartile s'il appartient à un intervalle ouvert qui contient plus d'un quart de la population (donc je ne peux pas fermer l'intervalle et utiliser la formule standard)?

Éditer

Au cas où j'aurais mal compris quelque chose, je fournirai un contexte plus ou moins complet. J'ai des données disposées dans un tableau avec deux colonnes et, disons, 6 lignes. A chaque colonne correspond un intervalle (dans la première colonne) et une quantité de population qui "appartient" à cet intervalle. Le dernier intervalle est ouvert et comprend plus de 25% de la population. Tous les intervalles (à l'exception du dernier) ont la même plage.

Exemples de données (transposées pour présentation):

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

La première colonne doit être interprétée comme une fourchette de niveaux de revenu. Le second doit être interprété comme le nombre d'employés dont le revenu appartient à l'intervalle.

La formule standard à laquelle je pense est Q3=xQ3+3N4i=1k1ninQ3rQ3.


Une hypothèse courante lorsqu'on essaie d'estimer des quantiles avec des données regroupées est de supposer l'uniformité dans les compartiments. Mais lorsque vous savez quelque chose sur la façon dont les données sont susceptibles d'être distribuées (comme pour les revenus, qui sont de droite), les hypothèses qui reflètent que les connaissances auront tendance à être meilleures. Une autre alternative serait de supposer que c'est lisse, puis de lisser les données (que ce soit par KDE ou par une distribution ajustée), de redistribuer les points dans les bacs en fonction du modèle [et éventuellement de réestimer (de façon quelque peu similaire à l'EM) l'ajustement, & redistribuer dans les bacs à nouveau] puis estimer les quantiles à partir de cela.
Glen_b -Reinstate Monica

Réponses:


16

Vous devez adapter ces données regroupées à un modèle de distribution, car c'est la seule façon d'extrapoler dans le quartile supérieur.

Un modèle

Par définition, un tel modèle est donné par une fonction cadlag passant de 0 à 1 . La probabilité qu'il attribue à n'importe quel intervalle ( a , b ] est F ( b ) - F ( a ) . Pour faire l'ajustement, vous devez poser une famille de fonctions possibles indexées par un paramètre (vectoriel) θ , { F θ } En supposant que l'échantillon résume un ensemble de personnes choisies au hasard et indépendamment d'une population décrite par un F θ spécifique (mais inconnu)F01(a,b]F(b)F(a)θ{Fθ}Fθ, la probabilité de l'échantillon (ou vraisemblance , ) est le produit des probabilités individuelles. Dans l'exemple, cela équivaudrait àL

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

parce que personnes ont des probabilités associées F θ ( 8 ) - F θ ( 6 ) , 65 ont des probabilités F θ ( 10 ) - F θ ( 8 ) , etc.51Fθ(8)Fθ(6)65Fθ(10)Fθ(8)

Adaptation du modèle aux données

L' estimation du maximum de vraisemblance de est une valeur qui maximise L (ou, de manière équivalente, le logarithme de L ).θLL

Les distributions de revenus sont souvent modélisées par des distributions lognormales (voir, par exemple, http://gdrs.sourceforge.net/docs/PoleStar_TechNote_4.pdf ). En écrivant , la famille des distributions lognormales estθ=(μ,σ)

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

Pour cette famille (et bien d'autres), il est simple d'optimiser numériquement. Par exemple, dans nous écririons une fonction pour calculer log ( L ( θ ) ) puis l'optimiser, car le maximum de log ( L ) coïncide avec le maximum de L lui-même et (généralement) log ( L ) est plus simple à calculer et numériquement plus stable pour travailler avec: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]))

La solution dans cet exemple est , trouvée dans la valeur .θ=(μ,σ)=(2.620945,0.379682)fit$par

Vérification des hypothèses du modèle

Nous devons au moins vérifier dans quelle mesure cela se conforme à la lognormalité supposée, nous écrivons donc une fonction pour calculer :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) )

Elle est appliquée aux données pour obtenir les populations de casiers ajustés ou "prédits":

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

Nous pouvons dessiner des histogrammes des données et de la prédiction pour les comparer visuellement, montrés dans la première ligne de ces graphiques:

Histogrammes

Pour les comparer, nous pouvons calculer une statistique chi carré. Ceci est généralement référé à une distribution chi carré pour évaluer la signification :

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

0.008768630.40

Utilisation de l'ajustement pour estimer les quantiles

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

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

18.066317.76

Ces procédures et ce code peuvent être appliqués en général. La théorie du maximum de vraisemblance peut être davantage exploitée pour calculer un intervalle de confiance autour du troisième quartile, si cela est intéressant.


Ouah merci! Je dois admettre que je ne m'attendais pas à ce qu'une machine aussi avancée (du moins pour moi) soit utilisée pour trouver une solution.
atad

La machinerie n'a pas besoin d'être avancée ou sophistiquée, mais quoi que vous fassiez, vous devez suivre les mêmes lignes générales de cet exemple: supposez quelque chose sur la répartition des revenus, utilisez-le pour s'adapter à un modèle mathématique, vérifiez le modèle pour le caractère raisonnable, et s'il est un ajustement raisonnable, utilisez-le pour calculer le quartile. En cours de route, utilisez des méthodes graphiques car elles peuvent révéler des modèles intéressants. (Ici, l'intérêt est qu'il y a un écart apparent par rapport à la lognormalité dans la tranche de faible revenu: je me demande pourquoi cela se produit et ce qu'il pourrait dire à propos de cette population.)
whuber

+1, excellente réponse. On dirait que je vais devoir encore apprendre R.
dav

8

Trop long pour un commentaire:

La réponse de Whubers est aussi bonne que n'importe quelle autre, mais il suppose une asymétrie à droite dans son modèle log-normal. Cela peut être réaliste pour les revenus d'une population générale, mais pas pour les revenus d'un seul employeur à un grade particulier.

68645017.5

8017.3

17


1
(+1) Merci d'avoir souligné (et analysé) la dépendance de la réponse aux hypothèses du modèle. Si (dans l'exemple) vous ne pouvez rien supposer, alors tout ce que vous pouvez dire, c'est que le troisième quartile dépasse . Si vous supposez un modèle, alors au moins vous pouvez dire au consommateur de vos conseils: "si votre image de la répartition des revenus est au moins à peu près ce que j'ai supposé, alors vous pouvez utiliser mon résultat comme une estimation raisonnable du troisième quantile. " (La plupart des conclusions statistiques sont implicitement des conditions de ce type.)16
whuber
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.