星尘。

你的问题不在于numpy.trapz;而在于1)你对完美等式分布的定义,以及2)基尼系数的标准化。

首先,你将完美的平等分配定义为Q5*H5/2,这是五分之一收入和累积百分比(1.0)的一半。我不知道这个数字代表什么。

其次,必须按完全相等分布下的面积进行标准化;即:gini = (area under perfect equality - area under lorenz)/(area under perfect equality)

如果你定义一条面积为1的完美等式曲线,你不必担心这个问题,但如果你定义完美等式曲线时出现错误,这是一个很好的保障。

为了解决这两个问题,我用numpy.linspace定义了完美的等式曲线。这样做的第一个好处是,您可以使用真实发行版的属性以相同的方式定义它。换句话说,不管你用四分位数、五分位数还是十分位数,完全相等的CDF(y_pe,见下文)都会有正确的形状。第二个优点是,计算它的区域也是用numpy.trapz来完成的,这种并行性使代码更易于阅读,并防止错误的计算。import numpy as np

from matplotlib import pyplot as plt

from numpy import trapz

GDP = (653200000000)

A = (0.49 * GDP) / 100 # Poorest 10%

B = (0.59 * GDP) / 100

C = (0.69 * GDP) / 100

D = (0.79 * GDP) / 100

E = (1.89 * GDP) / 100

F = (2.55 * GDP) / 100

G = (5.0 * GDP) / 100

H = (10.0 * GDP) / 100

I = (18.0 * GDP) / 100

J = (60.0 * GDP) / 100 # Richest 10%

# Divide into quintiles and total income within each quintile

Q1 = float(A + B) # lowest quintile

Q2 = float(C + D) # second quintile

Q3 = float(E + F) # third quintile

Q4 = float(G + H) # fourth quintile

Q5 = float(I + J) # fifth quintile

# Calculate the percent of total income in each quintile

T1 = float((100 * Q1) / GDP) / 100

T2 = float((100 * Q2) / GDP) / 100

T3 = float((100 * Q3) / GDP) / 100

T4 = float((100 * Q4) / GDP) / 100

T5 = float((100 * Q5) / GDP) / 100

TR = float(T1 + T2 + T3 + T4 + T5)

# Calculate the cumulative percentage of household income

H1 = float(T1)

H2 = float(T1+T2)

H3 = float(T1+T2+T3)

H4 = float(T1+T2+T3+T4)

H5 = float(T1+T2+T3+T4+T5)

# The y values. Cumulative percentage of incomes

y = np.array([H1,H2,H3,H4,H5])

# The perfect equality y values. Cumulative percentage of incomes.

y_pe = np.linspace(0.0,1.0,len(y))

# Compute the area using the composite trapezoidal rule.

area_lorenz = np.trapz(y, dx=5)

# Calculate the area below the perfect equality line.

area_perfect = np.trapz(y_pe, dx=5)

# Seems to work fine until here.

# Manually calculated Gini using the values given for the areas above

# turns out at .58 which seems reasonable?

Gini = (area_perfect - area_lorenz)/area_perfect

print Gini

plt.plot(y,label='lorenz')

plt.plot(y_pe,label='perfect_equality')

plt.legend()

plt.show()

