之前给大家分享过参考「新质生产力背景下数实融合的测算与时空比较——基于专利共分类方法的研究」一文计算的数实融合指标:
- 使用 Stata 测算数实融合水平(一):基于示例数据:https://rstata.duanshu.com/#/course/92b5c171ace949ec921b0570f421675f
- 使用 Stata 测算数实融合水平(二):基于真实专利数据:https://rstata.duanshu.com/#/course/7397f6f81ed24bfab1a39bb9c2796b67
- 名师讲堂|使用 Stata 测算数实融合水平(三):分城市、产业计算数实融合:https://rstata.duanshu.com/#/course/d98fcb7ceb9b4ce4900e835277529a92
也给大家分享了最终计算的结果:
今天再给大家分享参考黄先海(2023)的计算方法。
数实产业技术融合与企业全要素生产率——基于中国企业专利信息的研究
附件中也提供了该论文的 pdf 文件。
文中关于数实产业技术融合变量的测算是这样描述的:

恰好这里提到的数据之前我都在平台上分享过:
- 1985~2024 年全部专利引用与被引用详细信息:https://rstata.duanshu.com/#/brief/course/225ad0b59a9945e1831d2e8b96ca1001
- 1985~2024 年数字经济产业相关专利筛选结果:https://rstata.duanshu.com/#/course/d5dfb9ca0858457ebc4f176fce9fee80
- 1985~2024 年上市公司与专利数据匹配结果(版本3, 含申请、授权信息):https://rstata.duanshu.com/#/brief/course/04100321f88b411f90429be934934bff
然后恰好数字经济专利我也是分别根据主分类号和分类号筛选的。
全部专利引用与被引用详细信息
全部专利引用与被引用详细信息数据记录了专利间的引用和被引用关系:
use 全部专利引用关系(仅含newipzlid和申请日).dta, clear
|

newipzlid_original 和 newipzlid 都是专利的编号,表示 newipzlid_original 对应的专利引用了 newipzlid 的专利,该数据是根据 「1985~2024 年全部专利引用与被引用详细信息」处理得到的,具体来说是把被引用数据反转过来和引用数据合并再去重即可得到,代码可以参考附件中的 main.R。
基于主分类号筛选的数字经济专利newipzlid.dta 和 基于分类号筛选的数字经济专利newipzlid.dta 来自「1985~2024 年数字经济产业相关专利筛选结果」,例如第一个文件是这样的:
use 基于主分类号筛选的数字经济专利newipzlid.dta, clear
|

根据这两组文件就可以筛选数实产业技术融合相关的专利了:
use "全部专利引用关系(仅含newipzlid和申请日).dta", clear ren newipzlid newipzlid2 ren newipzlid_original newipzlid joinby newipzlid using 基于主分类号筛选的数字经济专利newipzlid.dta, unmatched(master) tab _m keep if _m == 1 drop _m
drop 数字经济产业分类ID ren newipzlid newipzlid_original ren newipzlid2 newipzlid joinby newipzlid using 基于分类号筛选的数字经济专利newipzlid.dta, unmatched(master) tab _m keep if _m == 3 drop _m drop 数字经济产业分类ID duplicates drop _all, force keep newipzlid_original ren newipzlid_original newipzlid duplicates drop _all, force save 数实产业技术融合相关的专利, replace
|
不过由于专利数据很大,这段代码直接运行需要耗时太长时间,所以我还是选择部分年份的进行演示,实际中大家也可以使用循环逐年处理再合并处理结果:
use "全部专利引用关系(仅含newipzlid和申请日).dta", clear
keep if yofd(申请日_original) == 2019
ren newipzlid newipzlid2 ren newipzlid_original newipzlid joinby newipzlid using 基于主分类号筛选的数字经济专利newipzlid.dta, unmatched(master) tab _m keep if _m == 1 drop _m
drop 数字经济产业分类ID ren newipzlid newipzlid_original ren newipzlid2 newipzlid joinby newipzlid using 基于分类号筛选的数字经济专利newipzlid.dta, unmatched(master) tab _m keep if _m == 3 drop _m drop 数字经济产业分类ID duplicates drop _all, force keep newipzlid_original ren newipzlid_original newipzlid duplicates drop _all, force save 数实产业技术融合相关的专利, replace
|
这样就得到了部分数实产业技术融合相关的专利,不过只有 newipzlid 变量,如果需要其他的变量再继续和全部专利数据匹配即可。
统计上市公司数实产业技术融合次数
把上述得到的数据再和上市公司专利数据匹配即可:
use "2019年上市公司与专利数据匹配结果.dta", clear keep 股票代码 股票名称 公司名称 newipzlid 年份 joinby newipzlid using 数实产业技术融合相关的专利 destring newipzlid, replace bysort 股票代码 年份: egen SR = nvals(newipzlid) keep 股票代码 年份 SR duplicates drop _all, force save 上市公司数实产业技术融合次数计算结果, replace
|
与作者计算结果对比
数据.dta 是原论文作者提供的计算结果,对比下:
use 数据.dta, clear keep firm_id accper TechConv save tempdata1, replace
use 上市公司数实产业技术融合次数计算结果, clear replace SR = log(SR + 1) ren (股票代码 年份) (firm_id accper) destring firm_id, replace joinby firm_id accper using tempdata1 tw sc SR TechConv || lfit SR TechConv
|

