Statistiques pour les programmeurs - Table des matières
On suppose que vous avez déjà lu les articles suivants. [Statistiques pour les programmeurs] Distribution de fréquence et histogramme
Il s'agit d'un graphique créé pour vérifier les biais de revenu et de population.
À titre d'exemple, nous étudierons le biais démographique des villages dans une certaine zone. Le nombre total de villages est de 100. La population de chaque village est la suivante. C'est difficile à voir, mais la population totale de tous les villages est répertoriée.
population = [
124, 151, 102, 189, 160, 145, 120, 132, 135, 159, 114, 175, 171, 124, 154,
177, 152, 120, 144, 121, 113, 163, 186, 196, 183, 105, 130, 149, 130, 123,
175, 143, 186, 182, 184, 174, 134, 158, 196, 109,
216, 285, 209, 288, 276, 281, 283, 200, 262,
267, 235, 206, 245, 232, 299, 249, 295, 232, 206, 237,
369,
487, 450, 487,
597, 548,
682,
712, 706, 755, 700, 709, 747, 773, 796, 739, 716, 756, 767, 752, 728, 750,
829, 875, 845, 881, 865, 804, 845, 890, 872, 833, 874, 845, 859, 837, 847, 811, 893, 807
]
La courbe de Lorenz nécessite deux types de fréquences relatives cumulées sur l'axe X et l'axe Y.
Je vais expliquer chacun d'eux.
La première consiste à calculer la fréquence relative cumulée, où la classe est la population et la fréquence est le nombre de villages.
Calculez de la même manière que celle décrite dans cet article. [Statistiques pour les programmeurs] Distribution de fréquence et histogramme
classe | Valeur de classe | la fréquence | Fréquence relative | Fréquence relative cumulative |
---|---|---|---|---|
Plus de 100 personnes-Moins de 200 personnes | 150 | 40 | 0.40 | 0.40 |
Plus de 200 personnes-Moins de 300 personnes | 250 | 20 | 0.20 | 0.60 |
Plus de 300 personnes-Moins de 400 personnes | 350 | 1 | 0.01 | 0.61 |
Plus de 400 personnes-Moins de 500 personnes | 450 | 3 | 0.03 | 0.64 |
Plus de 500 personnes-Moins de 600 personnes | 550 | 2 | 0.02 | 0.66 |
Plus de 600 personnes-Moins de 700 personnes | 650 | 1 | 0.01 | 0.67 |
Plus de 700 personnes-Moins de 800 personnes | 750 | 15 | 0.15 | 0.82 |
Plus de 800 personnes-Moins de 900 personnes | 850 | 18 | 0.18 | 1.00 |
La seconde consiste à calculer la fréquence relative cumulée, où la classe est la population et la fréquence est le nombre total de villages pour chaque classe.
Pour obtenir le nombre total de villages pour chaque classe, calculez en fonction de la valeur de la liste de variables nommée population ci-dessus. Par exemple, le nombre total de personnes «400 ou plus - moins de 500» est de 1 424, comme indiqué ci-dessous.
1424 = 487 + 450 + 487
De plus, comme la population totale de tous les villages est de 41029 (la somme de toutes les valeurs de population), la fréquence relative est Dans le cas de "400 ou plus - moins de 500", il sera de 0,03 (arrondi au troisième chiffre inférieur).
0.03 = \frac{1424}{41029}
Chaque classe est calculée de cette manière, et la fréquence relative cumulée du nombre de personnes est calculée.
Il s'agit d'un tableau de distribution de fréquences qui résume le premier et le second mentionnés ci-dessus. (La fréquence relative et la fréquence relative cumulée sont arrondies à la troisième décimale inférieure)
classe | Valeur de classe | la fréquence | Fréquence relative | Fréquence relative cumulative de fréquence | Nombre total de personnes (fréquence) | Fréquence relative du nombre de personnes | Fréquence relative cumulée du nombre de personnes |
---|---|---|---|---|---|---|---|
Plus de 100 personnes-Moins de 200 personnes | 150 | 40 | 0.40 | 0.40 | 5988 | 0.14 | 0.15 |
Plus de 200 personnes-Moins de 300 personnes | 250 | 20 | 0.20 | 0.60 | 5003 | 0.12 | 0.27 |
Plus de 300 personnes-Moins de 400 personnes | 350 | 1 | 0.01 | 0.61 | 369 | 0.01 | 0.28 |
Plus de 400 personnes-Moins de 500 personnes | 450 | 3 | 0.03 | 0.64 | 1424 | 0.03 | 0.31 |
Plus de 500 personnes-Moins de 600 personnes | 550 | 2 | 0.02 | 0.66 | 1145 | 0.02 | 0.34 |
Plus de 600 personnes-Moins de 700 personnes | 650 | 1 | 0.01 | 0.67 | 682 | 0.01 | 0.36 |
Plus de 700 personnes-Moins de 800 personnes | 750 | 15 | 0.15 | 0.82 | 11106 | 0.27 | 0.63 |
Plus de 800 personnes-Moins de 900 personnes | 850 | 18 | 0.18 | 1.00 | 15312 | 0.37 | 1.00 |
La courbe de Lorenz est un graphique avec la «fréquence relative cumulée de la fréquence» sur l'axe des x et la «fréquence relative cumulée du nombre de personnes» sur l'axe des y.
Représentez graphiquement les données ci-dessus à l'aide de matplotlib.
Référence: Draw graph with jupyter (ipython notebook) + matplotlib + vagrant
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
#Coordonnées horizontales,Fréquence relative cumulative de fréquence
left = np.array([
0,
0.40,
0.60,
0.61,
0.64,
0.66,
0.67,
0.82,
1.00,
])
#Coordonnées verticales,Fréquence relative cumulée du nombre de personnes
height = np.array([
0,
0.15,
0.27,
0.28,
0.31,
0.34,
0.36,
0.63,
1.00
])
ax.plot(left, height, marker='o')
#Titre du graphique
plt.title('Lorenz Curve')
#Titre de l'axe X
plt.xlabel('villages')
#Titre de l'axe Y
plt.ylabel('population')
left = np.array([0, 0.2, 0.4, 0.6, 0.8, 1.0])
height = np.array([0, 0.2, 0.4, 0.6, 0.8, 1.0])
ax.plot(left, height, linestyle='dashed', color='black')
#Étiquette de l'axe X
label = [0, 0.2, 0.4, 0.6, 0.8, 1.0]
#Emplacement de l'axe X pour atteindre l'étiquette
ax.set_xticks(label)
#Définissez l'étiquette sur l'axe X
ax.set_xticklabels(label)
#Emplacement de l'axe Y pour atteindre l'étiquette
ax.set_yticks(label)
#Définissez l'étiquette sur l'axe Y
ax.set_yticklabels(label)
#dessin
plt.show()
Cette courbe bleue est la courbe de Lorenz.
Je vais vous expliquer comment regarder la courbe de Lorenz créée ci-dessus.
Regardons les coordonnées de la pièce dessinée avec la ligne rouge. Ce que nous pouvons voir à partir de là, c'est qu'environ 65% des villages ne représentent qu'environ 36% de la population totale. Cela signifie que les 64% restants de la population sont biaisés en faveur d'un autre village. De plus, plus le renflement de la courbe est grand, plus il est biaisé.
La valeur numérique de ce biais est appelée coefficient de Gini. En ce qui concerne le calcul du coefficient de Gini, premièrement, la ligne brisée dans le graphique ci-dessus est appelée "ligne d'égalité parfaite". Le coefficient de Gini est obtenu en doublant l'aire entre cette «ligne d'égalité parfaite» et la courbe de Lorenz.
Le coefficient de Gini est une valeur de 0 à 1, et plus il est proche de 1, plus le biais est grand, et plus il est proche de 0, moins le biais est important.
À propos, lorsque le coefficient de Gini est égal à 0, la courbe de Lorenz chevauche la droite d'égalité parfaite.
Calculez en fait le coefficient de Gini. Ici, pour faciliter le calcul, les valeurs suivantes sont utilisées à la place de l'exemple ci-dessus.
Axe X
0, 0.4, 0.8, 1
Axe Y
0, 0.2, 0.6, 1.0
À partir de cette valeur, la courbe de Lorentz suivante est créée.
Divisez ce graphique comme indiqué ci-dessous et soustrayez l'aire des parties 1, 2 et 3 de la figure du triangle avec la ligne d'égalité parfaite comme côté diagonal et doublez-la pour obtenir le coefficient de Gini.
Tout d'abord, trouvez l'aire du triangle avec la ligne d'égalité parfaite comme côté diagonal.
0.5 = 1\times1\div2
Trouvez la zone de la partie 1. Puisqu'il s'agit d'un triangle rectangle avec une base de 0,4 et une hauteur de 0,2, il peut être calculé comme suit.
0.04 = 0.4\times0.2\div2
Trouvez la zone de la partie 2. Lorsqu'il est tourné vers la droite, il devient un trapèze avec une base supérieure de 0,2, une base inférieure de 0,6 et une hauteur de 0,4, qui peut être calculée ci-dessous.
0.16 = (0.2+0.6)\times0.4\div2
Trouvez la zone de la partie 3. Lorsqu'il est également tourné vers la droite, il devient un trapèze avec une base supérieure de 0,6, une base inférieure de 1 et une hauteur de 0,2, de sorte qu'il peut être calculé comme suit.
0.16 = (0.6+1)\times0.2\div2
Si vous soustrayez ces trois valeurs de l'aire du triangle dont le côté diagonal est la droite d'égalité parfaite et que vous la doublez, le coefficient de Gini sera obtenu. Par conséquent, 0,28 est le coefficient de Gini comme indiqué dans la formule suivante.
0.28 = (0.5 - 0.04 - 0.16 - 0.16)\times2
c'est tout
Recommended Posts