2015年06月06日

ローレンツ曲線とジニ係数についてまとめてみた /データ分析の解説

ローレンツ曲線(Lorenz curve)というのは、所得や貯蓄の格差つまり分配の不公平さの状態を視覚化させるグラフで、ジニ係数(Gini coefficient)とは、それを代表値として数値で表したものです。
ところで、格差(Differential)とは、、「同類のものの間における価格、資格、等級、水準等の格付け上の差」と定義されています。。。
20150606_11.jpg

もう少し具体的に説明すると、ローレンツ曲線は横軸に人数の累積構成比、縦軸に分配金額(所得や貯蓄額)の累積構成比をとったグラフの曲線のことで、全ての人に格差なく平等に分配されていると直線になりこれを"均等分配線"と呼びます。これに対し分配に格差あると下方向に膨らんだ凹の曲線になります。
 
ジニ係数は、均等分配線とローレンツ曲線に囲まれた面積を均等分配線の下(三角形)の面積で割った値で、格差が無いと"0"、格差が大きいと"1"に近付きます。

それでは、簡単な例で実際にローレンツ曲線、ジニ係数を求めてみましょう。
100万円を5人に分配します。
2万円、5万円、8万円、15万円、20万円、50万円と格差をつけて不平等に5人に分配します。
そして、分配額を小さい順に並べ、人数の累積値、分配額の累積値を求め、それらを合計値で割った人数の累積構成比、分配金額の累積構成比を求めます。
20150606_01.JPG

これらの点をプロットしたのがローレンツ曲線になります。
また、均等分配線は5人に20万円づつ一律に分配されることなので、原点(0,0)と(1,1)を結ぶ直線になります。
20150606_02.JPG

この場合、格差が最大になる場合は、4人は分配されず1人にだけ100万円が分配される時で、その時のローレンツ曲線はこうなります。
20150606_03.JPG

では次に、ジニ係数を求めてみましょう。
分母の均等分配線の三角形の面積は縦軸、横軸とも最大値が"1"なので、分母は"0.5"になります。
で、問題は分子の面積です。
これは、均等分配線の下の面積から、ローレンツ曲線の下の面積引けば求められます。
20150606_13.jpg
余談ですが、この分子の様な形を"弓形"と言い、直線部分を"弦"、曲線部分を"弧"と言います。

では、ローレンツ曲線の下の面積をどうやって求めるかですが、、
曲線と言っても実際は点をプロットして直線でつないでいるので、台形の集合になっているわけです。
ということで、それぞれの台形の面積を計算して合計すれば、求めることができるわけです。
ちなみに、台形の面積は、(上底+下底)×高さ÷2です。。。
20150606_12.jpg

ここで、
上底:ひとつ前の分配額の累積構成比
下底:その個所の分配額の累積構成比
高さ:その個所の人数の累積構成比とひとつ前の人数の累積構成比の差
になります。

んで、さっきの100万円の分配のローレンツ曲線の下の面積を計算すると。。。
20150606_04.JPG

面積は"0.257"になって、求める弓形の面積は"0.5-0.257=0.243"になります。
で、ジニ係数は"0.243÷0.5=0.487"となりました。

例えば、国税庁が公表している"民間給与実態統計調査"のデータから、H15年とH25年のローレンツ曲線を画いて格差が広がったかどうか見てみましょう。
20150606_05.JPG

100万円の分配の時は各分配金額がすべて1人づつでしたので、分配額を単純に足せば100万円になりましたが、このデータは給与の階級毎に多くの人数が存在します。なので一旦、"人数×金額"で階級毎の総額を求めてから総額の累積構成比を求めなければなりません。
20150606_06.JPG

で、ローレンツ曲線はこうなりました。
20150606_07.JPG
かなり下に膨らんでいて格差が大きいことがわかります。
ですが、H15から10年後のH25で格差が広がっているかと思いきや、ほとんど変わっていないようです、
ただ、ジニ係数はH15年が"0.352"、H25年が"0.362"と僅かに増加しているのがわかります。
このデータは「1年を通じて勤務した」人なので、いわゆる「定職に就いている人」と解釈することもできます。
「1年未満勤務者」なども確認してみる必要がありそうです。
因みにジニ係数0.4が警戒ラインだとか。。。


関連ページ
データ分析の解説/メニュー


posted by haku1569 at 23:42| データ分析の解説 | このブログの読者になる | 更新情報をチェックする
' + adSrc + '<' + '/body>'); d.close(); } loadAd(); window.setTimeout(loadAd, reloadSec * 1000); window.setTimeout(function() {adDiv.style.display = 'none'}, hideSec * 1000); }); }