【基尼系数】基尼系数的计算方法与计算案例

【基尼系数】基尼系数的计算方法与计算案例洛伦茨曲线和基尼系数1905年,统计学家洛伦茨提出了洛伦茨曲线,如图一。将社会总人口按收入由低到高的顺序平均分为10个等级组,每个等级组均占10%的人口,再计算每个组的收入占总收入的比重。然后以人口累计百分比为横轴,以收入累计百分比为纵轴,绘出一条反映居民收入分配差距状况的曲线,即为洛伦茨曲线。为了用指数来更好的反映社会收入分配的平等状况,1912年,意大利经济学家基尼根据洛伦茨曲线计算出一…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

洛伦茨曲线和基尼系数

1905年,统计学家洛伦茨提出了洛伦茨曲线,如图一。将社会总人口按收入由低到高的顺序平均分为10个等级组,每个等级组均占10%的人口,再计算每个组的收入占总收入的比重。然后以人口累计百分比为横轴,以收入累计百分比为纵轴,绘出一条反映居民收入分配差距状况的曲线,即为洛伦茨曲线。

image

为了用指数来更好的反映社会收入分配的平等状况,1912年,意大利经济学家基尼根据洛伦茨曲线计算出一个反映收入分配平等程度的指标,称为基尼系数(G)。在上图中,基尼系数定义为:

 Q                                                  式(1)

当A为0时,基尼系数为0,表示收入分配绝对平等;当B为0时,基尼系数为1,表示收入分配绝对不平等。基尼系数在0~1之间,系数越大,表示越不均等,系数越小,表示越均等。

基尼系数的计算方法详解

式(1)虽然是一个极为简明的数学表达式,但它并不具有实际的可操作性。为了寻求具有可操作性的估算方法,自基尼提出基尼比率以来,许多经济学家和统计学家都进行了这方面的探索。主要有以下四种计算方法

1.直接计算法

直接计算法在基尼提出收入不平等的一种度量时,就已经给出了具体算法,而且这种算法并不依赖于洛伦茨曲线,它直接度量收入不平等的程度。定义

2                          式(2)

式中,△是基尼平均差,∣Yj-Yi∣是任何一对收入样本差的绝对值,n是样本容量,u是收入均值。定义

3                                 式(3)

将公式带入后可得到基尼系数的计算方法为:

4                  式(4)

直接计算法只涉及居民收入样本数据的算术运算,很多学者认为理论上看,只要不存在来源于样本数据方面的误差,就不存在产生误差的环节。

2.拟合曲线法

拟合曲线法计算基尼系数的思路是采用数学方法拟合出洛伦茨曲线,得出曲线的函数表达式,然后用积分法求出B的面积,计算基尼系数。通常是通过设定洛伦茨曲线方程,用回归的方法求出参数,再计算积分。例如,设定洛伦茨曲线的函数关系式为幂函数:
5                                                                    式(5)

根据选定的样本数据,用回归法求出洛伦茨曲线,例如,α=m,β=n.求积分

6                                           式(6)

计算

  式(7)

拟合曲线法的在两个环节容易产生谬误:一是拟合洛伦茨曲线,得出函数表达式的过程中,可能产生误差;二是拟合出来的函数应该是可积的,否则就无法计算。

 

7    式(7)

拟合曲线法的在两个环节容易产生谬误:一是拟合洛伦茨曲线,得出函数表达式的过程中,可能产生误差;二是拟合出来的函数应该是可积的,否则就无法计算。

3.分组计算法

这种方法的思路有点类似用几何定义计算积分的方法,在X轴上寻找n个分点,将洛伦茨曲线下方的区域分成n部分,每部分用以直代曲的方法计算面积,然后加总求出面积。分点越多,就越准确,当分点达到无穷大时,则为精确计算。

image

假设分为n组,每组的收入为Yi,则每个部分P的面积为:

8                    式(8)

加总得到

9            式(9)

详细解答参看附件

基尼系数案例

基尼系数计算步骤:

1、将已知样本数据(收入数值)在EXCEL表中按照从小到大自动排序,形成第一列数据,字段名称“收入排序”

2、第二列数据字段名称设为“人数累计”,即从1开始逐个向下累加,每次累加1人

3、第三列数据字段名称设为“收入累计”,使用EXCEL公式表示:

本单元格数据=上单元格数据+同行的“收入排序”单元格数据

4、第四列数据字段名称设为“人数百分比”,用同行的“人数累计”单元格数据除以人员总数

