Un package R a été mis en ligne sur Github afin de pouvoir mettre en place la méthodologie pour estimer une courbe de Lorenz présentée dans mon article « Estimating Inequality Measures from Quantile Data ».
L’Institut National de la Statistique et des Études Économiques (INSEE) fournit des données sur les revenus à une échelle très fine appelée iris (https://www.insee.fr/fr/statistiques/3288151). Les déciles et les quartiles de revenu dans ces zones sont disponibles. Les classes de revenus sont déterminées à partir des quantiles. L’objectif est de modéliser une courbe de Lorenz et des mesures d’inégalités à partir de ces quantiles.
Chargement du package
library(devtools)
devtools::install_github("EnoraBelz/Inequality")
library(inequalityQuantile)
library(tidyverse)
library(binequality)
Chargement des données
data("tabulated_income")
tabulated_BelAir5 = tabulated_income %>% filter(iris== "Bel Air 5")
Parts des revenus
La première étape consiste à déterminer les paramètres de la distribution GB2 par maximum de vraisemblance. Ces paramètres sont utilisés pour identifier la densité et la distribution des revenus dans la région. Les moyennes conditionnelles de classes de revenus peuvent ensuite être calculées. Ces moyennes sont utilisées pour calculer les parts cumulées des revenus et les parts cumulées de population (qui sont les niveaux de déciles). Par exemple, pour l’iris Bel Air 5 :
LC_BelAir5 = compute_LC(ID=tabulated_BelAir5$iris,
p=tabulated_BelAir5$prop_cum_population,
bound_min = tabulated_BelAir5$bound_min,
bound_max = tabulated_BelAir5$bound_max,
nb = tabulated_BelAir5$prop_population,
method = "CondExp")
Classe (min) | Classe (max) | Revenu moyen (€) | Part cumulée des revenus | Part cumulée de la population |
---|---|---|---|---|
0 | 10570 | 7403.64 | 0.02 | 0.10 |
10570 | 18696 | 14947.50 | 0.06 | 0.20 |
18696 | 21558 | 20135.63 | 0.08 | 0.25 |
21558 | 24344 | 22948.68 | 0.12 | 0.30 |
24344 | 28298 | 26296.94 | 0.18 | 0.40 |
28298 | 32626 | 30412.82 | 0.26 | 0.50 |
32626 | 37782 | 35113.38 | 0.36 | 0.60 |
37782 | 43444 | 40488.39 | 0.46 | 0.70 |
43444 | 46088 | 44737.59 | 0.52 | 0.75 |
46088 | 50926 | 48410.77 | 0.58 | 0.80 |
50926 | 61920 | 55936.68 | 0.73 | 0.90 |
61920 | / | 102703.30 | 1.00 | 1.00 |
Optimisation des formes fonctionnelles
Pour estimer la courbe de Lorenz empirique, toutes les formes fonctionnelles possibles peuvent être appliquées sur les parts cumulées du revenu et de la population.
Les paramètres sont optimisés par l’estimateur NLS. Une fonction est définie pour optimiser les paramètres de la forme fonctionnelle et tenir compte des différentes contraintes sur les paramètres. Pour chaque forme fonctionnelle, on obtient les paramètres optimaux de la courbe de Lorenz. Les différentes formes peuvent également être comparées les unes aux autres à l’aide de mesures d’ajustement.
Il est ensuite possible de l’appliquer aux parts calculées pour l’iris de Bel Air 5.
optim_BelAir5 = run_optim_LC(ID=unique(LC_BelAir5$ID),
income_cum = LC_BelAir5$income_cum,
population_cum = LC_BelAir5$population_cum,
function_form=c("KP", "RGKO", "ARNOLD", "CHOTIKAPANICH", "SARABIA", "ORTEGA", "ROHDE"))
Forme fonctionnelle | Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | NLS | Statistique du Chi-Deux |
---|---|---|---|---|---|---|
KP | 1.000 | 1.426 | / | / | 0.00376 | 0.0103 |
RGKO | 0.726 | 1.446 | / | / | 0.00020 | 0.0015 |
ARNOLD | 1.279 | 2.219 | / | / | 0.00238 | 0.0149 |
CHOTIKAPANICH | 2.227 | / | / | / | 0.00319 | 0.0110 |
SARABIA | 0.000 | 0.692 | 1.761 | 0.301 | 0.00003 | 0.0004 |
ORTEGA | 0.470 | 0.649 | / | / | 0.00014 | 0.0011 |
ROHDE | 1.532 | / | / | / | 0.00260 | 0.0215 |
Mesures d’inégalités
La courbe de Lorenz est utilisée pour calculer les indices d’inégalité (indices de Gini, Pietra, Theil, topshares).
Les coefficients de Gini peuvent être dérivés des formes fonctionnelles en fonction de paramètres.
optim_BelAir5 %>% ungroup() %>% rowwise() %>%
dplyr::mutate(Gini_est = compute_Gini(function_form=function_form,
par1=par1,
par2=par2,
par3=par3,
par4=par4))
L’indice de Pietra est défini en fonction de la courbe de Lorenz, il correspond à l’écart maximal entre L(p) et p.
optim_BelAir5 %>% ungroup() %>% rowwise() %>%
dplyr::mutate(Pietra_est = compute_Pietra(function_form=function_form,
par1=par1,
par2=par2,
par3=par3,
par4=par4))
Les indices de Theil et les topshares peuvent aussi être défini en fonction de la courbe de Lorenz.
optim_BelAir5 %>% ungroup() %>% rowwise() %>%
dplyr::mutate(TL_est = compute_TL(function_form=function_form,
par1=par1,
par2=par2,
par3=par3,
par4=par4))
optim_BelAir5 %>% ungroup() %>% rowwise() %>%
dplyr::mutate(TH_est = compute_TH(function_form=function_form,
par1=par1,
par2=par2,
par3=par3,
par4=par4))
optim_BelAir5 %>% ungroup() %>% rowwise() %>%
dplyr::mutate(topshare95 = compute_topshare(p=0.95,
function_form=function_form,
par1=par1,
par2=par2,
par3=par3,
par4=par4))
Il est alors possible de cartographier Paris selon les mesures d’inégalités calculés dans chacunes des iris de la capitale.



