新版本在这里:https://rstata.duanshu.com/#/brief/course/6579ec0902604f67acad38aadb39ba30
注意看介绍的结尾,统计专利数量的时候要提前去除重复的专利。
前不久把工企、工企海关、工企污染、工企地理位置的数据都更新了,主要的更新内容是给每个数据生成一个 ID 变量用以标志观测值(每个观测值一个ID值):
工企数据里面我们生成了一个 gqid 变量;
海关数据里面我们生成了一个 hgid 变量;
污染数据里面我们生成了一个 wrid 变量;
专利数据里面也可以生成一个 zlid 变量(暂不提供)。
所以我们整理的工企海关数据里面含有 gqid 和 hgid 变量,工企污染数据里面含有 gqid 和 wrid 变量,后来我们还更新了工企+海关+污染的匹配结果。
今天我们更新了下工企+专利的匹配结果,与其说是更新,不如说是重新匹配了下!这次分享的数据包含如下三个版本:
完整版(之前的数据分享中有,此次的附件中已删除):直接把工企和专利进行匹配,每条观测值是一条专利(包含 gqid 和 zlid 变量);
汇总版:统计了每个工企业的发明专利、实用专利、设计专利以及总专利的数量,每条观测值是一条工企数据(没有匹配到专利的企业也没删除,数量都是 0)(只包含 gqid 变量);
完整版(含专利引用与被引数量):比完整版多了这几个变量:被引用量、非专利引用量、同族专利被引用量、同族专利引用量、专利引用量。
匹配效果概览 下图展示了匹配效果(附件中有绘图代码):
匹配结果中各年的各种类型的专利数量如下图所示:
包含哪些变量 除了工企数据库里面的变量,完整版的数据还包含专利的如下变量:
年份 申请日 分类号 主分类号 公开公告日 申请人 参考文献 代理人 代码 地址 分案原申请号 发布路径 发明设计人 国别 国际公布 国际申请 公开公告号 名称 审查员 申请国代码 申请号 申请来源 邮编 页数 优先权 专利代理机构 专利号 专利类型 主权项 摘要 摘要附图存储路径 进入国家日期 gqid zlid 被引用 非专利引用 同族专利被引用 同族专利引用 专利引用
其中年份是根据申请日生成的。
例如,2013 年完整版的数据预览如下:
2013 年的汇总版的数据预览如下:
由于数据过大,所以特意分拆成了各年的,如果需要面板数据,直接使用 Stata 的 append 命令即可合并(2014 年的数据没有企业匹配唯一标识码)。
匹配方法 由于暂不提供专利数据的原始数据,所以我们就在这里讲解下工企和专利数据的匹配方法。
专利数据中有个申请人变量,每个专利可能有多个申请人,申请人之间使用冒号分隔,因此需要首先处理申请人变量,处理思路如下:
然后在对工企数据库里的企业名称和专利数据里的申请人变量进行处理,主要是改正错字和去除对匹配没有帮助的词汇(例如“有限公司”、“有限责任公司”)。很多文献会说自己采用了模糊匹配,实际上在模糊匹配课程(这里可以看到:https://rstata.duanshu.com/#/course/d4fb816566244662ab6359fa848f1f1e)我将结果模糊匹配的缺点(匹配之后需要人工逐一检查,个人研究中难以实现,如果不检查又会有大量匹配错误的结果)。所以这里我采用的是去除干扰词汇匹配,这也应该就是我们的匹配结果不如 寇宗来&刘学悦(2020)的好的原因。
直接使用申请人和企业名称匹配即可得到匹配结果。
改进匹配结果。Chinese Patent Data Project 网站( )提供了一份 1998~2009 年的工企专利匹配结果(这份数据是模糊匹配的),不过里面的专利数据不是很全,所以我们使用这份数据里面的专利申请号和我们手里的专利数据进行匹配,然后得到了一份更全的结果。
将第 4 步中的 98~09 年结果和我们匹配得到的 10~14 年的结果合并就得到了这份数据。
×
×
专利的引用与被引用信息 完整版中展示了每个专利的引用与被引用数量,如果大家想知道每个专利具体引用了、或者被哪些专利引用了,可以在附件中的 工企专利引用与被引用信息 文件夹中查看,由于这个数据非常大(超过 2500 万条观测值),所以我把数据拆分成了 26 个 dta 文件,每个文件含有 100 万条观测值,并且文件小于 2G,方便低内存电脑打开。
可以使用公开公告号与每个专利相对应。
如何合成面板数据 为了方便大家读取和使用,我特意把数据拆分成了逐年的,如果大家的电脑内存不足,可以分别读取每年的数据仅仅保存自己需要的变量,然后再合并成面板数据,下面介绍下合并方法。
首先由于 2014 年的数据没经过处理,我们需要把里面的一些变量处理下(主要是把一些变量里面的代号替换成其真实含义):
use 工企专利数量2014.dta, clear destring 开业成立时间年, replace forcedestring 开业成立时间月, replace forcetostring 隶属关系, replace forcedict define lggx, cols(old new) replace "10" "中央" "20" "省" "40" "地区" "50" "县" "61" "街道" "62" "镇" "63" "乡" "71" "居委会" "72" "村委会" "90" "其他" end dict lggx: replace 隶属关系 = "%new" if 隶属关系 == "%old" replace 隶属关系 = "" if 隶属关系 == "." replace 隶属关系 = "" if ustrregexm(隶属关系, "[0-9]" )tostring 执行会计制度类别, replace replace 执行会计制度类别 = "企业" if 执行会计制度类别 == "1" replace 执行会计制度类别 = "事业" if 执行会计制度类别 == "2" replace 执行会计制度类别 = "行政" if 执行会计制度类别 == "3" replace 执行会计制度类别 = "其他" if 执行会计制度类别 == "9" replace 执行会计制度类别 = "" if 执行会计制度类别 == "." replace 执行会计制度类别 = "" if 执行会计制度类别 == "4" replace 执行会计制度类别 = "" if 执行会计制度类别 == "0" replace 执行会计制度类别 = "" if 执行会计制度类别 == "5" replace 执行会计制度类别 = "" if 执行会计制度类别 == "307756" tostring 登记注册类型, replace dict define djzclx, cols(old new) replace "100" "内资企业" "150" "有限责任公司" "161" "国有绝对控股上市公司" "162" "国有相对控股上市公司" "163" "非国有控股上市公司" "164" "国有绝对控股非上市公司" "165" "国有相对控股非上市公司" "166" "非国有控股非上市公司" "169" "" "170" "私营企业" "175" "" "4" "" "500" "" "510" "" "522" "" "530" "" "550" "" "900" "" "110" "国有企业" "120" "集体企业" "130" "股份合作企业" "141" "国有联营企业" "142" "集体联营企业" "143" "国有与集体联营企业" "149" "其他联营企业" "151" "国有独资公司" "159" "其他有限责任公司" "160" "股份有限公司" "171" "私营独资企业" "172" "私营合伙企业" "173" "私营有限责任公司" "174" "私营股份有限公司" "190" "其他企业" "210" "合资经营企业(港或澳台资)" "220" "合作经营企业(港或澳台资)" "230" "港澳台独资企业" "240" "港澳台商投资股份有限公司" "290" "" "310" "中外合资经营企业" "320" "中外合作经营企业" "330" "外资(独资)企业" "340" "外商投资股份有限公司" "390" "" end dict djzclx: replace 登记注册类型 = "%new" if 登记注册类型 == "%old" replace 登记注册类型 = "" if 登记注册类型 == "." replace 登记注册类型 = "" if 登记注册类型 == "2" tostring 控股情况, replace dict define kgqk, cols(old new) replace "1" "国有控股" "2" "集体控股" "3" "私人控股" "4" "港澳台控股" "5" "外商控股" "9" "其他" end dict kgqk: replace 控股情况 = "%new" if 控股情况 == "%old" replace 控股情况 = "" if 控股情况 == "." replace 控股情况 = "" if 控股情况 == `"种植机械制造""' replace 控股情况 = "" if ustrregexm(控股情况, "[0-9]" )tab 控股情况save 工企专利数量2014.dta, replace
然后就可以把所有年份的数据循环 append 起来了:
use 工企专利数量1998.dta, clear forval i = 1999/2014 { append using "工企专利数量`i'.dta" }
1998~2013 年的数据已经含有企业匹配唯一标识码(用于跨年识别同一家企业),2014 年的还没有,下面我们使用类似 Brandt 方法的操作为 2014 年的数据也生成企业匹配唯一标识码:
replace 组织机构代码 = strlower (组织机构代码)bysort 组织机构代码 (年份): carryforward 企业匹配唯一标识码 if !missing (组织机构代码), replace bysort 企业名称 (年份): carryforward 企业匹配唯一标识码 if !missing (企业名称), replace bysort 法定代表人 省地县码 开业成立时间年 (年份): carryforward 企业匹配唯一标识码 if !missing (法定代表人) & !missing (省地县码) & !missing (开业成立时间年), replace bysort 固定电话 省地县码 开业成立时间年 (年份): carryforward 企业匹配唯一标识码 if !missing (固定电话) & !missing (省地县码) & !missing (开业成立时间年), replace bysort 开业成立时间年 省地县码 行业小类代码 地区市州盟 主要业务活动或主要产品1 (年份): carryforward 企业匹配唯一标识码 if !missing (行业小类代码) & !missing (省地县码) & !missing (开业成立时间年) & !missing (地区市州盟) & !missing (主要业务活动或主要产品1), replace tostring gqid, gen (sgqid) format (%10.0f) forcereplace 企业匹配唯一标识码 = sgqid if missing (企业匹配唯一标识码)compress
需要注意 企业匹配唯一标识码 变量虽然可以跨年识别同一家企业,但是并不能直接作为面板数据的个体ID变量,可以使用 egen 的 group() 函数生成 group 变量作为个体ID变量:
egen group = group (企业匹配唯一标识码)drop sgqid
然后我们就可以使用 group 作为个体ID变量,年份作为时间变量设定面板了:
*- 删除重复的 group duplicates drop group 年份, force xtset group 年份 gsort 年份 企业匹配唯一标识码 label var group "面板个体ID变量" label var 年份 "面板时间变量" order group 年份 gsort group 年份 save "1998~2014年工企专利数量面板数据", replace
这样就得到了各个工企历年专利申请数量的面板数据。由于这个数据很大(12GB),所以就不再提供该数据了,使用上面介绍的方法即可自行生成。
注意事项(新增) 在计算工企专利申请数量时需要注意,专利数据里面有很多申请和授权同时存在的专利,在统计专利数量的时候应该先去除这种重复情况:
统计的时候可以先去除公开公告号里面的 A、B、U、S。其中 A 代表发明专利的申请公开,B 代表发明专利的授权公告,U 代表实用新型专利的授权公告,S 代表外观设计专利的授权公告。
replace 公开公告号 = subinstr (公开公告号, "A" , "" , .)replace 公开公告号 = subinstr (公开公告号, "B" , "" , .)replace 公开公告号 = subinstr (公开公告号, "U" , "" , .)replace 公开公告号 = subinstr (公开公告号, "S" , "" , .)replace 专利类型 = "发明" if index (专利类型, "发明" )duplicates drop 公开公告号, force
点击这里跳转到 RStata 短书平台获取附件:旧版本|1998~2014年工企业专利数据匹配结果(含专利引用与被引用信息)
评论