本文從基尼系數定義、洛倫茲曲線定義、gini系數應用案例、gini系數python和excel計算四部分展開說明,預計用時3分鐘。
基尼系數:G=SA/(SA SB)
如上圖
4.gini系數代碼和excel計算方式
4.1gini系數python計算
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Tue Jul 2 15:10:37 2019@author: cainiao"""# coding=utf-8# !/usr/bin/pythonfrom scipy.integrate import odeintimport numpy as npimport pandas as pdfrom matplotlib import pyplot as pldef main():data=(pd.read_csv('/Users/jinzhi/Desktop/gini.txt',encoding='UTF-8',sep='\t')).sort_values(by=['money1'],ascending=True)wealths=data['money1'] pl.rcParams['font.sans-serif'] = ['SimHei'] pl.rcParams['axes.unicode_minus'] = False gini(wealths=wealths)# 計算基尼系數的簡單方法def gini(wealths): # 計算數組累計值,從 0 開始 wealths=wealths #wealths = [1.5, 2, 3.5, 10, 4.2, 2.1, 1.1, 2.2, 3.1, 5.1, 9.5, 9.7, 1.7, 2.3, 3.8, 1.7, 2.3, 5, 4.7, 2.3, 4.3, 12] cum_wealths = np.cumsum(sorted(np.append(wealths, 0))) # 取最後一個,也就是原數組的和 sum_wealths = cum_wealths[-1] # 人數的累積占比 xarray = np.array(range(0, len(cum_wealths))) / np.float(len(cum_wealths) - 1) # 均衡收入曲線 upper = xarray # 收入累積占比 yarray = cum_wealths / sum_wealths # 繪制基尼系數對應的洛倫茲曲線 fig, ax = pl.subplots() line1, = ax.plot(xarray, yarray, label='Line of Equality(45Degree)') line2, = ax.plot(xarray, upper, label='Lorenz Curve') ax.set_title('gini') ax.set_xlabel(u'users') ax.set_ylabel(u'money') ax.plot(xarray, yarray) ax.plot(xarray, upper) #ax.set_xlabel('nums') #ax.set_ylabel('money') ax.legend() pl.show() # 計算曲線下面積的通用方法 B = np.trapz(yarray, x=xarray) # 總面積 0.5 A = 0.5 - B G = A / (A B) #return(G) print (G) if __name__ == '__main__':main()
4.2gini系數excel計算
1.将已知樣本數據(收入數值)在EXCEL表中按照從小到大自動排序,形成第一列數據,字段名稱“收入排序”
2.第二列數據字段名稱設為“人數累計”,即從1開始逐個向下累加,每次累加1人
3.第三列數據字段名稱設為“收入累計”,使用EXCEL公式表示:
本單元格數據=上單元格數據 同行的“收入排序”單元格數據
4.第四列數據字段名稱設為“人數百分比”,用同行的“人數累計”單元格數據除以人員總數
5.第五列數據字段名稱設為“收入百分比”,用同行的“收入累計”單元格數據除以收入總數
6.第六列數據字段名稱設為“梯形面積”,以S2為例,S2=1/2*(收入百分比1 收入百分比2)*(人數百分比2-人數百分比1),按照前述的計算原理編輯公式即可,通過以上步驟,最後将“梯形面積”字段的數值累加,即為前文所述的B面積
7.用直角三角形面積(工資百分比*人數百分比)減去B面積即得A面積,則基尼系數可得。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!