楼主: 不二老三
68221 121

[学习心得] 《工业企业数据库》匹配:(一)数据预处理   [推广有奖]

本科生

79%

还不是VIP/贵宾

-

威望
0
论坛币
1490 个
通用积分
28.0763
学术水平
32 点
热心指数
35 点
信用等级
26 点
经验
2547 点
帖子
54
精华
0
在线时间
134 小时
注册时间
2015-6-5
最后登录
2022-3-24

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
最近看了Brandt, L., et al. (2012). "Creative accounting or creative destruction? Firm-level productivity growth in Chinese manufacturing."Journal of Development Economic 97(2): 339-351.的论文。Brandt, L., et al. (2012)在论文的附件中给出了《中国工业企业数据库》的匹配方法。
liuyanclick非常详细的对这篇论文的数据处理过程做了介绍,详细的处理过程可见liuyanclick在经管之家的一系列帖子https://bbs.pinggu.org/thread-5913071-1-1.html。

Brandt, L., et al. (2012)在匹配工业企业数据库的时候,用主营产品加上企业所在地等信息作为企业的识别和匹配条件。这样的做法可以提高样本的匹配成功率,但也可能导致企业的错误匹配。同时,Brandt, L., et al. (2012)的匹配代码也比较复杂。我希望自己写一个《工业企业数据库》的处理过程,并一定得写一个比原作者更好的方法,主要还是希望在这个过程中对《工业企业数据库》更加了解,同时熟悉STATA操作。欢迎小伙伴们加入讨论。整个处理过程我将分为三个帖子。第一个帖子(本帖)将介绍数据的预处理过程,第二个帖子将介绍用《工业企业数据库》生成平衡面板数据的过程,第三个帖子将介绍生成非平衡面板数据的过程。

*-----------数据的预处理,以1998年的数据为例---------
*数据的预处理需要统一变量名(用英文命名)和修改变量的存储格式(用于匹配的变量保存为字符串格式,用于计算指标的变量保存为数值型格式)。我给出了我对1998年的原始数据进行预处理的do 文档preprocess1998,代码如下:
cls   
clear
set more off

use 1998.dta,clear

rename v1 id
drop gs ksgs
rename v4 name
drop v5  //企业单位类别
  rename v6 corp_representive
  rename v7 title
  rename v8 county   //乡(镇)
  rename v9 house_number  //门牌号
  rename v10 street //村、街道(街道办事处)
  rename v11 community   //居委会、社区
  rename v12 diming_code  //四位地名代码
        tostring diming_code,replace
rename v13 dq   //地区代码:六位省地县码
        tostring dq,replace
  rename v14 xiangcun_code   //乡村码
        tostring xiangcun_code,replace
rename v15 phone   
        tostring phone,replace
  rename v16 ext_phone   //电话分机
  rename v17 fax  
  rename v18 ext_fax  //传真分机
rename v19 zip   //邮政编码
        tostring zip,replace
rename v20 productA
  rename v21 productB
  rename v22 productC
rename v23 nic  //national industry classification 1994年版
        tostring nic,replace
drop b081 b082 b083 b084 b08a
rename v29 accounting_system
        tostring accounting_system,replace
rename v30 registration_type
        tostring registration_type,replace
rename v31 holding_status  //控股情况
        tostring holding_status,replace
rename v32 adm_subordination    //隶属关系
        tostring adm_subordination,replace
rename v33 est_year
        tostring est_year,replace
rename v34 est_month
        tostring est_month,replace
rename v35 operating_status
        tostring operating_status,replace
rename v36 cons_qualification  //建房资级别
        tostring cons_qualification,replace
rename v37 chan_huo_dan_wei_shu //产活单位数
rename v38 agri_industry  //农林牧渔业
        tostring agri_industry,replace
rename v39 manu_industry  //工业
        tostring manu_industry,replace
rename v40 building_industry   //建筑业
        tostring building_industry,replace
rename v41 trans_industry  //运输业
        tostring trans_industry,replace
rename v42 sales_industry   //批发零售业
        tostring sales_industry,replace
rename v43 catering_industry  //餐饮业
        tostring catering_industry,replace
rename v44 other_industry  //其他产业
        tostring other_industry,replace
rename v45 firm_scale
        tostring firm_scale,replace
rename v46 ligh_or_heavy_industry  //轻重工业
        tostring ligh_or_heavy_industry,replace
