matlab计算基尼系数并分解_matlab斐波那契数列的第n项

matlab计算基尼系数并分解_matlab斐波那契数列的第n项前两天想偷个懒在网上找了好久关于求基尼系数的现成公式,结果很令人失望,于是只好奋发图强自己动手啦。​开始之前还是先脑补一些什么是基尼系数?—————————————————————————————-​居民收入分配的差异程度,是当前人们所普遍关心的一个问题。收入分配差异的合理与否,一方…

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

Jetbrains全系列IDE稳定放心使用

a4c26d1e5885305701be709a3d33442f.png

前两天想偷个懒在网上找了好久关于求基尼系数的现成公式,结果很令人失望,于是只好奋发图强自己动手啦。

​开始之前还是先脑补一些什么是基尼系数?

—————————————————————————————-​

a4c26d1e5885305701be709a3d33442f.png

居民收入分配的差异程度,是当前人们所普遍关心的一个问题。收入分配差异的合理与否,一方面可以反映按劳分配原则的实现情况;另一方面是保障居民生活和社会稳定的重要条件。衡量收入差异状况最重要、最常用的指标是基尼系数(即吉尼系数)。

基尼系数(Gini

coefficient)是20世纪初意大利经济学家基尼根据洛伦茨曲线提出的判断分配平等程度的指标(如下图),设实际收入分配曲线和收入分配绝对平等曲线之间的面积为A,实际收入分配曲线右下方的面积为B。并以A除以(A+B)的商表示不平等程度。这个数值被称为基尼系数或称洛伦茨系数。如果A为零,基尼系数为零,表示收入分配完全平等;如果B为零则系数为1,收入分配绝对不平等。该系数可在零和1之间取任何值。收入分配越是趋向平等,洛伦茨曲线的弧度越小,基尼系数也越小,反之,收入分配越是趋向不平等,洛伦茨曲线的弧度越大,那么基尼系数也越大。

a4c26d1e5885305701be709a3d33442f.png洛仑兹曲线

图中,0M为45度线,在这条线上,每10%的人得到10%的收入,表明收入分配完全平等,称为绝对平等线。OPM表明收入分配极度不平等,全部收入集中在1个人手中,称为绝对不平等线。介于二线之间的实际收入分配曲线就是洛伦茨曲线。它表明:洛伦茨曲线与绝对平等线OM越接近,收入分配越平等;与绝对不平等线OPM越接近,收入分配越不平等。

​计算基尼系数,可以用收入分组数据计算,也可用分户数据计算。但要注意的是,无论分组还是分户计算,均应先对数据按收入从低到高排序,分组计算时,一般应使分组的组距相等。用分组数据计算的基尼系数要明显小于分户数据的计算值,特别是当分组的组数不多时,差距更大。用分户数据计算基尼系数时,采用的计算指标不同,也会出现不同的结果。一般有两种计算方法,一种方法是按户总收入排序,按户计算基尼系数,此时,为每户收入占总收入的比例,为调查户数的倒数;另一种计算方法是按每户家庭的人均收入排序,此时,为每户人口占全部人口的比例,为本户人均收入占人均收入之和的比例。这两种计算方法,结果是有差异的,按人均收入计算的基尼系数要大于按户收入计算的基尼数据。在用基尼系数时进行不同地区、不同时期的收入差距比较时,应注意计算方法的一致性,不同计算方法得出的基尼系数是没有可比性的。

国际上通常用基尼系数来判定收入分配均等程度。基尼系数是界于0-1之间的数值,当基尼系数为0时,表示绝对平等;基尼系数越大,不均等程度越高;当基尼系数为1时,表示绝对不平等。市场经济国家衡量收入差距的一般标准为:基尼系数在0.2以下表示绝对平均;0.2-0.3之间表示比较平均;0.3-0.4之间表示较为合理;0.4-0.5之间表示差距较大;0.5以上说明收入差距悬殊。例如:依据全国城市住户调查收入分组资料,计算出的基尼系数1978年为0.16,1988年为0.23,2000年为0.32,说明1978年我国城市居民个人收入差距不大,比较平均;1988年以后城市居民个人收入差距已经开始拉开,到2000年城市居民个人收入差距逐步拉大。

用基尼系数分析居民收入的差异,是一种比较普遍的方法。其特点:一是方法本身具有科学性,基尼系数的计算是将社会经济现象数学化了的办法,能从整体上反映居民集团内部收入分配的差异程度。二是基尼系数反映收入分配的差异程度精确、灵敏,可以反映差异程度细微的和连续的变化。三是在经济工作中可以作为一个综合经济参数纳入国家的计划管理和宏观调控之中。四是基尼系数在国际上应用广泛,便于在实际工作加强横向联系比较,学习和借鉴外地区和国外的经验。

—————————————————————————————-​

如何计算基尼系数呢?过程很复杂,但是方法其实很简单

a4c26d1e5885305701be709a3d33442f.png

​首先计算A+B的面积,结果为1/2。

