基尼系数计算方法_西南财经大学基尼系数

基尼系数计算方法_西南财经大学基尼系数上图图片来自维基百科·自由的百科全书最近在尝试做一些流量调控的事情,流量对于任何商业系统都是宝贵的资源,不能任由他人无限制获取,且需要通过一定手段加以调控,以期用户体验、平台生态、平台利益多方最大化。这个目标是宏大而美好的,但总要一步步慢慢来。先说如何平衡生态问题(当然指的是B端用户),生态问题就像国民收入均衡问题一样,常用的就是基尼系数,维基百科的中文链接要FQ才能打开,好伤心,英文的我…

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

Jetbrains全系列IDE稳定放心使用

上图
1244979-20171216201849889-1334466130.png

图片来自维基百科·自由的百科全书

最近在尝试做一些流量调控的事情,流量对于任何商业系统都是宝贵的资源,不能任由他人无限制获取,且需要通过一定手段加以调控,以期用户体验、平台生态、平台利益多方最大化。

这个目标是宏大而美好的,但总要一步步慢慢来。先说如何平衡生态问题(当然指的是B端用户),生态问题就像国民收入均衡问题一样,常用的就是基尼系数,维基百科的中文链接要FQ才能打开,好伤心,英文的我这里能打开。这里我并不要介绍概念和定义,只想把如何计算的方法贴上来。

最直观的计算公式是:

1244979-20171216203151124-1505368724.png

含义就是:把所有人(假设刚好 100 个人)的收入从小到大排序,然后从收入最少的开始累计,每计算一个人,横坐标为人数累计值占总人数比例,纵坐标为收入累计值占总收入比例,直到最后一个收入最大的人。

显然,图中横坐标和纵坐标都是 [ 0 -1 ] 之间。把图左下角和右上角连起来,表示人数累计占比恒等于收入累积占比,意味着收入完全均等。

好了,上面人人收入均等的线与实际收入曲线之间的面积就是 A, 实际收入曲线与 X 轴之间面积是 B

知道怎么算了,于是拿代码试试:

# 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) print G 

得到下图

1244979-20171216200906999-1988143018.png


其他

当然还有很多其他的公式可以计算,比如:

1244979-20171216202119061-1910345819.png

参考

  1. https://en.wikipedia.org/wiki/Gini_coefficient 基尼系数定义
  2. https://www.zhihu.com/question/25404709 matplotlib 绘图中文乱码
  3. http://hyry.dip.jp/tech/book/page/scipynew/scipy-710-integrate.html python 科学计算

转载于:https://www.cnblogs.com/longwind09/p/8047539.html

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

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

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


相关推荐

  • c++string截取字符串

    c++string截取字符串C++的string类提供了大量的字符串操作函数,提取字符串的一部分,可采用substr函数实现:头文件:#include<string>//注意没有.hstring.h是C的标准字符串函数数,c++中一般起名为ctring.而string头文件是C++的字符串头文件。函数原型:stringsubstr(intpos=0,intn)const;函数说明:参数1:pos是必填参数参数2:n是可参数,表示取多少个字符,不填表示截取到末尾该函数功能为:返回从

    2022年5月12日
    51
  • java中clone的用法_java clone是浅拷贝吗

    java中clone的用法_java clone是浅拷贝吗一.Cloneable的用途Cloneable和Serializable一样都是标记型接口,它们内部都没有方法和属性,implementsCloneable表示该对象能被克隆,能使用Object.clone()方法。如果没有implementsCloneable的类调用Object.clone()方法就会抛出CloneNotSupportedException。二.克隆的分类(1)浅克隆(s

    2022年10月14日
    0
  • pycharm配置tensorflow环境_python3.6对应的tensorflow版本

    pycharm配置tensorflow环境_python3.6对应的tensorflow版本Round1:打开PyCharm,点击File->Settings,点击弹出界面的“+”号,在搜索框中键入关键字“tensorflow”,从列表中选中“tensorflow”,点击下方的“InstallPackage”,等待一段时间,华丽丽的安装失败了-_-Round2:在Pycharm的terminal中运行pipinstalltensorflow,在等了半小时后,倒计时还有3个多小时,我弃疗了!安装失败!Round3:以上用的都是官方的源,现在考虑换成国

    2022年8月26日
    3
  • discuz php接口文档,Discuz二次开发技术文档[通俗易懂]

    discuz php接口文档,Discuz二次开发技术文档[通俗易懂]点评:Discuz二次开发基本知识总结,需要对discuz进行二次开发的朋友可以参考下。一)Discuz!的文件系统目录注:想搞DZ开发,就得弄懂DZ中每个文件的功能。a)Admin:后台管理功能模块b)Api:DZ系统与其它系统之间接口程序c)Archiver:DZ中,用以搜索引擎优化的无图版d)Attachments:DZ中,用户上传附件的存放目录e)Customavatars…

    2022年5月12日
    34
  • 光纤通信视频_光纤传输的信号属于什么

    光纤通信视频_光纤传输的信号属于什么目前,光纤在生产和施工方面较于以前有了很大的提升,价格也降低了很多。再加上光纤的传输质量,光纤无疑将成为发展较快的传输模式。马上为您全面剖析光纤传输技术。  光纤通信的原理:在发送端首先要把传送的信息(如视频)变成电信号,然后调制到激光器发出的激光束上,使光的强度随电信号的幅度(频率)变化而变化,并通过光纤发送出去;在接收端,检测器收到光信号后把它变换成电信号,经解调后恢复原信息。  光纤监…

    2022年10月3日
    0
  • git学习——设置gitlab、github默认push的用户名和密码

    在使用git的时候,不同的环境下,当你重新安装git,最好在开始的时候就配置一下默认的git的用户名和密码,这样子就可以在每次的push的时候不需要手动的在去输入git的用户名和密码,提高执行的效率。 环境:Windows环境已经安装git,我使用的gitlab(github和这样配一样),gitlab的用户名742981086@qq.com 下面在Windows环境中进行配置过程的演示, 1

    2022年2月25日
    320

发表回复

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

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