W13: 5/09
===
### 吉尼係數做法
```
dfLorenz=dfIncome[:]
se=dfLorenz[‘Income’].sort_values()
#家戶收入
incomes=[0]
#戶數累積百分比
cumulativePercentage=[0]
#所得累積百分比
cumulativeSum=[0]
#戶數
n=se.count()
#全體總收入
sum=se.sum()
#暫存變數
cum=0
pr=0;
for _income in se:
incomes.append(_income)
pr+=1
cum+=_income
cumulativePercentage.append(pr/n)
cumulativeSum.append(cum/sum)
#計算曲線下的面積
#用integral代表面積
integral=0
for i in range(1,n+1):
#計算圖中10個梯型的面積
#梯型面積計算公式:(上底+下底)高2
#程式碼為 (cumulativeSum[i-1]+cumulativeSum[i])(1/n)/2
#說明:
#(cumulativeSum[i-1]+cumulativeSum[i])>(上底+下底)
#(1/n)>高
integral+= (cumulativeSum[i-1]+cumulativeSum[i])(1/n)/2
#畫出10個梯型給同學參考
#plt.plot([cumulativePercentage[i],cumulativePercentage[i]],[0,cumulativeSum[i]])
#第一種算法的吉尼係數
gini=(0.5-integral)/0.5
print(f’第一種算法的吉尼係數={gini:.8f}')
#繪製全部人收入都一樣的情況
plt.plot([0,1],[0,1])
#繪製散佈圖
plt.plot(cumulativePercentage,cumulativeSum)
#plt.scatter(x=cumulativePercentage,y=cumulativeSum,s=0.1)
plt.xlabel(u’戶數累積百分比’) #x座標說明
plt.ylabel(u’所得累積百分比’) #y座標說明
plt.axis(‘square’)
plt.xlim(0,1)
plt.ylim(0,1)
print(‘羅倫茲曲線(Lorenz curve)’)
plt.show()
```
---
### 作業
1. 球員收入、Gini([Excel](https://docs.google.com/spreadsheets/d/1-cX6hw91d8p5SsvVE8BFo_pCqkUsdjiaxPhIZwoTy0Y/edit#gid=0),[Colab](https://colab.research.google.com/drive/1eMl1yx_CE4B4T7ecMBTkgB6f2E9lqnsq))
2. [期末專題](https://colab.research.google.com/drive/1ZY8k0L0_K_7JH6UPy0ntfMRT6H2bwlnW#scrollTo=9S7YmdMfc-Yk)