区域经济研究中,经常需要测度产业空间集中的程度,常用的指标有区位基尼系数(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,“思达区域经济研究方法”

R语言ineq算基尼系数_还在用Excel算区位基尼系数?用geo.gini吧!相关推荐

  1. 泰尔指数r语言_还在用Excel算区位基尼系数?用geo.gini吧!

    区域经济研究中,经常需要测度产业空间集中的程度,常用的指标有区位基尼系数(Locational GiniCoefficient).泰尔指数(Theil Index)和EG指数等.这一期先讲区位基尼系数 ...

  2. r语言library什么意思_还没张口对方就知道你是什么意思了?你的肢体语言出卖了你哦~...

    原标题:还没张口对方就知道你是什么意思了?你的肢体语言出卖了你哦~ لغة الجسد 肢体语言 يستخدم الكثير منّا في أغلب الأوقات بعض الحركات و ال ...

  3. R语言ineq算基尼系数_科学网—一招搞定泰尔指数及其分解 - 王庆喜的博文

    一招搞定泰尔指数及其分解 上期讲了区位基尼系数,这期讲讲泰尔指数. 泰尔指数的原理同基尼系数,都是在测度一组数据分布的差异性.但是其有着良好的可分解性质,因此当需要考察产业空间集中度在不同区域层面的差 ...

  4. R语言ineq算基尼系数_5 月编程语言排行榜:Java第一,R跌出Top20

    我们都知道,最近,TIOBE 发布了 5 月份编程语言排行榜.其中,前三名依然健稳不变,他们分别是 Java.C.C++,第四则为: Python ,第五则为 VB .NET. 下面两张图,我们可以看 ...

  5. R语言ineq算基尼系数_R语言常用计量分析包

    R 语言常用计量分析包 CRAN 任务视图:计量经济学 线形回归模型( Linear regression models ) 线形模型可用 stats 包中 lm() 函数通过 OLS 来拟合, 该包 ...

  6. r语言处理数据集编码_在强调编码语言或工具之前,请学习这3个基本数据概念

    r语言处理数据集编码 重点 (Top highlight) I got an Instagram DM the other day that really got me thinking. This ...

  7. r语言library什么意思_医学统计与R语言:百分条图与雷达图

    微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发 百分条图-输入1: library(ggplot2) 结果1: year 输入2: percentbar <- gather(perc ...

  8. r语言remarkdown展示图_使用R语言包circlize可视化展示blast双序列比对结果

    circlize这个包还挺强大的,R语言里用来画圈图还挺方便的. 今天这篇文章记录用circlize这个包画圈图展示blast双序列比对结果的代码 植物线粒体基因组类的文章通常会分析细胞器基因组间基因 ...

  9. r语言工作路径linux,R语言实用基础知识_工作路径-注释-安装和卸载R包_2019-12-01...

    R语言的实用基础知识有很多,都是我在工作和学习中所整理的,有的是看书整理的,也有的是从网络上的各种博客.各种资源获取的,所以我采用日更的方式进行支持整理和更新,希望能够帮到屏幕前的你! 今天是我日更的 ...

最新文章

  1. 【Arduino】Nano功能引脚 PWM IIC UART 中断
  2. 电子工程师必须知道的12个知识
  3. 第二个Arduino小车 两轮自平衡
  4. java opencv 模板匹配算法_浅谈opencv模板匹配算法原理
  5. eviews求相关系数
  6. 图像处理-灰度图像转化为伪彩图像
  7. unia-app第三方app调用
  8. oracle取同期和上期,取同期和上期数据
  9. 科研热点|EI期刊目录已更新,这本期刊不再被收录!
  10. unity 下载图片使用并保存在本地
  11. DB2-SQLSTATE 消息大全---[IBM官方]
  12. 《权力的游戏》Python探索性分析
  13. 百度网盘限速代理下载工具
  14. 想要学习Java,没有英语基础可以学吗?
  15. 光学识别OCR软件Readiris Pro 17 for Mac
  16. AlertDialog对话框的使用及示例
  17. 三星s9电池测试软件,三星Galaxy S9深度解析(二)配置、软件以及电池
  18. 金融服务(银行证券机构方向)etl批量作业集群统一调度平台搭建
  19. 软件测试工具与软件测试管理工具的关系
  20. Ubuntu再次体验之【美化】--更改开机引导grub分辨率

热门文章

  1. 550, b‘Requested action not taken: GTAi0gDXE+ZLSiRiE7TVAA--.6460S2, mail reject by CAC‘
  2. mysql设置字段为空字符串_NULL默认为mysql中的空字符串?
  3. CentOS7中安装字体库中文字体
  4. vue如何监听多个input框_vue中两个input框输入值,自动计算总和到另一个Input框,怎么实现...
  5. 企业销售管理系统(数据库课程设计)
  6. 电子科大以第一作者在CVPR上发文的本科生,这个小哥哥用奋斗诠释优秀!
  7. 简单下拉菜单html,JavaScript简单下拉菜单实例代码
  8. win10磁盘占用过大的问题(亲测有效)
  9. 网络存储技术Windows server 2012 (项目四 存储池的高级配置与管理)
  10. Altium Designer 鼠标移动到元件高亮显示连接网络