2007~2020 年税调企业专利创新突破度 CD 指数计算结果

《Nature》论文「Papers and patents are becoming less disruptive over time」中使用了专利创新突破度(CD 指数)数据:

CD 指数的计算思路如下:对于专利 i,首先找出其后向引用(即专利 i 引用了哪些更早期的专利),然后考察后续专利 j(申请日期晚于专利 i)的引用行为:

  1. 若专利 j 既引用了专利 i,又引用了专利 i 的后向引用专利,说明专利 j 沿用了专利 i 的既有知识脉络,此时专利 i 的该项引用 CD 值为 -1;
  2. 若专利 j 只引用专利 i 但未引用其后向引用专利,说明专利 i 具有知识突破性,CD 值为 1;
  3. 若专利 j 没有引用专利 i 但引用其后向引用专利,CD 值为 0。

将所有后续专利对专利 i 的引用 CD 值取平均,即得到专利 i 的 CD 指数。

关于 CD 指数的计算方法,之前也讲解过:

名师讲堂|使用 R 语言测算专利的创新突破度:CD 指数:https://rstata.duanshu.com/#/course/3b00a43418ee43f194df7fa664ef0c7d

名师讲堂|使用 Stata 测算专利的创新突破度:CD指数:https://rstata.duanshu.com/#/course/ca92eb2b71854c1b8a6cd74c66bd6c5e

今天给大家分享一份 2007~2020 年税调企业专利创新突破度 CD 指数计算结果。该数据基于全国税收调查企业(税调企业)与专利数据的匹配结果,利用全部专利的引用与被引用信息,采用 R 语言并行计算得到。

数据概览

经过计算后得到了如下两个文件:

  • 2007~2020年税调企业专利创新突破度CD指数计算结果.dta
  • 2007~2020年税调企业专利创新突破度CD指数计算结果(分公司年份平均).dta

其中包含以下变量:

  • sdid:公司税局 ID
  • 年份:年份(2007~2020 年)
  • newipzlid:专利 ID(发明专利编号)
  • cd_index:CD 指数(取值范围为 -1 到 1,值越大表示专利创新突破性越强)

数据预览如下:

图表展示

下图展示了 2007~2020 年企业 CD 指数年度均值变化趋势:

下图展示了企业 CD 指数分布直方图:

下图展示了 2007~2020 年企业 CD 指数分年度箱线图:

下图展示了 2007~2020 年各年度企业样本数量:

下图展示了 2007~2020 年 CD 指数正负分布年度对比:

下图展示了 2007~2020 年 CD 指数正负占比年度趋势:

下图展示了 2007~2020 年企业 CD 指数分位数年度趋势(P10、P25、P50、P75、P90):

下图展示了 2007~2020 年 CD 指数均值与标准差年度趋势:

下图展示了分公司年份平均 CD 指数分布直方图:

下图展示了 2007~2020 年分公司年份平均 CD 指数箱线图:

处理代码

附件中也提供了该数据的处理代码供参考。代码的主要处理流程如下:

首先是读取税调企业专利匹配数据,与具有引用与被引用信息的专利进行链接,确保专利编号能够对应到全部专利的引用关系网络中:

# 税调专利数据
readr::read_csv("/Volumes/ADT/常用大数据/税调与专利数据匹配结果分年.csv") -> df1
df1 %>%
left_join(unique_newipzlid %>% mutate(value = 1)) -> df1b

# 由于专利数据里面包含重复的,所以我们要进行去重
df1b %>%
mutate(公开公告号 = str_remove(公开公告号, "[A-Z]$")) %>%
mutate(value = if_else(is.na(value), 0, value)) %>%
# 根据公开公告号去重
group_by(sdid, 年份, 公开公告号) %>%
filter(value == max(value, na.rm = T)) %>%
ungroup() %>%
distinct(sdid, 年份, 公开公告号, .keep_all = T) %>%
select(-公开公告号) %>%
# 再根据申请号去重
group_by(sdid, 年份, 申请号) %>%
filter(value == max(value, na.rm = T)) %>%
ungroup() %>%
distinct(sdid, 年份, 申请号, .keep_all = T) %>%
select(-申请号, -value) %>%
select(sdid, newipzlid, 年份) -> patent_info

然后使用 R 语言并行计算(10 个核心)每个专利的 CD 指数。核心计算逻辑是:对于每个专利 i,找出其所有后向引用,然后筛选出申请日期晚于专利 i 的后续专利 j,分别统计同时引用专利 i 及其后向引用的情况、只引用专利 i 的情况、以及只引用后向引用的情况,据此计算 CD 指数:

