基尼係數如何計算?


基尼係數現在都快成國家機密了……但是幸好,不久前西南財經大學公布了一個《中國家庭金融調查》報告。使得我等普羅大眾有機會DIY計算出一個近似值。

財經大學這份報告在網上引起轟動的一個原因是它裡面提到「城市家庭戶平均資產247萬」,引得無數網友紛紛驚呼「被平均」,「拉國家後腿」。

而財大學生張睿則解釋說:「我們的數據中,最有錢的10%的家庭佔有全部樣本資產的80%以上,所以提高了均值水平。而更有解釋力的是中值水平(中位數),樣本中家庭資產的中值為40.5萬元,就是表明一般城市家庭的資產是在40.5萬元以下的。

http://finance.people.com.cn/GB/17909235.html

這份報告其實忠實反應了我國的貧富差距現狀。

精選下載:http://chfs.swufe.edu.cn/upload/files/%E4%B8%AD%E5%9B%BD%E5%AE%B6%E5%BA%AD%E9%87%91%E8%9E%8D%E8%B0%83%E6%9F%A5%E6%8A%A5%E5%91%8A%E7%B2%BE%E9%80%890515.pdf

然後有人人網友根據該報告DIY出了深藏的基尼係數:0.676

演算法和過程如下鏈接:

http://blog.renren.com/blog/256556892/846570469

更新答案,依舊是西南財經大學的中國家庭金融調查項目給出的,目前最權威的答案:

根據中國家庭金融調查(CHFS)的數據計算,2010年中國家庭收入的基尼係數為0.61,城鎮家庭內部的基尼係數為0.56,農村家庭內部的基尼係數為0.60。2010年全球基尼係數平均為0.44。

鏈接:http://e.weibo.com/2212718352/z8V7Wb3Nx?ref=http%3A%2F%2Fweibo.com%2Fneo633%2Fprofile%3Frightmod%3D1%26wvr%3D5%26mod%3Dpersonnumber


基尼係數是量度貧富懸殊程度的標量。它的定義如下:我們首先收集社會上每一個人的總財富額,把它從少至大排序,計算它的累積函數(cumulative function),然後便可繪出圖中的洛侖茲曲線(Lorenz curve)。圖中橫軸是人口比例的累積分布,豎軸是財富比例的累積分佈。

圖一(圖片來源:File:Economics Gini coefficient2.svg )

我們先想想兩個極端情況。假設社會上人人財富均等,那就給成了圖中的45度直線,稱平等曲線(line of (perfect) equality);但如財富集中在一人手中,那就繪成圖中在右端的豎軸,稱絕對不平均直線(line of perfect inequality)。而圖中的洛侖茲曲線乃實際分佈。

A和B是圖中兩面積,基尼係數便是frac{A}{A+B}

用此定義,在人人財富均等情況下,基尼係數為0;在財富一人獨佔的情況下,基尼係數為1。

利用這定義,基尼係數可用簡單的電腦函數計算,有興趣者可參econ_inequality/ginicoef.py at master 路 stephenhky/econ_inequality 路 GitHub,或參考如下代碼:

import numpy as np

def gini_coef(wealths):
cum_wealths = np.cumsum(sorted(np.append(wealths, 0)))
sum_wealths = cum_wealths[-1]
xarray = np.array(range(0, len(cum_wealths))) / np.float(len(cum_wealths)-1)
yarray = cum_wealths / sum_wealths
B = np.trapz(yarray, x=xarray)
A = 0.5 - B
return A / (A+B)

只用八行Python代碼便可實現。

我們知道在資本主義社會中,財富分佈由Pareto distribution表示,此分佈實為冪定律(power law),即x^{-(alpha+1)}。從式中,alpha愈小,財富分佈愈不平均,基尼糹數也大。這個關係,可從圖二中看到。

圖二


看到樓上 @何史提 大神用Python寫了基尼係數的近似幾何演算法,感覺很有趣,剛好最近在做畢業設計,所研究話題正好跟收入不平等有關,因為要用到基尼係數,就索性按照以上何史提大神的思路,寫了一個R語言版本的,僅供大家參考,代碼如下:

Gini&<-function(income){ library("caTools") cum_income &<- cumsum(sort(c(income,0))) sum_income &<- cum_income[length(cum_income)] xarray &<- seq(0,length(cum_income)-1) / (length(cum_income)-1) yarray &<- cum_income/sum_income B &<- trapz(x=xarray,y=yarray) A &<- 0.5 - B return (A/(A+B)) }

有木有發現跟以上Python的代碼驚人的相似啊,哈哈哈,確實,裡面很多同名函數用法,而且大體語法很相近。我是盡量在模仿大佬的思路!

思路僅供參考,不過這種方法是幾何近似的積分方法,而更加具有數學氣質的方法應該是先根據實際收入數據做曲線擬合函數,然後通過曲線擬合函數進行定積分運算,但是最近時間不太多,等忙過這段時間之後,有空再來補上連續定積分的R語言代碼~


美國基尼係數跟中國一樣高 問題是 美國的貧富差距提現在同一個地區的不同階級之間 而中國則提現在不同地區之間 最明顯的是沿海發達跟西部廣大地區之間的差距 這隻要是先後發展的問題 美國沒有西部大開發之前數據也很感人


有哪位童鞋知道如何用企業員工的工資數據計算企業內部的基尼係數?


推薦閱讀:

大家對cnBeta上噴子多這一現象是怎麼看的?
為什麼說學生容易被騙?
中國社會是超穩定結構嗎?
為什外地人都要說我們上海人排外?
請問,鄭爽、楊冪、唐嫣、趙麗穎、劉詩詩誰最不會演戲?

TAG:社會學 | 經濟學 | 社會 | 貧富差距 | 基尼係數 |