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

【基尼系数】基尼系数的计算方法与计算案例洛伦茨曲线和基尼系数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)
上一篇 2022年10月13日 下午4:00
下一篇 2022年10月13日 下午4:00


相关推荐

  • 关于java代码生成器

    关于java代码生成器讲代码生成器之前先要说说模板,什么叫模板呢,举个例子吧,汇款单都见过吧,你不填写的那些内容都属于模板范畴说到这应该明白了吧,模板就是把共性提取出来反复使用,节约时间、工作量。。。。。那跟代码生成器有什么关系呢,思考一下在编程语言中所有的语言是不是都用共性或者说规范,这些都是固定不变的,在具体点,软件行业也是分主营业务的,比如OA、CRM、ERP、SCM等等,那么各个业务方向的软件

    2022年5月1日
    37
  • Docker—大型项目容器化改造

    Docker—大型项目容器化改造虚拟化和容器化是项目云化不可避免的两个问题 虚拟化由于是纯平台操作 一个运行于 linux 操作系统的项目几乎不需要做任何改造就可以支持虚拟化 而项目如果要支持容器化则需要做许多细致的改造工作 容器化相对于虚拟化的优势也相当明显 运行于裸机性能高 秒级启停容器 更不用说开发 测试 布署一致的环境 DevOps 理念 以及上篇提到的微服务的能力 大家还可以找到各种文章来介绍容器化 Dock

    2026年3月16日
    2
  • luogu1146

    luogu1146#include#definefr(i,a,b)for(inti=(a),i_end=(b);i<=i_end;i++)#definefrd(i,a,b)for(inti=(a),i_end=(b);i>=i_end;i–)#definelllonglong#definepri(x)printf(“%d”,x)#definemes(x

    2022年5月16日
    48
  • python 遍历文件夹下所有图片

    python 遍历文件夹下所有图片水电费

    2022年5月20日
    47
  • er图实体关系图怎么画_uml时序图怎么画实例

    er图实体关系图怎么画_uml时序图怎么画实例关于绘图,我一般遵循这样的原则:绘图前先充分理解这类图形,回答它是什么,具有哪些绘图规范,最后才是怎么画。一、什么是E-R图?E-R图又称实体关系图,是一种提供了实体,属性和联系的方法,用来描述现实世界的概念模型。通俗点讲就是,当我们理解了实际问题的需求之后,需要用一种方法来表示这种需求,概念模型就是用来描述这种需求。比如学生生活中的校园卡系统数据库、公交卡系统数据库等等,都离不来实体关系图。学生就业系统E-R图E-R图中的基本元素(以上面的学生饭卡E-R图为例)..

    2025年11月19日
    9
  • file_put_contents () failed to open stream: Permission denied 解决办法

    file_put_contents () failed to open stream: Permission denied 解决办法

    2021年11月7日
    46

发表回复

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

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