rename v47 workforce_congye        
drop b231 b232 b233
rename v51 indus_output_fixed   //工业产值固
rename v52 indus_output_current //工业产值现
rename v53 new_product_output  //新产品产值
rename v54 indus_sales  //工业销售现
rename v55 exp_value  //出口交货值
rename v56 indus_added_value   //工业增加值
rename v57 current_assets  //流动资产
rename v58 receivables  //应收账净额
rename v59 inventory    //存货
rename v60 finished_product   //产成品
rename v61 avg_current_assets //年均流动资产余额
rename v62 long_term_investment
rename v63 fixed_assets   //固定资产合
rename v64 fixed_assets_original   //固定资产原价合计
rename v65 prod_oper_expense  //生产经营费用
rename v66 acc_depreciation  
rename v67 depreciation  //本年折旧
rename v68 fixed_assets_ending  //固定资产净年末余额
rename v69 intangible_assetsA  //无形及递延资产合计
rename v70 intangible_assetsB  //无形资产
rename v71 total_assets
rename v72 current_liabilities  //流动负债合计
rename v73 long_term_liabilities  //长期负债
rename v74 total_liabilities
rename v75 total_equity
rename v76 paid_in_capital   //实收资本
rename v77 national_capital
rename v78 collective_capital
rename v79 corporate_capital
rename v80 individual_capital
rename v81 gat_capital
rename v82 foreign_capital
rename v83 sales_revenue    //销售收入
rename v84 sales_cost       //销售成本
rename v85 sales_expense   //销售费用
rename v86 sales_tax_and_sur    //销售税附加
rename v87 sales_profit
rename v88 other_profit
rename v89 adm_expenses  //管理费用
rename v90 tax_in_adm_expenses  //其中:税金
rename v91 property_insurance   //其中:财产保险费
rename v92 unemployment_insurance  //其中:劳待保险费
rename v93 fin_expenses  //财务费用
rename v94 interest_in_fin_expenses  //其中:利息支出
rename v95 operating_profit
rename v96 subsidy_income
rename v97 total_profit
drop v98   //亏损总额
rename v99 total_profit_and_tax  //利税总额
rename v100 income_tax
rename v101 profit_payable  //应付利润
rename v102 wage   //年应付工资
rename v103 wage_in_operating   //其中:主营业务工资
rename v104 welfare  //年应付福利
rename v105 welfare_in_operating   //其中:主营业务福利
rename v106 value_added_tax  //应交增值税
rename v107 input_tax     //进项税
rename v108 output_tax    //销项税
rename v109 intermediate_input    //中间投入合计
drop ls
*其他年份的数据预处理和1998年的方法一样,都是体力活儿,没啥技术含量。


-----单独年份的数据处理完以后,接下来需要对所有年份的数据(1998-2006)进行汇总处理---
do文档名为my preprocess,代码如下:


* 数据预处理(第二部分)
*(1)保留用于匹配的变量和计算指标的变量
*(2)将法人代码中的字母统一为大写字母
*(3)剔除无效样本:违背会计常识的样本、关键变量观测值确实的样本
*(4)统一国民经济行业分类码(这部分还没有做,对后面的匹配结果略有影响)
*(5)在变量名后加上样本所在的年份,使得同名变量在不同年份可比、可区分


cls   
clear all
set more off

*部分年份的主营产品长度超过240个字符,截取前20个字符
forvalues i = 1998/2006{  
        qui do preprocess`i'
        gen product=substr(productA,1,20)
        saveold "m`i'.dta",replace
}
*将“从业人数”和“职工人数”统一命名为workforce
use "m1998.dta",clear
rename workforce_congye workforce
saveold "m1998.dta",replace
forvalues i = 1999/2002{
        use "m`i'.dta",clear
        rename workforce_zhigong workforce
        saveold "m`i'.dta",replace
}        
forvalues i = 2003/2006{
        use "m`i'.dta",clear
        rename workforce_congye workforce
        saveold "m`i'.dta",replace
}        
*将“销售收入”和“主营业务收入”统一命名为revenue
forvalues i = 1998/2003{
        use "m`i'.dta",clear
        rename sales_revenue revenue
        saveold "m`i'.dta",replace
}        
forvalues i = 2004/2006{
        use "m`i'.dta",clear
        rename main_operating_revenue revenue
        saveold "m`i'.dta",replace
}
*将法人代码中的小写字母替换成大写、保留接下来将使用到的变量、去掉法人代码或法人名称缺失的样本、
*去掉法人代码或法人名称重复的样本、在所有的变量名后加上年份
forvalues i = 1998/2006{  
        use "m`i'.dta",clear
        replace id=upper(id)
        keep id name dq phone nic zip product  est_year registration_type corp_representive ////
                        workforce revenue total_profit indus_output_current new_product_output  ////
                        exp_value intermediate_input acc_depreciation depreciation fixed_assets  ////
                        national_capital corporate_capital individual_capital foreign_capital  ////
                        collective_capital gat_capital total_equity
        drop if id==""
        drop if name==""
        bysort id : drop if _N>1
        bysort name : drop if _N>1


        foreach var of varlist *{  
        rename `var' `var'`i'  
    }  
    compress  
        saveold "m`i'.dta",replace
}        
*简单描述下运算结果生成的数据文件:
forval i = 1998/2006{  
    use "m`i'.dta",clear  
    des,short  
}   



