《经济研究》2020年第1期的《要素禀赋、地方工业行业发展与行业选择》用随机森林方法讨论了要素禀赋与产业发展的问题。本推文对该文的主要结果进行R代码复现。
1. 前期准备工作
作者已经将该论文代码存储在了Github上,这些代码是按照R包的结构进行组织的。因此在利用这些代码重现论文前,先按如下步骤进行准备。
1.1 下载
打开网址https://github.com/common2016/FactorandIndustry,然后下载整个代码。如下图所示,

或者如果很熟悉Github,那么直接可以命令行下载。
1.2 正确的打开方式
按照图示方式下载以后,可以解压到当前文件夹。假设你已经安装了R语言和RStudio两个软件(如果没有,还是要百度安装一下,它们都是免费开源的软件),然后双击打开” FactorandIndustry.Rproj”文件,默认状态下会用RStudio打开该文件。该操作保证了路径设置是正确的,为后续数据分析做好准备。
2. 数据
完成上述步骤后,这篇论文因变量的数据可以在RStudio的控制台中输入如下命令而打印在屏幕上,
data("Ind0111")
head(Ind0111)
## province year IndCode employment industry
## 33 安徽 2006 B06 372.5108 煤炭开采和洗选业
## 34 安徽 2006 B08 48.6659 黑色金属矿采选业
## 35 安徽 2006 B09 17.3862 有色金属矿采选业
## 36 安徽 2006 B10 18.4796 非金属矿采选业
## 37 安徽 2006 C13 264.5922 农副食品加工业
## 38 安徽 2006 C14 129.1723 食品制造业
自变量数据可以在RStudio的控制台中输入如下命令而打印在屏幕上,
# 不分行业
data("FactorEndw")head(FactorEndw[,1:6])## province year water rain forest CropArea## 6 安徽 2006 580.5 1491.0 412.32 9145.12
## 7 安徽 2007 712.5 1637.9 412.32 8853.87
## 8 安徽 2008 699.3 1598.4 412.32 8976.55
## 9 安徽 2009 733.1 1665.4 439.40 9036.18
## 10 安徽 2010 922.8 1825.7 439.40 9053.37
## 11 安徽 2011 602.1 1484.6 439.40 9022.94
# 分行业的工资和就业
data("CityEmp")data("CityWage")head(CityEmp[,1:5])## province year 电力、热力生产和供应业电气机械和器材制造业纺织服装、服饰业
## 1 安徽 2005 70665 39350 15794
## 2 安徽 2006 73748 39278 17489
## 3 安徽 2007 73430 47365 20887
## 4 安徽 2008 76941 44490 16595
## 5 安徽 2009 74132 47843 20449
## 6 安徽 2010 75408 68511 22250
head(CityWage[,1:5])## province year 电力、热力生产和供应业电气机械和器材制造业纺织服装、服饰业
## 1 安徽 2005 19356 12734 9091
## 2 安徽 2006 23179 15693 10909
## 3 安徽 2007 28828 16403 12416
## 4 安徽 2008 33671 18581 14865
## 5 安徽 2009 38776 21215 16584
## 6 安徽 2010 44190 26414 18679
3.绘图
data-raw文件下储存的main.R和draw_partial_effect.R是我们分别获得原文图2、图4(图5)的主体代码。这些代码,直接打开,运行即可。这个过程有些朋友在运行时可能会报错,根据经验一般是因为相关包没有安装,按照提示安装好这些软件用到的包即可。
4.其他说明
本代码进行了大幅优化,主要是加入了并行计算,把运行时间从3个小时左右缩短到了20多分钟左右(具体运行时间,取决于你的机器性能,我测试的电脑是i9,8核,16线程的),但该并行优化只针对Windows系统,如果是Mac或者Linux系统则会报错。
参考文献:
欧阳志刚与陈普,要素禀赋、地方工业行业发展与行业选择.经济研究,2020(1):第82-98页.


