快生活 - 生活常识大全

基尼系数及应用


  本文从基尼系数定义、洛伦兹曲线定义、gini系数应用案例、gini系数python和excel计算四部分展开说明,预计用时3分钟。
  基尼系数:G=SA/(SA+SB)
  如上图
  基尼系数定义 基尼系数定义:基尼系数是指国际上通用的、用以衡量一个国家或地区居民收入差距的常用指标。基尼系数最大为"1",最小等于"0"。基尼系数越接近0表明收入分配越是趋向平等。国际惯例把0.2以下视为收入绝对平均,0.2-0.3视为收入比较平均;0.3-0.4视为收入相对合理;0.4-0.5视为收入差距较大,当基尼系数达到0.5以上时,则表示收入悬殊。对于中国的收入GINI系数,还引发一段影响较大的争议:西南财经大学、人口统计局、北大分别给出了0.61、0.46、0.51的中国的收入gini系数。不管是哪个数据,抽样差异如何,结果都可以符合你的认知,中国存在"贫富差异"的问题(补充资料:中国储蓄率50%,中国资产 Gini 0.73,美国储蓄率6%,收入基尼系数0.45,资产基尼系数0.78。说明国际上资产贫富悬殊,资产的积累不是一辈子可以发生改变的,但是劳动可以改变收入,从而提升资产储备)。GINI系数也会被应用在公司、平台等资源分配的均衡性评估。
  洛伦茨曲线定义:20世纪初,统计学家洛伦茨提出了洛伦茨曲线,将社会总人口按收入由低到高的顺序平均分为10个等级组,每个等级组均占10%的人口,再计算每个组的收入占总收入的比重。然后以人口累计百分比为横轴,以收入累计百分比为纵轴,绘出一条反映居民收入分配差距状况的曲线,即为洛伦茨曲线。
  gini系数应用:评估资源分配平衡性实际案例:比如,某公司要面对全量客户做一项客户福利。规则如下,如何评估这个活动是否很健康。
  1.活动时间维持6个月;2.客户每天都可以报名参加;3.机会有限即福利资源,每天只有1000个(1/10)客户可以获取奖励;4.奖励是个大礼包,需要用户领取且在当天使用。数学问题:如何评估资源的有效分配?如何才能做到有效分配?目标2个: 1.福利礼包即资源分配均匀:尽可能分散。(人人有机会抢到,而不是小部分人重复抢到——现实是抢到的人有技巧,尝到甜头后,抢到概率会更高,所以更加需要规则去限制); 2.福利礼包资源分配有效:a、得到资格用户尽可能完成购买(抢到不使用,资源浪费);b、得到资格的用户必须是合格的客户,黑灰名单客户、恶意抢到不使用客户等。解决方式:评估指标2个。使用gini系数评估资源分配是否平等,使用资源利用率评估资源是否被有效利用。 1.抢到/参与用户gini系数:时间周期:周/月(活动周期内) 横轴是抢到资格人,纵轴是抢到的福利个数,查看gini系数。根据福利个数分层,查看基尼系数分布;gini=0.58,说明分配资源不平衡,小部分用户重复抢到福利。 2.资源有效利用率(辅助):日维度 资源有效利用定义是:抢到福利礼包后指定时间可以使用;抢到的用户是健康的客户,降低非黑名单用户等其他不符合预期用户比例。暂定公式资源有效利用率=(抢到福利用户-抢到未使用用户*权重1-抢到黑名单用户*权重2-抢到灰名单用户*权重3-……)/抢到福利用户如果资源有效利用率<0.5,说明存在活动的补贴资源浪费掉了一半,也是不合理的。
  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=" ")).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面积,则基尼系数可得。
网站目录投稿:向山