至此,数据预处理结束。生成m1998,m1999,...,m2006等九个文件,用于接下来的匹配。


PS:《工业企业数据库》的存储格式一般为数据库(dbd)格式,在对数据预处理前需要先将数据转换成纯文本格式(csv),然后在转换成dta格式。liuyanclick已经对这个过程做了非常详细的介绍,我就不再重复了。
PPS:我使用的MAC版的STATA13。数据我存储到了百度云盘,链接如下:链接:https://pan.baidu.com/s/18k2-q5RFLV79OXDUj_kgeQ  密码:46id


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:工业企业数据库 匹配

已有 10 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
wtst + 5 + 3 热心帮助其他会员
水上人间 + 5 + 5 + 5 + 5 奖励积极上传好的资料
八七七 + 1 + 1 + 1 精彩帖子
树林阴熠 + 1 + 1 + 1 精彩帖子
stkbg + 1 + 1 + 1 + 1 精彩帖子
rubyjelly + 1 + 1 + 1 精彩帖子
np84 + 200 精彩帖子
wangmengye + 1 + 1 + 1 精彩帖子
永远的24号 + 1 + 1 精彩帖子
115861 + 3 精彩帖子

总评分: 经验 + 200  论坛币 + 16  学术水平 + 14  热心指数 + 17  信用等级 + 10   查看全部评分

本帖被以下文库推荐

沙发
goujulin 发表于 2018-6-29 21:22:40 |只看作者 |坛友微信交流群
我的天,工业企业数据库是多少人求之不得的。楼主居然直接公开了!!!太感谢了!!!

使用道具

藤椅
齐鲁白桦林 发表于 2018-6-30 10:27:08 |只看作者 |坛友微信交流群
为楼主点赞,

使用道具

板凳
shineunique 发表于 2018-7-9 09:12:27 |只看作者 |坛友微信交流群
楼主,DO文档名怎么存呀。。技术小白 ,求指点

使用道具

报纸
不二老三 学生认证  发表于 2018-7-9 11:01:44 |只看作者 |坛友微信交流群
shineunique 发表于 2018-7-9 09:12
楼主,DO文档名怎么存呀。。技术小白 ,求指点
preprocess1998
preprocess1999
。。。

使用道具

地板
不二老三 学生认证  发表于 2018-7-9 11:01:48 |只看作者 |坛友微信交流群
shineunique 发表于 2018-7-9 09:12
楼主,DO文档名怎么存呀。。技术小白 ,求指点
preprocess1998
preprocess1999
。。。

使用道具

7
shineunique 发表于 2018-7-9 11:22:41 |只看作者 |坛友微信交流群
解决啦

使用道具

8
陈晓佳 发表于 2018-7-10 01:01:37 来自手机 |只看作者 |坛友微信交流群
谢谢楼主

使用道具

9
shineunique 发表于 2018-7-10 09:07:20 |只看作者 |坛友微信交流群
不二老三 发表于 2018-7-9 11:01
preprocess1998
preprocess1999
。。。
楼主,为什么要删掉全部重复的样本呀,我看那个帖子是分离再保存,没看懂,求赐教,感激。

使用道具

10
不二老三 学生认证  发表于 2018-7-12 17:20:00 |只看作者 |坛友微信交流群
shineunique 发表于 2018-7-10 09:07
楼主,为什么要删掉全部重复的样本呀,我看那个帖子是分离再保存,没看懂,求赐教,感激。
法人代码或法人名称重复通常是因为统计错误导致的,有的是因为同一个企业的不同分部被多次统计,这类样本的占比很少,我觉得直接去掉这些样本会更加合理。本来样本就少,这些样本中匹配成功的几乎没有。而且由于存在统计错误,匹配成功了也没多大意义。
已有 5 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
stkbg + 1 + 1 + 1 + 1 精彩帖子
2402490124 + 1 + 1 + 1 精彩帖子
husterwf + 1 + 1 + 1 精彩帖子
ww0123 + 1 + 1 + 1 精彩帖子
shineunique + 2 + 2 + 2 谢谢指导!

总评分: 论坛币 + 1  学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 18:49