workshopofsdar的个人博客分享 http://blog.sciencenet.cn/u/workshopofsdar

博文

一招搞定泰尔指数及其分解

已有 30850 次阅读 2018-1-15 21:56 |个人分类:区域经济研究|系统分类:科研笔记

一招搞定泰尔指数及其分解

上期讲了区位基尼系数,这期讲讲泰尔指数。

泰尔指数的原理同基尼系数,都是在测度一组数据分布的差异性。但是其有着良好的可分解性质,因此当需要考察产业空间集中度在不同区域层面的差异来源时,比较常用。

一、指标计算与分解

根据Combes, Mayer, &Thisse (2008263~265),泰尔指数的基本计算公式如下:

上式中,R为地区数目,s为产业部门(sector);r地区s产业在全部产业中所占的份额,为地区r的经济总量在所有地区经济总量中所占的份额。可设定所有地区经济总量的份额均为1/R,则算出的指标为绝对指标。

泰尔指数可分解为组间差异和组内差异。比如说在测度我国区域经济发展的不均衡性时,就可将之分解为地带间的不均衡性和地带内的不均衡性。先在省级层面上计算各省份人均GDP的泰尔指数,应该可以发现,省级差异还是比较大的。接下来将大陆31个省份分成东、中、西部三组地带,那么,可以计算三组间人均GDP的泰尔指数,此即为组间泰尔指数;还可以就每一组分别计算组内省份间人均GDP的泰尔指数,利用各组的份额将它们加权平均,得到组内泰尔指数。结果或许可以表明,各省份间人均GDP的差异性,主要来自东、中、西部三地带间的差异(即组间差异),而在每个地带内部,省份间的差异性并不大。产业空间集中度的分解类同此理。

组间泰尔指数的计算公式如下。计算时,将组内单位指标数值汇总到组层面,将每组看成观测单元,在组层面上利用泰尔指数基本计算公式即可算出。

 

组内泰尔指数的计算公式如下。计算时,实际上是以某组为样本群体,利用泰尔指数基本计算公式计算该组单元数值的泰尔指数,再将各组的泰尔指数加权平均得出,权重为每组单元汇总指标值的占所有单元汇总指标值的份额。

。这一分解为一层分解。如有多个层级的分组,如先地带分组,地带内的省里面又有市级分组,市级分组里面又有县级分组,,形成一个嵌套多层级分组体系,则泰尔指数的分解可依据链式法则递进分解。如下图所示(Akita, 2003)。第一层次的分解在“国家(Country地带(Region,分组变量)省(Province,观测单元)”之间展开。首先是不分组,计算省级层面的总泰尔指数,然后计算地带间的组间泰尔指数,再次计算Region1组内Province1Province2Province3的泰尔指数,其他各组依此计算,这样会得到各组的泰尔指数,再加权平均为总的组内泰尔指数。如此,即实现第一层次的分解。

如果Province下面还分地区(District),则可将每组看成一个样本群体继续分解。如以上计算出的Region1的组内泰尔指数,在将Region1看成一个样本群体后,可在“Region1 → Province1Province3 → District1District10”这个体系内,利用以上第一层次的分解原理继续分解。其他Region组照此进行。然后依据加权平均法则,把各组的Province层面组间泰尔指数进行加权平均(权重为Region的份额),即得到Province组间泰尔指数。总的泰尔指数最后分解为:Region组间泰尔指数+Province组间泰尔指数+Province内部以District为单元计算出的组内泰尔指数(将各Province组的组内泰尔指数加权平均得之)。

District下面还要细分,则按照以上原理一环套一环递进分解完毕即可。

二、R语言函数实现

根据以上公式和分解原理,编写计算并分解泰尔指数的函数geo.theil(),其参数设定说明如下:

geo.theil(x, y = NULL, group = NULL)

其中,

x为各区域产业经济活动规模数值向量;

y为各区域总体经济活动规模数值向量;

xy向量不能含缺失值,不能有负值,y向量和大于0

y默认为NULL,即不作设定,此时简化为绝对指标;

group为分组指示向量。如分组在两层以上,则group为两列以上的矩阵或数据框,层级由高到低排。

让我们用数据测试一下:

代码1

# 载入geo.theil函数

> source("geo_theil.R")

# 代码测试,geo.theilineq包的Theil结果相同

> a <- 1:5

> geo.theil(a)

[1] 0.1196876

> ineq::Theil(a)

[1] 0.1196876

> REAT::theil(a)

[1] 0.1411139

接下来用实际数据来试一下。数据“manufacture2007.csv”包含了中国大陆省、市、县级200730个制造业的规模以上工业增加值数据,其前三列分别为省、市、县,最后一列为各区域单元全部制造业的工业增加值总和,可作为参照分布,其余列均为各个制造业工业增加值。读入数据后,用geo.theil()函数算出各产业的泰尔指数并在省、市两级层面分解,导出结果文件为“theil_results.csv”,代码如下:

代码2

# 设置代码和数据所在的工作文件夹,这里假设为"D:\\theil",注意地址分隔符用"\\"而不是"\"

> setwd("D:\\theil")

# 载入geo.theil函数

> source("geo_theil.R")

# 读入数据

> mydata <-  read.csv("manufacture2007.csv")

# 看两位数代码为13的制造业在省级层面的分解

> t13.1 <- with(mydata, geo.theil(x =  X13, y = total, group = ))

> t13.1

    total    group1    within

1.0547998 0.2547051 0.8000947

# 看两位数代码为13的制造业在省级和市级层面的分解

> t13.2 <- with(mydata, geo.theil(x =  X13, y = total, group = cbind(, )))

> t13.2

    total    group1    group2     within

1.0547998 0.2547051 0.3106503 0.4894444

# 批量计算所有制造业在省、市层面的分解

> theil.results <-  lapply(mydata[,4:(ncol(mydata)-1)], geo.theil, mydata$total, mydata[,c("","")])

> theil.results <- do.call(rbind,  theil.results)

> theil.results

        total     group1    group2     within

X13 1.0547998 0.25470508 0.3106503 0.4894444

X14 1.1200430 0.18545063 0.2821592 0.6503204

X42 1.3465432 0.27674943 0.5073413 0.7699828

X43 3.0207135 0.50584180 0.8718032 1.3451203

# 写出结果文件至工作文件夹

> write.csv(theil.results,  "theil_results.csv")

参考文献:

[1]      Akita, T. 2003.Decomposing regional income inequality in China and Indonesia using two-stagenested Theil decomposition method. Annals of Regional Science, 37(1): 55-77.

[2]     Combes, P.-P., Mayer,T., & Thisse, J.-F. 2008. Economic geography: The integration of regionsand nations: Princeton University Press..

数据和代码请关注微信公众号:思达区域经济研究方法 SDAR-workshop

扫码或长按,关注该微信号






https://blog.sciencenet.cn/blog-3376208-1095024.html

上一篇:还在用Excel算区位基尼系数?用geo.gini吧!
下一篇:EG指数:从繁琐到简单
收藏 IP: 112.10.107.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-22 17:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部