Gini index and Lorenz curve with RCalculer l’indice de Gini et faire la courbe de Lorenz avec R
Calculer l’indice de Gini ou dessiner la courbe de Lorenz avec
R (pour mes étudiants).
You can do anything pretty easily with R, for instance, calculate concentration indexes such as the Gini index or display the Lorenz curve (dedicated to my students).
Although I did not explain it during my lectures, calculating a Gini index or displaying the Lorenz curve can be done very easily with R. All you have to do is to figure out which of the billions packages available on CRAN (ok, only 3,629 packages to be honest) will give you the answer (and for that, Google can help you: just try to google “r cran gini” and you should be able to find by yourself a few answers).
One of the packages that can do it is ineq
that you can install in R by using the command line (or by whichever alternative method you want):
install.packages("ineq")
The package should be loaded in R by
library(ineq)
and then, you can start to use it. I’ll show a very simple example of its use for the concepts that I have taught during the first year lectures. The example is based on the data AirPassengers
that you may load by simply typing:
data(AirPassengers)
(these data are the monthly totals of international airline passengers, from 1949 to 1960 and are thus relevant enough for a concentration analysis).
Gini index
The Gini index of the distribution can be calculated by:
ineq(AirPassengers,type="Gini")
[1] 0.2407563
(see also help(ineq)
for more advanced features)
Lorenz curve
The Lorenz curve is displayed by
plot(Lc(AirPassengers))
or with
plot(Lc(AirPassengers),col="darkred",lwd=2)
(if you want to change color and line width but see also help(Lc)
for an advanced use). The resulting picture is given below:
Bien que je ne l’ai pas expliqué en cours, on peut calculer l’indice de Gini ou tracer la courbe de Lorenz très facilement avec R. Il faut simplement aller trouver, parmi les millions de packages disponibles sur le CRAN (ok, seulement 3,629 packages si je veux être honnête…), celui qui inclut ces fonctionnalités (de ce point de vue, Google est votre ami : essayez simplement de taper sur Google “r cran gini” et vous devriez être capable de trouver seuls quelques réponses…).
Un des packages qui permet de faire ça est ineq
que vous pouvez installer dans R avec la commande (ou avec n’importe quelle autre méthode d’installation de package dont vous avez plus l’habitude) :
install.packages("ineq")
Le package doit ensuite être chargé dans R par
library(ineq)
et on peut ensuite l’utiliser. Je montre ci-dessous un exemple très simple d’utilisation dans le cadre des notions que j’ai abordées durant mes cours de première années. L’exemple est basé sur les données AirPassengers
que vous pouvez charger en tapant:
data(AirPassengers)
(ces données sont le nombre total de passagers sur les lignes aériennes internationales par mois, de 1949 à 1960 ; elles sont donc adaptées à une étude de concentration).
Indice de Gini
L’indice de Gini de la distribution peut être calculé par:
ineq(AirPassengers,type="Gini")
[1] 0.2407563
(voir aussi help(ineq)
pour une utilisation plus avancée)
Courbe de Lorenz
La courbe de Lorenz est tracée par
plot(Lc(AirPassengers))
ou par
plot(Lc(AirPassengers),col="darkred",lwd=2)
(si vous voulez changer la couleur et la largeur de la ligne ; voir aussi help(Lc)
pour une utilisation plus avancée). L’image obtenue est donnée ci-dessous :