基尼系数和洛伦兹曲线,在表示数据的不平均方面特别是财富的不平均上被广泛应用。但是目前在python里面并没有找到很好的可以直接绘制洛伦兹曲线的函数,由于目前项目用到,也就在实际应用中使用到,就把如何使用numpy,pandas,matplotlib等包来计算基尼系数和绘制洛伦兹曲线的过程记录下来。方便大家遇到相似问题直接使用就可。
本文主要包含如下几个部分:
1. 样本数据获取
2. 基尼系数计算
3. 洛伦兹曲线绘制
1. 样本数据获取
你可以使用pd.read_csv读取已有csv文件中的表格数据,也可以使用本文通过随机产生的一些数据验证一下,这里我们采用numpy自带的随机函数np.random.randint得到数据。
代码如下:
#! env python
## 先导入必要的包
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
## 随机1000 个数据
np.random.seed(1) #种子只是为了重现结果
data = np.random.randint(low = 1, high = 100, size = 1000)#产生1到100的1000个数据
利用numpy的randint方法产生了1000个数据并保存到data数组当中,这里使用seed种子主要是为了大家可以重复出结果
2. 基尼系数计算
那么假设一个群体数据为data的话,基尼系数如何计算呢,这里查看维基百科可以看到计算方法为