天天看點

R語言ineq算基尼系數_還在用Excel算區位基尼系數?用geo.gini吧!

區域經濟研究中,經常需要測度産業空間集中的程度,常用的名額有區位基尼系數(Locational GiniCoefficient)、泰爾指數(Theil Index)和EG指數等。這一期先講區位基尼系數的計算方法及其實作函數,後幾期再陸續介紹泰爾指數和EG指數。

用Excel算區位基尼系數,盡管也可實作,但非常笨拙,而且可重複性差。然而,其計算方法是非常簡單的,用R語言寫一個函數來實作之,猶如殺雞用牛刀。看完本文後,用本人寫的geo.gini()函數來計算,也就是一行代碼的事。如果有數十個行業,用sapply跑一遍循環,什麼結果都有了,徹底将你從繁瑣的計算中解脫出來!

一、原理

基尼系數本來是用來測度居民家庭收入分布差距的,其本質思想與變異系數、赫芬達爾指數等并無二緻,無非是考察一組數值的差異性,并使得基于不同數值向量計算出的結果可比較。利用其原理來測度産業空間集中度,就是所謂的區位基尼系數。

為什麼區位基尼系數可以用來衡量産業空間集中度呢?這裡得建立一個基本認識:測度産業空間集中,也就是測度産業空間分布的不均衡性。假設産業i中的全部企業落在n個區域,那麼這些區域就形成對産業i經濟活動的一個空間分割。如果産業分布在空間上是均衡的,那麼每一區域的産業份額都是1/n;如果分布不均衡,就意味着有些區域的産業份額小于1/n,有些區域大于1/n,大于1/n說明産業i在這些區域有集中。由于所有區域的産業份額加總為1,一些區域份額越小,另一些區域份額就越大,也就是産業i在這些區域越為集中。這種差距進一步拉大,比如說達到極端狀态,就意味着産業i全部集中在某一區域,該區域占比為1,其他區域均為0。直覺來看,區位基尼系數應該位于兩種狀态值:完全均衡和完全集中之間,從一端單調增長到另一端。

二、絕對值和相對值

區位基尼系數有絕對和相對兩種。如上所述,如果将産業i的經濟活動在各區域間進行分割,就形成了産業i的空間分布數值向量x;如果将總體經濟活動(産業大類或全體産業)在各區域間進行分割,就形成了總體經濟活動的空間分布數值向量y。經濟活動規模一般用勞動力人數、産值、增加值等名額來衡量。絕對區位基尼系數是不考慮y,将每個區域作為個體機關,僅利用x向量來計算。這實際上是假設每個區域的總體經濟活動份額是相等的,均為1/n。相對區位基尼系數則考慮了區域異質性,即與y的分布相比較,x的分布差異狀況。以一個兩區域的空間分割來說,如果兩個區域的産業份額分别為20%和80%,從絕對意義上來說,肯定有産業空間集中;但如果這兩個區域的總體經濟活動份額也是20%和80%,從相對意義上來說,x和y的分布一緻,是以産業在這兩個區域間的空間分布是均衡的,即不存在産業空間集中。

三、計算公式

絕對區位基尼系數實際上是相對基尼系數的簡化版本。在相對區位基尼系數計算公式中,如果将作為參照分布的向量y簡化為y = [1/n, 1/n,…, 1/n],即得到絕對區位基尼系數。

Krugman(1991)年闡述了相對區位基尼系數的計算方法,先根據各區域的區位商值将各區域的總體經濟活動份額和産業份額排好序,然後計算它們的累積和,據此得到洛倫茲曲線,就可以按基尼系數原理算出結果了。

相對區域基尼系數的計算公式有兩個版本。一個見Combes、Mayer & Thisse(2008),直接根據求S1和S2的面積推導求出;另一個見Kim、Barkley & Henry(2000),先将各區域區位商用它們的平均值标準化之,然後再兩兩相減取平均值求出。

四、函數實作

根據以上公式,編寫計算區位基尼系數的函數geo.gini(),其參數設定說明如下:

geo.gini(x, y = NULL, type ="cmt")

其中:(1)x為各區域産業經濟活動規模數值向量;(2)y為各區域總體經濟活動規模數值向量;(3)type為計算公式類型,取值為“cmt”或“kbh”,預設為“cmt”;

需要注意的是:(1)x、y向量不能含缺失值,且和大于0;(2)y預設為NULL,即不作設定,此時簡化為絕對名額;(3)kbh法乘以2,将其結果調整為在0~1間取值,以與cmt法一緻。

讓我們先用兩組簡單的數值試一下:代碼 1

# 函數測試

> x

> y

> geo.gini(x, type = "cmt")

[1] 0.2666667

> geo.gini(x, type = "kbh")

[1] 0.4

> geo.gini(x, y, type =  "cmt")

[1] 0.3

> geo.gini(x, y, type = "kbh")

[1] 0.5

接下來用實際資料來試一下。資料“中國省份制造業資料_2012_2013.csv”包含了中國大陸31個省份2012-2013年29個制造業的就業資料,其前兩列分别為省份和年份,第三列為各省份的就業總數,可作為參照分布,後面列均為各個制造業就業數。讀入資料後,用geo.gini()函數算出每年各産業的區位基尼系數,并導出結果檔案為“gini_results.csv”,代碼如下:代碼 2

# 将存放資料和代碼的檔案設為工作檔案夾,這裡假定為"D:\\locational_gini"

# 注意分隔路徑要用“\\”而不是“\”

> setwd("D:\\locational_gini")

# 讀入資料,并将資料按年份分拆

> mydata

> yearly.data

# 一次性計算所有年份、所有産業的相對區位基尼系數

> gini.results

sapply(xx[,-(1:3)], geo.gini, y = xx[[3]])

})

# 看一下結果

> gini.results

2012        2013

農副食品加工業                     0.4220937 0.3848262

食品制造業                         0.3060742 0.2801282

……                                 ……        ……

工藝品及其他制造業                  0.3399786 0.3717040

廢棄資源和廢舊材料回收加工業          0.3669596 0.3695507

# 寫出結果檔案至工作檔案夾,大功告成!

> write.csv(gini.results,  "gini_results.csv")

參考文獻:

[1]       Combes, P.-P., Mayer, T., & Thisse, J.-F. 2008. Economicgeography: The integration of regions and nations: Princeton UniversityPress.

[2]       Kim, Y., Barkley, D. L., & Henry, M. S. 2000.Industry characteristics linked to establishment concentrations in nonmetropolitanareas. Journal of Regional Science, 40(2): 234-259.

[3]     Krugman, P. 1991. Geographyand Trade: MIT Press.

資料和代碼下載下傳請關注本人微信公衆号:SDAR-workshop,“思達區域經濟研究方法”