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 :