reg SR TechConv
tw kdensity SR || kdensity TechConv
|

看起来我使用的数据更全,计算的结果更大一些。
调整专利引用信息窗口期
在论文的稳健性检验部分,作者还调整了专利引用信息窗口期。也就是仅统计在企业专利申请时所引用的前三年内公开的专利信息:
use "全部专利引用关系(仅含newipzlid和申请日).dta", clear keep if 申请日_original - 申请日 <= 1095
keep if yofd(申请日_original) == 2019
drop 申请日* ren newipzlid newipzlid2 ren newipzlid_original newipzlid joinby newipzlid using 基于主分类号筛选的数字经济专利newipzlid.dta, unmatched(master) tab _m keep if _m == 1 drop _m
drop 数字经济产业分类ID ren newipzlid newipzlid_original ren newipzlid2 newipzlid joinby newipzlid using 基于分类号筛选的数字经济专利newipzlid.dta, unmatched(master) tab _m keep if _m == 3 drop _m drop 数字经济产业分类ID duplicates drop _all, force keep newipzlid_original ren newipzlid_original newipzlid duplicates drop _all, force save 数实产业技术融合相关的专利2, replace
use "2019年上市公司与专利数据匹配结果.dta", clear keep 股票代码 股票名称 公司名称 newipzlid 年份 joinby newipzlid using 数实产业技术融合相关的专利2 destring newipzlid, replace bysort 股票代码 年份: egen SR2 = nvals(newipzlid) keep 股票代码 年份 SR2 duplicates drop _all, force save 上市公司数实产业技术融合次数计算结果2, replace
|
异质性分析:分数字经济产业类别
异质性分析部分还分数字经济产业类别计算了上市公司数实产业技术融合次数。代码和上面的类似,只需要增加类别变量,然后汇总的时候加上即可:
use 数字经济核心产业分类与国际专利分类参照关系表.dta, clear ren 数据经济产业分类ID 数字经济产业分类ID keep 数字经济核心产业大类 数字经济产业分类ID duplicates drop _all, force save 数字经济核心产业大类, replace
use "全部专利引用关系(仅含newipzlid和申请日).dta", clear
keep if yofd(申请日_original) == 2019
ren newipzlid newipzlid2 ren newipzlid_original newipzlid joinby newipzlid using 基于主分类号筛选的数字经济专利newipzlid.dta, unmatched(master) tab _m keep if _m == 1 drop _m drop 数字经济产业分类ID drop 申请日*
ren newipzlid newipzlid_original ren newipzlid2 newipzlid joinby newipzlid using 基于分类号筛选的数字经济专利newipzlid.dta, unmatched(master) tab _m keep if _m == 3 drop _m
joinby 数字经济产业分类ID using 数字经济核心产业大类
drop 数字经济产业分类ID keep newipzlid_original 数字经济核心产业大类 ren newipzlid_original newipzlid replace 数字经济核心产业大类 = substr(数字经济核心产业大类, 3, .) duplicates drop _all, force save 分类别数实产业技术融合相关的专利, replace
use "2019年上市公司与专利数据匹配结果.dta", clear keep 股票代码 股票名称 公司名称 newipzlid 年份 joinby newipzlid using 分类别数实产业技术融合相关的专利 destring newipzlid, replace bysort 股票代码 年份 数字经济核心产业大类: egen SR2 = nvals(newipzlid) keep 股票代码 年份 数字经济核心产业大类 SR2 duplicates drop _all, force spread 数字经济核心产业大类 SR2 foreach i of varlist _all { cap replace `i' = 0 if mi(`i') } save 上市公司数实产业技术融合次数计算结果3, replace
|
合并所有结果
最后合并所有结果即可:
use 上市公司数实产业技术融合次数计算结果, clear ren SR 数实产业技术融合次数 merge 1:1 股票代码 年份 using 上市公司数实产业技术融合次数计算结果2 drop _m ren SR2 数实产业技术融合次数_根据3年内引用计算 merge 1:1 股票代码 年份 using 上市公司数实产业技术融合次数计算结果3 drop _m replace 数实产业技术融合次数_根据3年内引用计算 = 0 if mi(数实产业技术融合次数_根据3年内引用计算) foreach i of varlist _all { cap replace `i' = 0 if mi(`i') } gsort 股票代码 年份 save 上市公司数实产业技术融合次数计算结果all, replace
|

如果需要全部数据,循环各年计算即可~
点击这里跳转到 RStata 短书平台获取附件:名师讲堂|使用 Stata 测算上市公司数实产业技术融合指标(参考黄先海(2023))
评论