Python でジニ係数を計算する方法 (例付き)
イタリアの統計学者コラード・ジニにちなんで名付けられたジニ係数は、人口の所得分布を測定する方法です。
ジニ係数の値の範囲は 0 から 1 で、値が大きいほど所得格差が大きいことを表します。
- 0 は完全な収入の平等を表します (誰もが同じ収入を持っています)
- 1 は完全な所得不平等を表します (1 人の個人がすべての所得を持っています)
国別のジニ係数のリストは、こちらでご覧いただけます。
次の例は、Python でジニ係数を計算する方法を示しています。
例: Python でジニ係数を計算する
Python でジニ係数を計算するには、まず NumPy 値の配列のジニ係数を計算する単純な関数を定義する必要があります。
import numpy as np
#define function to calculate Gini coefficient
def gini(x):
total = 0
for i, xi in enumerate(x[:-1], 1):
total += np. sum (np. abs (xi - x[i:]))
return total / (len(x)**2 * np.mean (x))
次に、この関数を使用して、所得値の表のジニ係数を計算します。
たとえば、10 人の年収の次のリストがあるとします。
収入: 50,000ドル、50,000ドル、70,000ドル、70,000ドル、70,000ドル、90,000ドル、150,000ドル、150,000ドル、150,000ドル、150,000ドル
次のコードは、作成したばかりのgini()関数を使用して、この母集団のジニ係数を計算する方法を示しています。
#define NumPy array of income values
income = np. array ([50, 50, 70, 70, 70, 90, 150, 150, 150, 150])
#calculate Gini coefficient for array of incomes
gini(incomes)
0.226
ジニ係数は0.226であることがわかります。
注: 現実のシナリオでは、特定の国の個人の収入は何十万もの異なるものになりますが、この例では、単純な説明として 10 人の個人を使用しました。
追加リソース
次のチュートリアルでは、さまざまな統計ソフトウェアを使用してジニ係数を計算する方法を説明します。