指标背景与文献来源
技术专业化(Technological Specialization, TSP)和技术多样化(Technological Diversification, TDI)是刻画企业技术布局的两个重要维度。
王慧扬等(2025)在《知识搜索与科技领军企业关键核心技术突破》(《科学学研究》2025)中系统使用了这两个指标来研究科技领军企业的关键核心技术突破。
- 技术专业化(TSP):衡量企业专利技术是否集中于少数技术类别。TSP 越高,说明企业的专利越集中在少数技术小类上,专业化程度越高。
- 技术多样化(TDI):衡量企业专利在技术大类上的分布广度。TDI 越高,说明企业的专利分布越分散,多样化程度越高。
这两个指标均基于企业专利的 IPC(国际专利分类) 分类号进行计算。
数据说明
本文使用的数据为 1985~2024 年上市公司与专利数据匹配结果(含引用与被引用信息),原始数据约 271 万行、70 列,10GB+。
为了便于演示和加快计算速度,计算时以 2020 年 为例进行。如果你需要处理其他年份或全量数据,只需修改读取数据部分的代码即可。
数据字段主要包括:
| 变量名 | 说明 |
|---|---|
| 股票代码 | 上市公司股票代码 |
| 年份 | 专利申请年份 |
| 申请号 | 专利申请号 |
| 公开公告号 | 专利公开/公告号 |
| IPC主分类 | IPC 主分类号(如 G06F) |
IPC 分类简介
IPC(International Patent Classification,国际专利分类)是世界知识产权组织(WIPO)制定的专利分类标准,将专利技术领域分为五个层级:
| 层级 | 说明 | 示例 |
|---|---|---|
| 部(Section) | 8 个大部,用 A~H 表示 | A、G、H |
| 大类(Class) | 部 + 2 位数字,共 3 位 | G06、H04 |
| 小类(Subclass) | 大类 + 1 位字母,共 4 位 | G06F、H04L |
| 大组(Main Group) | 小类 + 1~3 位数字 | G06F 1 |
| 小组(Subgroup) | 大组 + “/“ + 数字 | G06F 1/00 |
本文计算中使用:
- 技术多样化(TDI) → 基于 IPC 大类(前 3 位,如 G06)
- 技术专业化(TSP) → 基于 IPC 小类(前 4 位,如 G06F)
为什么这样区分? 根据王慧扬等(2025)的研究设计,技术专业化关注企业在更细分的技术小类上是否集中(用变异系数衡量集中度),而技术多样化关注企业在更宏观的技术大类上的分布广度(用熵指数衡量多样性)。
计算方法
![]()
为什么用熵指数? Shannon 熵是信息论中衡量不确定性的指标,值越大说明分布越均匀。用在技术多样化上,熵越大说明企业技术布局越分散、越多样化。
R 语言完整实现
下面我们对 计算技术专业化与多样化.R 脚本进行逐行解读,完整展示使用 R 语言计算 TSP 和 TDI 的流程。
第一部分:加载所需 R 包
# ============================================================ |
代码解读:
tidyverse是一个 R 语言包集合,包含了dplyr(数据操作)、readr(数据读取)、stringr(字符串处理)等常用包,我们使用它来进行数据清洗和变换。data.table提供了fread()函数,可以快速读取大型 CSV 文件(支持 10GB+ 数据),比基础 R 的read.csv()快很多。
注意:如果你处理的是全量数据(1985~2024 年),建议使用
data.table::fread()读取,并配合dplyr进行数据操作。
第二部分:读取数据
# 读取数据(2020年样本) |
代码解读:
这里我们使用 readr::read_csv() 读取已经预处理好的 2020 年数据。
如果你需要处理全量数据,可以使用以下代码(取消注释即可):
# 使用 data.table 的 fread 快速读取大数据 |
读取数据后,我们查看一下数据的维度:
# 查看数据维度 |
第三部分:数据去重
专利数据中存在同一专利被多次记录的情况(例如同一专利有多个公开公告号),需要按一定规则去重。去重分三步:
3.1 清洗公开公告号
# Step 1: 清洗公开公告号(去掉末尾字母) |
代码解读:
- 公开公告号的格式通常为 CN1234567A 或 CN1234567B,末尾的字母表示专利公告的不同阶段
- 使用 stringr::str_remove(公开公告号, “[A-Z]$”) 去掉末尾的大写字母
- [A-Z]$ 是正则表达式,表示”末尾的一个大写字母”
3.2 按公开公告号去重
# Step 2: 按 股票代码 + 年份 + 公开公告号_clean 去重 |
代码解读:
- distinct(股票代码, 年份, 公开公告号_clean, .keep_all = TRUE) 会保留每个(股票代码、年份、公开公告号_clean)组合的第一行,并保留所有变量
- 这样可以去除同一专利的多个公开公告记录
3.3 按申请号去重
# Step 3: 按 股票代码 + 年份 + 申请号 去重 |
代码解读:
- 进一步按「股票代码 + 年份 + 申请号」去重,确保同一专利申请只计算一次
- 经过这两步去重,我们获得了干净的企业-专利匹配数据
第四部分:提取 IPC 分类信息
此处代码需下载讲义材料查看~
代码解读:
- stringr::str_sub(IPC主分类, 1, 3) 提取 IPC主分类 的前 3 位字符,作为 IPC 大类
- stringr::str_sub(IPC主分类, 1, 4) 提取前 4 位字符,作为 IPC 小类
- 例如:IPC主分类 = “G06F 1/00” → IPC大类 = “G06”,IPC小类 = “G06F”
接下来,我们检查并处理 IPC 分类为 NA 的观测值:
# 检查 IPC主分类的 NA 值 |
代码解读:
- IPC 主分类为 NA 的专利无法归入任何技术类别,需要移除
- 根据我们的统计,这部分约占 10.46%
第五部分:计算技术专业化(TSP)
技术专业化的计算分为四个步骤:
5.1 计算每个企业在各技术小类的专利数量
此处代码需下载讲义材料查看~
代码解读:
- 按「股票代码 + IPC小类」分组,统计每家企业每个技术小类的专利数量
- 例如:企业 000001 在 G06F 小类有 10 件专利,在 H04L 小类有 5 件专利
5.2 计算每个企业的专利总数
# 计算每个企业的专利总数 |
代码解读:
- 按「股票代码」分组,统计每家企业 2020 年的专利总数
- 这个总数将用于计算各技术小类的专利占比
5.3 计算各技术小类专利占比
# 计算各技术小类专利占比 |
代码解读:
- 将 tech_small_class 和 firm_total_patents 按「股票代码」内连接
- 计算每个技术小类的专利占比:pij=NiNij
- 例如:企业总专利 100 件,其中 G06F 小类 30 件,则 G06F 的专利占比 = 0.3
5.4 计算变异系数(TSP)
此处代码需下载讲义材料查看~
代码解读:
技术小类数量 = n():统计每家企业有多少个技术小类技术小类占比均值 = mean(专利占比):计算专利占比的均值技术小类占比标准差 = sd(专利占比):计算专利占比的标准差TSP = sd / mean:变异系数 = 标准差 / 均值- 边界情况处理:
第六部分:计算技术多样化(TDI)
技术多样化的计算分为三个步骤:
6.1 计算每个企业在各技术大类的专利数量
# 计算每个企业在各技术大类的专利数量 |
代码解读:
- 按「股票代码 + IPC大类」分组,统计每家企业每个技术大类的专利数量
- 注意:这里用的是 IPC 大类(前 3 位),而不是小类
6.2 计算各技术大类专利占比
# 计算各技术大类专利占比 |
代码解读:
- 与计算 TSP 时类似,这里计算的是各技术大类的专利占比
- 例如:企业总专利 100 件,其中 G06 大类 40 件,H04 大类 30 件,则 G06 的专利占比 = 0.4
6.3 计算 Shannon 熵指数(TDI)
此处代码需下载讲义材料查看~
代码解读:
技术大类数量 = n():统计每家企业有多少个技术大类TDI = -sum(专利占比 * log(专利占比)):计算 Shannon 熵指数- Shannon 熵的性质:
第七部分:合并结果并保存
# 合并 TSP 和 TDI 结果 |
代码解读:
- 将 TSP 和 TDI 两个结果按「股票代码」内连接
- 同时保留每家企业的总专利数
- 按股票代码排序,便于查看
第八部分:结果分析与描述性统计
此处代码需下载讲义材料查看~
计算结果解读(基于 2020 年数据):
| 变量 | 最小值 | 25% 分位数 | 中位数 | 均值 | 75% 分位数 | 最大值 |
|---|---|---|---|---|---|---|
| TSP(技术专业化) | 0.0000 | 0.4283 | 0.7071 | 0.8015 | 1.0700 | 2.8284 |
| TDI(技术多样化) | 0.0000 | 0.5623 | 1.1342 | 1.1234 | 1.5276 | 2.0794 |
| 总专利数 | 1 | 3 | 8 | 47.1 | 28 | 5,832 |
- TSP 中位数为 0.707,均值为 0.802,说明多数企业的技术布局有一定专业化倾向。
- TDI 中位数为 1.134,均值为 1.123,说明多数企业的技术多样化程度处于中等水平。
第九部分:保存结果
# 保存结果 |
代码解读:
- 使用 data.table::fwrite() 快速写入 CSV 文件
- 指定 encoding = “UTF-8”,确保中文字符正确保存
点击这里跳转到 RStata 短书平台获取附件:名师讲堂|使用 R 语言测算上市公司技术专业化与技术多样化
评论