python 计算gdp_使用Numpy计算Python-Gini系数相关推荐

  1. Python使用扩展库numpy计算矩阵加权平均值

    本文介绍Python扩展库numpy的函数average()的用法. >>> import numpy as np # 创建二维矩阵 >>> x = np.matr ...

  2. 《从青铜学到王者》Python数据分析工程师之Numpy计算与文件加载 04

    每天妹子看一遍,怎么学都学不厌 加载文件 numpy提供了函数用于加载逻辑上可被解释为二维数组的文本文件,格式如下: 数据项1 <分隔符> 数据项2 <分隔符> ... < ...

  3. python 计算gdp_有人知道这个Python公式有哪些问题吗??关于找到GDP的min,max还有用find方程。...

    我在做一个Pyton的作业,题目要求是找GDP的min,max还有用Find公式.有人帮我看一下这个代码是否有错,有错的话错在哪里了?deffind_gdp(line,index):line=line ...

  4. python调用nastran,使用numpy在Python中导入nastran节点卡片组

    If I want to import a Nastran Deck into a Python Array, in one fell swoop using numpy. How can I go ...

  5. Python使用numpy计算矩阵特征值、特征向量与逆矩阵

    Python扩展库numpy.linalg的eig()函数可以用来计算矩阵的特征值与特征向量,而numpy.linalg.inv()函数用来计算可逆矩阵的逆矩阵. >>> impor ...

  6. 树类算法之---决策树Cart树Gini系数就算原理。

    1.介绍 ID3树与CART树的区别: ID3算法中,选择的是信息增益来进行特征选择,信息增益大的特征优先选择. 而在C4.5中,选择的是信息增益比来选择特征,以减少信息增益容易选择特征值多的特征的缺 ...

  7. python多项式运算_python – 用于计算“多项式系数”的numpy / scipy函数

    是否有任何python函数(可能来自numpy或scipy)计算扩展中x ** r的系数(1 xx ** 2 x ** 3 - x **(k-1))** n ,其中k> = 1,n> = ...

  8. Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序、获取交集元素及其索引、如果输入数组不是一维的,它们将被展平(flatten),然后计算交集

    Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序.获取交集元素及其索引.如果输入数组不是一维的,它们将被展平(flatten),然后计算交集 目录

  9. Python ln_Python入门教程(三):史上最全的Numpy计算函数总结,建议收藏!

    点击上方 蓝字 关注我们 Numpy提供了灵活的.静态类型的.可编译的程序接口口来优化数组的计算,也被称作向量操作,因此在Python数据科学界Numpy显得尤为重要.Numpy的向量操作是通过通用函 ...

  10. python【Numpy科学计算库】Numpy的超实用基础详细教程(看不懂你来打我)

    文章目录 Numpy简单介绍 1.Numpy是什么 2. 多维数组 numpy数据类型设定与转换 numpy索引与切片 多维数组索引.切片 数组文件输入输出 使用numpy.arange方法 使用nu ...

最新文章

  1. spring boot跨域问题
  2. sift计算描述子代码详解_代码详解——如何计算横向误差?
  3. cnn 一维时序数据_一时序数据输入维cnn
  4. javascript学习-创建json对象数据,遍历
  5. html2canvas改成同步,html2canvas转为图片异步转同步问题(记录)
  6. jvm高并发_JVM上的高并发HTTP客户端
  7. Linux 的 chmod 命令,对一个目录及其子目录所有文件添加权限
  8. Linux java 生效不了,linux jdk 不生效怎么办
  9. 看到程序员坐在电脑前,如何判断程序员正在做什么?只需看这些
  10. Fiddler使用过程中容易忽略的小技巧
  11. 多线程-ThreadLocal,InheritableThreadLocal
  12. 不卖了?这家公司暂停门店销售iPhone!
  13. java part.inlimen_java字符串加密及动手动脑
  14. 拖延心理学读后感ppt
  15. 如何用OBS录制Mac系统声音
  16. AJRW错误AA707
  17. python教程54--D-Tale工具介绍
  18. HashMap碰撞问题解析
  19. k8s容器部署elasticsearch+kibana+cerebro
  20. 《超越感觉:批判性思考指南》读书笔记

热门文章

  1. 超链接一般有两种表现形式_超级链接有哪些常见的表现形式?
  2. 如何计算离职率(2)?
  3. GMS:基于网格运动统计的快速极度鲁棒的特征匹配
  4. python 爬虫论_python爬虫——论抓包的正确姿势和学好Javascript的重要性(1)
  5. 恶心的极速输入法windows10 删除
  6. uniapp 引入外部链接js
  7. react 面试 笔记
  8. Windows 7提示数据错误 循环冗余检查怎么办?
  9. android面试题分析总结
  10. Permission is only granted to system apps解决方法