library(parallel)
makeCluster(10) -> cl
clusterEvalQ(cl, ({
library(tidyverse)
read_rds("~/Documents/数据2025/计算上市公司专利CD指数/patent_citations2.rds") -> patent_citations2
}))

parLapply(cl, testmat$newipzlid, function(x){
# 准备 i 的后向引用
patent_citations2 %>%
filter(newipzlid == x) -> testpat

testpat %>%
select(newipzlid2) %>%
pull(newipzlid2) -> backrefs

# j 申请日期晚于 i
patent_citations2 %>%
filter(date >= testpat$date[1]) -> part0

# 引用 i 的
part0 %>%
filter(newipzlid2 == x) %>%
select(newipzlid) %>%
distinct(newipzlid) -> part1

# 引用 i 后向引用的
part0 %>%
filter(newipzlid2 %in% backrefs) %>%
select(newipzlid) %>%
distinct(newipzlid) -> part2

# 三种情况:既引用 i 又引用后向引用 -> -1;只引用 i -> 1;只引用后向引用 -> 0
suppressMessages({
part1 %>%
inner_join(part2) %>%
mutate(cd = -1) -> parta
part1 %>%
anti_join(part2) %>%
mutate(cd = 1) -> partb
part2 %>%
anti_join(part1) %>%
mutate(cd = 0) -> partc
})

tibble(
newipzlid = x,
cd_index = mean(c(parta$cd, partb$cd, partc$cd), na.rm = T)
) %>%
write_csv(paste0("res1/", Sys.getpid(), ".csv"), append = T, quote = "needed")
})

最后将计算结果与税调企业专利信息匹配,没有后向引用的专利(即 CD 指数默认为 1)也一并合并,缺失值设为 0,并额外生成一个分公司年份平均的数据集:

# 和上述计算结果链接
patent_info %>%
left_join(
bind_rows(df0, nobackrefs)
) -> dfres

dfres %>%
mutate(cd_index = if_else(is.na(cd_index), 0, cd_index)) -> dfres

dfres %>%
arrange(sdid, newipzlid) %>%
select(sdid, 年份, newipzlid, cd_index) -> dfres

dfres %>%
haven::write_dta("2007~2020年税调企业专利创新突破度 CD 指数计算结果.dta",
label = "数据处理:微信公众号 RStata")

dfres %>%
group_by(sdid, 年份) %>%
summarise(cd_index = mean(cd_index, na.rm = T), .groups = "drop") %>%
haven::write_dta("2007~2020年税调企业专利创新突破度 CD 指数计算结果(分公司年份平均).dta",
label = "数据处理:微信公众号 RStata")

绘图代码使用 Stata 编写。

附件中也提供了该数据的处理代码供参考:

数据引用格式

由于该数据包含较多 RStata 处理的内容,在研究中使用该数据请使用清晰的方式注明数据来源于 RStata 或者 RStata 数据中心,并使用如下格式引用:

RStata 数据中心: 2007~2020年税调企业专利创新突破度 CD 指数计算结果. 2026. https://tidyfriday.cn/rsdb2/

英文文献可以使用下面的格式引用:

RStata Data Center: Calculation Results of Patent Innovation Breakthrough Degree (CD Index) for Tax-Surveyed Enterprises, 2007–2020. 2026. https://tidyfriday.cn/rsdb2/

关联课程/数据推荐

名师讲堂|使用 R 语言测算专利的创新突破度:CD 指数:https://rstata.duanshu.com/#/course/3b00a43418ee43f194df7fa664ef0c7d

名师讲堂|使用 Stata 测算专利的创新突破度:CD指数:https://rstata.duanshu.com/#/course/ca92eb2b71854c1b8a6cd74c66bd6c5e

1985~2024 年全部专利引用与被引用详细信息:https://rstata.duanshu.com/#/course/225ad0b59a9945e1831d2e8b96ca1001

2007~2020 年税调渐进性创新与突破性创新相关指标计算结果:https://rstata.duanshu.com/#/course/a668fe30fc1f4b52bdb9ee570034c435

2007~2020 年税调数据与专利数据匹配结果(版本3):https://rstata.duanshu.com/#/course/040a2ba951304f5b89f6c925320547f3

如果有相关数据需求,可以联系李老师付费定制。

点击这里跳转到 RStata 短书平台获取附件:2007~2020 年税调企业专利创新突破度 CD 指数计算结果

评论