python 计算gdp_使用Numpy计算Python-Gini系数
星尘。
你的问题不在于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系数相关推荐
- Python使用扩展库numpy计算矩阵加权平均值
本文介绍Python扩展库numpy的函数average()的用法. >>> import numpy as np # 创建二维矩阵 >>> x = np.matr ...
- 《从青铜学到王者》Python数据分析工程师之Numpy计算与文件加载 04
每天妹子看一遍,怎么学都学不厌 加载文件 numpy提供了函数用于加载逻辑上可被解释为二维数组的文本文件,格式如下: 数据项1 <分隔符> 数据项2 <分隔符> ... < ...
- python 计算gdp_有人知道这个Python公式有哪些问题吗??关于找到GDP的min,max还有用find方程。...
我在做一个Pyton的作业,题目要求是找GDP的min,max还有用Find公式.有人帮我看一下这个代码是否有错,有错的话错在哪里了?deffind_gdp(line,index):line=line ...
- 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 ...
- Python使用numpy计算矩阵特征值、特征向量与逆矩阵
Python扩展库numpy.linalg的eig()函数可以用来计算矩阵的特征值与特征向量,而numpy.linalg.inv()函数用来计算可逆矩阵的逆矩阵. >>> impor ...
- 树类算法之---决策树Cart树Gini系数就算原理。
1.介绍 ID3树与CART树的区别: ID3算法中,选择的是信息增益来进行特征选择,信息增益大的特征优先选择. 而在C4.5中,选择的是信息增益比来选择特征,以减少信息增益容易选择特征值多的特征的缺 ...
- python多项式运算_python – 用于计算“多项式系数”的numpy / scipy函数
是否有任何python函数(可能来自numpy或scipy)计算扩展中x ** r的系数(1 xx ** 2 x ** 3 - x **(k-1))** n ,其中k> = 1,n> = ...
- Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序、获取交集元素及其索引、如果输入数组不是一维的,它们将被展平(flatten),然后计算交集
Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序.获取交集元素及其索引.如果输入数组不是一维的,它们将被展平(flatten),然后计算交集 目录
- Python ln_Python入门教程(三):史上最全的Numpy计算函数总结,建议收藏!
点击上方 蓝字 关注我们 Numpy提供了灵活的.静态类型的.可编译的程序接口口来优化数组的计算,也被称作向量操作,因此在Python数据科学界Numpy显得尤为重要.Numpy的向量操作是通过通用函 ...
- python【Numpy科学计算库】Numpy的超实用基础详细教程(看不懂你来打我)
文章目录 Numpy简单介绍 1.Numpy是什么 2. 多维数组 numpy数据类型设定与转换 numpy索引与切片 多维数组索引.切片 数组文件输入输出 使用numpy.arange方法 使用nu ...
最新文章
- spring boot跨域问题
- sift计算描述子代码详解_代码详解——如何计算横向误差?
- cnn 一维时序数据_一时序数据输入维cnn
- javascript学习-创建json对象数据,遍历
- html2canvas改成同步,html2canvas转为图片异步转同步问题(记录)
- jvm高并发_JVM上的高并发HTTP客户端
- Linux 的 chmod 命令,对一个目录及其子目录所有文件添加权限
- Linux java 生效不了,linux jdk 不生效怎么办
- 看到程序员坐在电脑前,如何判断程序员正在做什么?只需看这些
- Fiddler使用过程中容易忽略的小技巧
- 多线程-ThreadLocal,InheritableThreadLocal
- 不卖了?这家公司暂停门店销售iPhone!
- java part.inlimen_java字符串加密及动手动脑
- 拖延心理学读后感ppt
- 如何用OBS录制Mac系统声音
- AJRW错误AA707
- python教程54--D-Tale工具介绍
- HashMap碰撞问题解析
- k8s容器部署elasticsearch+kibana+cerebro
- 《超越感觉:批判性思考指南》读书笔记