请给出洛伦兹曲线评价波动程度并绘图,给出python代码
时间: 2024-02-20 21:59:38 浏览: 170
洛伦兹曲线评价了一个变量的分布的不均匀程度,用于衡量财富、收入、人口等的分布不均。曲线越向左偏移,表示不均衡程度越高。
以下是绘制洛伦兹曲线的 Python 代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
def gini_coefficient(x):
"""Calculate Gini coefficient of array of values"""
x = np.sort(x)
n = len(x)
G = sum([i * xi for i, xi in enumerate(x)]) / (n * sum(x))
return 1 + (1 - 2 * G)
def lorenz_curve(x):
"""Calculate Lorenz curve of array of values"""
x = np.sort(x)
n = len(x)
y = np.cumsum(x) / np.sum(x)
ly = np.linspace(0, 1, n)
return ly, y
# Example usage
x = np.random.normal(size=1000)
ly, y = lorenz_curve(x)
g = gini_coefficient(x)
plt.plot([0, 1], [0, 1], linestyle='--', color='k')
plt.plot(ly, y, color='r')
plt.fill_between(ly, y, alpha=0.1)
plt.title(f'Gini coefficient: {g:.2f}')
plt.xlabel('Cumulative share of population')
plt.ylabel('Cumulative share of variable')
plt.show()
```
该代码将绘制一个随机数据集的洛伦兹曲线,并计算该数据集的 Gini 系数。
阅读全文