5、第五列数据字段名称设为“收入百分比”,用同行的“收入累计”单元格数据除以收入总数

6、第六列数据字段名称设为“梯形面积”,以S2为例,S2=1/2*(收入百分比1+收入百分比2)*(人数百分比2-人数百分比1),按照前述的计算原理编辑公式即可,通过以上步骤,最后将“梯形面积”字段的数值累加,即为前文所述的B面积

7.用直角三角形面积(工资百分比*人数百分比)减去B面积即得A面积,则基尼系数可得。

 

下面是基尼系数的测试案例,具体Excle公式参看附件

image

 

使用Python代码实现如下:

#-*- coding:utf-8 -*-
#!/usr/bin/python
from scipy.integrate import odeint
import numpy as np 
from matplotlib import pyplot as pl 

#解决matplotlib显示中文乱码问题
pl.rcParams['font.sans-serif'] = ['SimHei']
pl.rcParams['axes.unicode_minus'] = False
fig, ax = pl.subplots()

#计算基尼系数
def Gini():
    # 计算数组累计值,从 0 开始
    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
    # 绘制基尼系数对应的洛伦兹曲线
    ax.plot(xarray, yarray)
    ax.plot(xarray, upper)
    ax.set_xlabel(u'人数累积占比')
    ax.set_ylabel(u'收入累积占比')
    pl.show()
    # 计算曲线下面积的通用方法
    B = np.trapz(yarray, x=xarray)
    # 总面积 0.5
    A = 0.5 - B
    G = A / (A + B)
    return G

a=Gini()
print(a)

 

运行结果为:

Figure_1

计算结果为:0.370254081731

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182400.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java面试时怎么做自我介绍_面试时如何做好自我介绍「建议收藏」

    java面试时怎么做自我介绍_面试时如何做好自我介绍「建议收藏」该楼层疑似违规已被系统折叠隐藏此楼查看此楼要想让人力资源考官们欣赏你,你必须明确地告诉考官们你具有应考职位必需的能力与素质,而只有您对此有信心并表现出这种信心后,你才证明了自己。所以我们要充满自信的自我介绍,那面试时如何做自我介绍,敬请阅读下文,或许下文有您想要的答案!.1、自我介绍切忌话多。.比如说,有的面试要求每个人用三句话介绍自己,难道真的只能姓名+专业+学校了?求职者遇到这种情况,当然…

    2022年7月7日
    19
  • linux sftp和ftp的区别在哪?

    linux sftp和ftp的区别在哪?sftp和ftp

    2025年8月12日
    2
  • Spring Cloud核心组件详解

    Spring Cloud核心组件详解一、SpringCloud核心组件:Eureka(1)NetflixEureka1)、Eureka服务端:也称服务注册中心,同其他服务注册中心一样,支持高可用配置。如果Eureka以集群模式部署,当集群中有分片出现故障时,那么Eureka就转入自我保护模式。它允许在分片故障期间继续提供服务的发现和注册,当故障分片恢复运行时,集群中其他分片会把它们的状态再次同步回来2)、Eureka客户端…

    2022年6月27日
    26
  • 单片机 流水灯

    单片机 流水灯单片机流水灯一、简述  通过Proteus仿真单片机最小系统+流水灯的显示电路。用Keil编写相应执行文件。  源码、仿真电路图打包:链接:https://pan.baidu.com/s/1ZetoHZGz-jebnAd_BQGAUg密码:h8jc二、效果三、工程结构1、Keil编程2、仿真电路图四、源文件LiuShui.c文件#i…

    2022年5月1日
    37
  • 串口通信中的FlowControl

    串口通信中的FlowControl串口通信中需要流控FlowControl来协调A->B传送时的数据传输速率,若A->B的数据传输速率快,B还来不及处理,则B向A发送一个信号,告诉A暂停发送,此谓流控。所谓流控即保证传输双方都能正确地发送和接收数据。流控分为硬件流控和软件流控。(1)硬件流控  DTR(第4引脚),RTS(第7引脚)计算机上的RS-232端  DSR…

    2022年6月3日
    42
  • FindWindow和FindWindowEx「建议收藏」

    FindWindow和FindWindowEx「建议收藏」函数型:HWNDFindWindow(LPCTSTRIpClassName,LPCTSTRIpWindowName);IpClassName:指向一个指定了类名的空结束字符串或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位,必须位于lpClassName的低16位,高位必须为0。如果为NULL,

    2022年5月31日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号