其次计算B的面积。由于洛伦茨曲线是一条不规则的曲线,无法直接计算B的面积,因此采用近似梯形的面积来代替。假定全部人口平均分为n组,以累计到第i组人口总收入占全部人口总收入的比重Wi为下底,以累计到第i-1组人口总收入占全部人口总收入的比重Wi-1为上底,以每组人口占全部人口的比例即1/n为高,计算一个个小梯形的面积,并加总,即得到近似B的面积:

B = Σ[ 1/2 ×1/n

×(Wi-1

+  Wi)]

其中,i从1到n-1

最后,再将上述推导结果代入基尼系数定义式,进行推导

a4c26d1e5885305701be709a3d33442f.png

化简整理,即得一个简便易学易用的基尼系数计算公式:

a4c26d1e5885305701be709a3d33442f.png

公式中:是按收入分组后各组的人口数占总人口数的比重;是按收入分组后,各组人口所拥有的收入占收入总额的比重;是从i=1到i的累计数,如,=Y1+Y2+Y3….+Yi。

​其中Wi表示从第1组累计到第i组的人口总收入占全部人口总收入的百分比。

—————————————————————————————-

总之,基尼系数其实就是用洛仑兹曲线与对角线组成图形面积与等边直角三角形面积的比。懒得自己写代码研究的同学们,下面是福利。Matlab公式源码如下,有需要的朋友可以直接copy使用啦:​

function Gini=Gini_coef(NumArr)

NumArrSorted=sort([0,NumArr]);

NumArrPercent=NumArrSorted/sum(NumArrSorted);

NumArrSortedLen=length(NumArrSorted);

NumArrAcc=zeros(1,NumArrSortedLen);

for i=1:NumArrSortedLen

NumArrAcc(i)=sum(NumArrPercent(1:i));

end

x1=linspace(0,1,NumArrSortedLen);

x2=0:(1/NumArrSortedLen/10):1;

cfithandle=fit(x1′,NumArrAcc’,’smoothingspline’);

d=cfithandle(x2);

% 生产图形

% figure

% plot(x1,x1,’b-.’,x1,NumArrAcc,’*’,x2,d,’-‘)

% % plot([0,1],[0,1],x1,y,[‘-‘])

% title(‘洛伦兹曲线’)

% xlabel(‘人口百分比累计’)

% ylabel(‘收入百分比累计’)

% axis equal

% axis([0,1,0,1])

% grid on

%计算基尼系数

area1=trapz(x2,d);

area2=trapz(x1,x1);

Gini=roundn(1-area1/area2,-4);

上面代码注释部分放开可以直接生成洛仑兹曲线图形并且是已经fit过的。

​我自己还另外写了一份python的,有需要的私信我吧​

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182370.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 机器学习 Lasso回归算法「建议收藏」

    机器学习 Lasso回归算法「建议收藏」Lasso回归算法:坐标轴下降法与最小角回归法小结    前面的文章对线性回归做了一个小结,文章在这:线性回归原理小结。里面对线程回归的正则化也做了一个初步的介绍。提到了线程回归的L2正则化-Ridge回归,以及线程回归的L1正则化-Lasso回归。但是对于Lasso回归的解法没有提及,本文是对该文的补充和扩展。以下都用矩阵法表示,如果对于矩阵分析不熟悉,推荐学习张贤达的《矩阵分析与应用》…

  • linux 内存信息_shell查看内存使用情况

    linux 内存信息_shell查看内存使用情况pmaplddstace要熟悉的几个调试命令!两个查看内存的文件$cat/proc/<pid>/stat|awk'{print$23/1024}’$cat/proc/<pid>/status|grep-ivmsize其中,关于内存的是VSZ和RSS这两个概念manps看看它们的含义:rss       RSS    resident…

    2022年10月28日
  • Flume-Kafka-Flume对接Kafka以及Kafka数据分类传输

    Flume-Kafka-Flume对接Kafka以及Kafka数据分类传输Flume对接KafkaFlume日志采集组件;Flume对接kafka主要是为了通过kafka的topic功能,动态的增加或者减少接收的节点,并且Flume要对接多个节点是需要多个channel和sink的会导致内存不够的情况。那么可以实现的场景就是Flume采集日志文件,通过kafka给多给业务线使用。1)配置flume(flume-kafka.conf)#definea1.sources=r1a1.sinks=k1a1.channels=c1#sourcea1

  • SPI的原理_托里拆利实验原理讲解

    SPI的原理_托里拆利实验原理讲解什么是SPISPI是英语SerialPeripheralinterface的缩写,顾名思义就是串行外围设备接口。是Motorola(摩托罗拉)首先在其MC68HCXX系列处理器上定义的。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字…

    2022年10月15日
  • Java中如何将int 类型转换为 Long类型

    Java中如何将int 类型转换为 Long类型版权声明:本文由施勇原创,转载请注明作者和出处!   https://blog.csdn.net/shiyong1949/article/details/52687955Longl=(Long)3;1很多同学可能会用上面的方法将int类型转换为Long类型,但事实上这样是不可行的。因为Long是包装类,而int是值类型数据,两者是不能这样强转的。longl=(long)3;…

  • mysql client(客户端) 5.7 rpm 离线安装

    mysql client(客户端) 5.7 rpm 离线安装

发表回复

您的电子邮箱地址不会被公开。

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