1998~2014 年工企专利创新突破度 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 指数。

前不久我也讲解了该指数的计算方法:

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

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

之前给大家分享过上市公司专利的 CD 指数计算结果,今天再给大家分享一份 1998~2014 年工企专利创新突破度(CD 指数)的计算结果。

数据概览

使用 R 语言基于全部专利的引用关系数据和工企专利匹配结果数据,首先根据公开公告号和申请号对工企专利数据去重(优先保留在引用关系数据中存在的专利),然后与全部专利的 CD 指数计算结果进行匹配。其中没有后向引用的专利单独处理,将缺失值填充为 0,最终得到每个工企企业每年每条专利的 CD 指数,以及分企业年份平均的 CD 指数汇总数据。

数据包含以下两个文件:

  • 1998~2014年工企专利创新突破度 CD 指数计算结果.dta
  • 1998~2014年工企专利创新突破度 CD 指数计算结果(分公司年份平均).dta

第一个文件是企业-年份-专利层面的数据,包含 4 个变量:gqid(工企企业 ID)、年份、newipzlid(专利编号)和 cd_index(创新突破度 CD 指数,取值范围为 -1 到 1,其中 -1 表示后续专利引用了该专利及其后向引用专利,1 表示后续专利仅引用了该专利但未引用其后向引用专利,0 表示其他情况)。

第二个文件是分企业年份汇总的平均 CD 指数,包含 3 个变量:gqid、年份和 cd_index。

数据预览如下:

图表展示

下图展示了 1998~2014 年工企专利 CD 指数年均值的变化趋势:

下图展示了工企专利创新突破度 CD 指数的整体分布情况:

下图展示了各年份工企专利 CD 指数的分布比较:

下图展示了 1998~2014 年各年份的工企样本数量:

下图展示了 CD 指数正值、零值和负值企业占比的年度变化趋势:

下图展示了不同 CD 指数分组(高突破、正突破、负突破、低突破)的企业数量年度变化:

下图展示了去除 CD = 0 的专利后,非零专利的年均 CD 指数变化趋势:

处理代码

核心的数据处理代码如下(R 语言):

# CD 指数
library(tidyverse)
read_rds("~/Desktop/全部专利CD指数计算/专利CD指数2026-04-01.rds") -> df0

# 没有后向引用的
read_rds("/Users/ac/Documents/数据2025/计算上市公司专利CD指数/nobackrefs.rds") %>%
set_names("newipzlid", "cd_index") -> nobackrefs

# 读取具有引用与被引用信息的专利编号
read_rds("/Volumes/ADT/常用大数据/具有引用与被引用信息的专利unique_newipzlid.rds") -> unique_newipzlid

# 工企专利数据
readr::read_csv("/Volumes/ADT/常用大数据/工企专利数据.csv") -> df1
df1 %>%
left_join(unique_newipzlid %>% mutate(value = 1)) -> df1b

# 去重(尽可能保留 unique_newipzlid 里面的)
df1b %>%
mutate(公开公告号 = str_remove(公开公告号, "[A-Z]$")) %>%
mutate(value = if_else(is.na(value), 0, value)) %>%
group_by(gqid, 年份, 公开公告号) %>%
filter(value == max(value, na.rm = T)) %>%
ungroup() %>%
distinct(gqid, 年份, 公开公告号, .keep_all = T) %>%
select(-公开公告号) %>%
group_by(gqid, 年份, 申请号) %>%
filter(value == max(value, na.rm = T)) %>%
ungroup() %>%
distinct(gqid, 年份, 申请号, .keep_all = T) %>%
select(-申请号, -value) %>%
select(gqid, newipzlid, 年份) -> patent_info

# 与 CD 指数计算结果链接
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(gqid, newipzlid) %>%
select(gqid, 年份, newipzlid, cd_index) -> dfres

# 保存企业-年份-专利层面数据
dfres %>%
haven::write_dta("1998~2014年工企专利创新突破度 CD 指数计算结果.dta",
label = "数据处理:微信公众号 RStata")

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

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

数据引用格式

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

RStata 数据中心: 1998~2014年工企专利创新突破度 CD 指数计算结果. 2026. https://tidyfriday.cn/rsdb2/

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

RStata Data Center: Calculation Results of CD Index for Patent Innovation Breakthrough of Industrial Enterprises above Designated Size, 1998–2014. 2026. https://tidyfriday.cn/rsdb2/

关联课程/数据推荐

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

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

1998~2014 年工企与专利数据匹配结果(版本3,含申请与授权信息):https://rstata.duanshu.com/#/course/6579ec0902604f67acad38aadb39ba30

1998~2014 年工企渐进性创新与突破性创新相关指标计算结果:https://rstata.duanshu.com/#/course/ad6d628fd561426b8435956e15d7b3f7

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

RStata 定制|专利数据匹配服务:https://rstata.duanshu.com/#/course/fd3bb2ac5b86425894a9814a02b36ac7

如果有相关需要可以联系李老师付费定制。

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

评论