
简介一套面向行业研究者的数据要素市场化水平测算资料整合2000—2024年三种主流测算方法基于地方数据交易平台、互联网普及率及软件业务销售收入。资料以Excel数据表为核心涵盖地级市互联网普及率、数据交易平台DID及中国地区数据要素化水平等多个面板数据集可直接用于区域对比、动态趋势与政策效应分析。压缩包共13个文件其中3个xlsx为可编辑数据表4个pdf为徐晔、周杰琦等代表性文献2个html保留原始数据来源另有使用说明txt与示意图便于快速理解字段口径与引用出处。整体包体约9.1MB结构清晰已有35人学习。获取后可省去手动搜集与整理数据的环节获得可直接导入Stata或Excel的标准数据格式并配套参考文献与来源链接适合撰写论文、行业报告或开展数字经济相关课题时使用。1. 数据要素市场化水平测算别一上来就套指数公式“数据要素市场化水平”这个指标最大的难点不是计算而是定义。2000年的时候市场上还没有“数据交易”这回事到了2024年区域性的数据交易平台已经遍地开花。跨度25年的测算里一个简单的综合指数公式根本覆盖不了两端的差异——前段靠基础设施指标硬撑后段要处理交易额口径混乱的问题。很多团队跑出来的结果和人均GDP排序几乎重合原因就是把“发展水平”和“市场化水平”混为一谈。下面把三种主流测算方法拆开讲包括各自适用什么场景、数据怎么凑、参数怎么定、有哪些踩过的坑。2. 三种测算方法先选问题再选公式2.1 综合指数法把市场化拆成可观测指标综合指数法是当前最常见的做法把“数据要素市场化水平”分解成若干可测变量比如数据产量、交易平台数量、挂牌标的数、政策条款数等然后按某种权重规则合成一个0到100的标准化指数。常见的权重确定方式有熵权法、层次分析法、CRITIC法也有团队用主成分分析法做降维后再合成。它的优势在于可复制、可比适合做面板数据缺点也很明显——指标池选什么、权重怎么定直接决定结果形态同样的数据换两套指标池排序结果可能完全相反。我一般建议把这个方法和后两种区分开来看。综合指数法适合回答“一个地区的数据要素市场化水平处于什么位置、随时间怎么变化”输出的是一个可排名的分数但分数本身没有经济含义不能说“市场化水平提高了5个百分点意味着什么”。实际使用中这个方法最怕的不是权重算法选错而是指标池里混入了与“市场化”无关的发展类指标。比如把数字经济核心产业增加值占比放进去它和GDP高度相关会导致指数和人均GDP排序趋同看起来合理实际上没有增量信息。2.2 增长核算法从生产函数反推要素贡献很多综述把增长核算法列为衡量数据要素市场化水平的第二种路径。严格来说这个方法测的不是“市场化水平”而是“数据要素作为生产要素对经济增长的贡献”。常见思路是把生产函数扩展为包含数据要素投入的形式假设产出由资本、劳动和数据三类要素决定然后用面板数据回归出数据要素的产出弹性或者从全要素生产率中剥离出数据要素的贡献份额。这个方法的输出是弹性系数或贡献率能回答“数据要素对经济增长的贡献有多大”。这个方法对数据质量的要求非常高。资本存量、劳动力、GDP这些基础数据相对好找难的是“数据要素投入”本身怎么度量用数据产量、数据资产价值还是行业信息化投资口径不同估计出来的弹性差异很大。实际回归中资本存量和数据要素投入经常高度相关共线性严重时弹性估计会很不稳定一个参数扰动就能把贡献率从15%拉到40%。所以它更适合做学术研究不适合做常规的指数测算。2.3 交易活跃度与政策文本量化法直接刻画市场化程度第三种方法把“市场化”还原为三个核心问题有没有交易发生、交易活跃度如何、交易规则是否健全。具体指标包括数据交易平台数量、平台挂牌数据产品数量、数据交易合同笔数、数据产权制度条款数、交易规范文件数等。这个方法的优势是紧扣“市场化”本身不像综合指数法那样容易跑偏缺点是时间序列天然很短2014年之前几乎没有可观测的交易基础设施硬拉长序列只会得到一堆零值。实际项目中我通常把第三种方法和第一种方法结合使用早期年份用综合指数法里的“准备度指标”刻画市场化的前置条件2014年之后再用交易端指标刻画真实活跃度。两段数据分别构建子指数再加权合成总指数。这样既保留了长序列的可比性又不会让早期序列因为全是零值而失真。方法回答的问题输出内容数据成本时间序列适配性综合指数法市场化水平有多高0-100指数中可适配2000-2024增长核算法数据要素贡献多大弹性、贡献率高依赖数据要素投入序列交易活跃度法市场有没有在运转交易指标合成值低-中适合2014年以后选型有一个很实际的经验不要因为综合指数法“什么都能算”就通吃。如果研究问题是“数据要素对区域经济到底有没有拉动”那就用增长核算如果问题是“近五年市场活跃度如何变化”交易活跃度法更贴近直觉只有当需要做25年长周期横向比较时才把综合指数法作为主框架并用分段子指数弥补早期数据的不足。3. 2000-2024年指标构建三个阶段、三类数据来源3.1 指标池设计供给端、需求端、制度端怎么选把指标分成三个维度供给端衡量“有多少数据可以进入市场”需求端衡量“市场对数据要素的消化和使用能力”制度端衡量“交易规则和产权机制是否建立”。以省级面板为例常用的指标池如下维度指标名称方向度量内容供给端数据产量估算或网络流量正向数据要素可供交易的总量基础供给端信息化基础设施指数正向数据流通的物理条件需求端数字经济核心产业增加值占比正向数据要素的使用密度需求端数据要素相关企业数量正向市场参与主体的规模制度端数据交易平台数量正向市场基础设施的完善程度制度端数据产权登记制度条款数正向产权界定规则是否建立制度端数据交易规范文件数正向交易规则是否明确结果端数据交易合同笔数正向市场交易的直接刻画交易平台数量、条款数这类指标常见0值在归一化时不能当作缺失值处理。另外注意“数字经济核心产业增加值占比”的坑这个指标2017年以后统计口径才比较统一2000-2016年没有直接数据只能用电子信息产业增加值、软件业务收入等间接指标拼接拼接时一定要在论文或报告里标注口径变化。3.2 用“准备度”指标回填前段序列2000-2013年这段时间数据交易平台还没有形成规模交易笔数基本为零。如果硬把交易指标放进总指数早期样本会全部得到接近零的得分序列看起来像一根贴着地平线的曲线2020年前后陡然拉起视觉上很难看统计上也不好解释。我的做法是区分两段口径2000-2013年用市场化准备度指标包括互联网宽带接入用户数、每百家企业拥有网站数、信息传输软件业从业人数、数据产量估算2014年之后才引入交易平台数和交易笔数。两段口径合成一个指数时需要做衔接处理。常见做法是对准备度指数和活跃度指数分别做极值归一化再按年份权重线性渐变衔接避免在切换年份出现断崖。具体操作分四步把原始数据按三阶段切分准备期、起步期、加速期。各阶段先分别做归一化再合成阶段子指数。在重叠窗口内对两个子指数做线性渐变加权例如2012-2015年期间准备度指数权重从1线性降到0.4活跃度指数从0抬升到0.6。记录衔接窗口的参数后续换数据时保持同样参数。渐变衔接的窗口长度取决于数据波动情况切换前趋势平稳时3年窗口足够如果切换前序列本身在剧烈波动窗口拉长到5年更稳妥。3.3 数据来源与口径对照统计年鉴、行业报告与公开指数综合指数法的数据来源我一般按优先级排序官方统计年鉴优先行业报告其次公开指数作为补缺参考。官方统计年鉴的问题在于“数据要素”相关指标出现得很晚早期只能用信息化、通信产业指标替代行业报告覆盖交易平台数据相对及时但各家口径差异极大同一个交易平台在不同报告里的成交额可能差一倍。公开的要素交易指数可以作参考但不要直接拿别人的总指数来拼自己的指标体系因为底层定义和权重结构不一样拼出来的结果解释不清。另一个要特别留意的数据问题是行政区划调整。25年跨度内部分地区经历过撤地设市、新区划入等调整统计范围一变指标序列就会跳变。遇到这种情况我一般选择按调整后的新口径回算早期数据实在回算不了就保留旧口径并在报告里标注区间。宁可样本少了两个地区也不要让口径混乱污染整个指数序列。4. 熵权法落地Python实现与三个必调参数4.1 数据预处理方向化、归一化与缺失值插补用熵权法之前先把数据整理成面板格式每行是一个地区在某年的观测第一列是地区代码第二列是年份后续是各指标。拿到数据后先做三件事方向化、归一化、缺失值处理。方向化是为了让所有指标统一成“越大越好”负向指标可以取倒数或者取负归一化用min-max法映射到[0.0001, 1]区间这个下限很重要因为后续要算对数0没法取对数。缺失值处理上短面板推荐线性插值中长期序列推荐先按地区分组再插值。注意不要直接用全局均值填充那会把地区差异抹平。下面给出一段预处理代码import pandas as pd import numpy as np df pd.read_csv(data_indicators_2000_2024.csv, encodingutf-8-sig) # 期望列region, year, 以及各指标列 # 方向化负向指标取负正向指标不动 # 比如“数据交易纠纷率”(dispute_rate) 是负向指标 neg_indicator [dispute_rate] for col in neg_indicator: df[col] -df[col] # 按地区分组做线性插值避免全局均值填充 df df.sort_values([region, year]) for col in df.columns[2:]: df[col] df.groupby(region)[col].transform( lambda s: s.interpolate(limit_directionboth) ) # min-max 归一化到 [0.0001, 1] def minmax_norm(s): s_min, s_max s.min(), s.max() return (s - s_min) / (s_max - s_min) * 0.9999 0.0001 for col in df.columns[2:]: df[col] minmax_norm(df[col]) df.to_csv(data_indicators_normalized.csv, indexFalse, encodingutf-8-sig)这段代码里interpolate的limit_directionboth表示序列首尾都允许插值但要注意如果一个地区某个指标在2000-2014年间全部为0插值不会改变它因为插值只填充缺失不改已有值。0值代表“当时确实没有”这是信息而不是缺失。归一化的缩放区间选0.0001到1而不是0到1是为了下一步计算信息熵时避免log(0)报错同时尽量减少零值对熵值的干扰。4.2 熵权计算权重怎么算、合成分数怎么出熵权法的核心逻辑是某个指标的样本差异越大它的信息量越大权重越高如果某个指标几乎不变它对区分各样本没有贡献权重就低。计算三个要素指标占比、信息熵、冗余度最后用冗余度归一化作为权重。def entropy_weight(X): # X: 归一化后的二维数组行样本列指标 n, m X.shape k 1.0 / np.log(n) # 样本占比矩阵 P X / X.sum(axis0, keepdimsTrue) # 信息熵 E -k * (P * np.log(P)).sum(axis0) # 冗余度 D 1 - E # 权重 W D / D.sum() return W, E X df[df.columns[2:]].to_numpy(dtypefloat) W, E entropy_weight(X) print(pd.Series(W, indexdf.columns[2:]).sort_values(ascendingFalse))权重输出之后会看到两类极端情况一是某些指标权重接近0说明它几乎没有区分度可以删除二是个别指标权重超过0.3说明它在样本间的波动过大要检查是不是有极端值没有被处理干净。我个人的容忍上限是0.25超过这个数值就会回头看原始数据是否有异常波动。4.3 固定权重为什么不能逐年单独跑熵权一个很常见的坑是逐年计算熵权每一年的样本单独算一遍权重然后把各年权重加权合成指数。表面上看更“灵活”实际上破坏了指数的时间可比性——某一年交易平台数量突然出现这一年的熵权会把权重向交易指标倾斜指数曲线出现的拐点可能不是真实市场变化而是权重结构变了。正确做法是全面板跑一次权重锁定权重矩阵后再用同一套权重合成每一年指数。# 锁定全期权重 W_fixed, E_full entropy_weight(X) # 用固定权重合成地区-年份指数 def composite_index(X, W): return (X * W).sum(axis1) df[market_index] composite_index(X, W_fixed) # 输出定基指数以2000年全国均值为100 base df.loc[df[year] 2000, market_index].mean() df[index_base100] df[market_index] / base * 100 df[[region, year, market_index, index_base100]].to_csv( market_index_result.csv, indexFalse, encodingutf-8-sig )定基指数输出的好处是把分数转成直观的相对水平100代表全国2000年平均水平140代表比基期抬高40%。如果你的研究需要和GDP增速做对照用index_base100列更方便如果只需要排名和分组直接用market_index也行。这两个参数的取舍取决于研究问题不是越复杂越好。5. 测算中绕不开的5个常见坑与排查方法指标建完、代码跑通之后真正耗时间的是排查结果里的异常。下面这5个问题是我在多个项目里反复遇到的每一条都是先看现象、再找原因、最后给解决方案。排查顺序建议按指标层、权重层、结果层的顺序来先确认指标数值没有口径问题再看权重有没有被稀疏指标绑架最后才检查指数曲线和外部事件的对应关系。5.1 指数结果与人均GDP排序高度重合现象合成的市场化指数排名和地区经济总量排名几乎一一对应。原因指标池里发展类指标占比过高比如数字经济增加值、信息化投资、人均ICT支出这些指标本质上度量经济规模熵权法给它们的权重往往还不低。解决把指标池拆成“发展类”和“市场类”两组分别计算子指数如果总指数仍然和GDP高度相关就把发展类指标的数量上限控制在总指标数的三分之一以内通常市场类指标不少于6个时排序差异才显现出来。5.2 熵权法给0值指标分配异常高权重现象某地早期年份很多指标为0归一化后得到0.0001这类样本在某指标上的占比极低信息熵会被拉高到接近1冗余度趋近0权重看上去合理但反过来如果一个指标只有少数地区有非零值熵值很小权重会异常大。原因二值型或稀疏型指标在熵权框架下天然被赋予极高区分度。解决对稀疏指标单独做一次敏感性分析把该指标从指标池剔除后看排名变化。排名波动超过3名说明它主导了整个指数需要换成连续型指标或调整合成方式。诊断方法是直接打印权重分布凡是非零样本占比低于样本总量10%的指标都要进敏感性名单。5.3 数据交易额三个口径混用导致趋势突变现象某地区交易规模在某年突然暴涨十倍但交易笔数并没有同步增长。原因交易额数据一个用的是挂牌金额一个用的是合同金额口径一变序列就跳变。解决固定使用同一口径且优先选择“实际交割额”或“合同金额”如果只能拿到混合口径就增加年份虚拟变量回归检验确认跳变不是政策冲击而是口径问题。更稳妥的做法是直接使用交易合同笔数替代交易额笔数口径不容易被造出虚假“暴涨”。判断口径是否混用的一个技巧是计算交易额与交易笔数的比值正常区间内应该相对平稳突变点往往就是口径切换点。5.4 政策文本量化结果与常识相悖现象某省出台了大量的数据政策文件政策端得分很高但交易活跃度全国倒数。原因量化时数的是文件数量不是规则条款数量。一个“行动计划”里有大段目标描述也能算一条但它并不建立交易规则。解决用关键词规则或人工审核抽取出产权登记、交易规范、收益分配、安全管理四类条款再按条款数计分。检索式可以参考产权登记类用“登记”“确权”交易规范类用“挂牌”“交易合同”收益分配类用“收益分配”“定价”安全管理类用“保密”“安全审查”。文件数量只在政策准备度子指数里作为辅助指标使用。5.5 行政区划调整后序列断裂现象某地区指数在某一年出现一次性抬升之后又跌回原水平且周边地区没同步变动。原因区划调整导致统计范围扩大或缩小指标基数变了。解决以最新行政区划为基准回溯调整早期数据无法回溯时对该地区早期序列做增速外推使新口径下的早期值衔接合理。判断是否有区划调整的方法是把该地区指标序列做一阶差分并画图出现单点大跳变而周边地区没有同向变动的十有八九是口径问题。处理之后在报告里加一个“口径调整说明”比让评审专家自己猜要省事得多。6. 结果验证与稳健性让指数经得起追问6.1 用事件节点检验曲线形态指数算出来后第一件事不是看排名而是看曲线在几个标志性时间节点附近有没有对应的走势变化。比如数据交易平台批量设立的年份、数据要素会计处理试点启动前后的年份、以及数据资源入表实践发力的年份指数应该在这些节点附近出现明显的抬升或增速变化。如果曲线在这些节点上毫无反应先怀疑权重结构再怀疑指标池没有覆盖制度端变化。我的经验是一个可信的指数曲线应该在节点前两年开始酝酿上行而不是节点当年突然跳变。6.2 替换权重方法做稳健性排序用熵权法得到主结果后至少要换一种权重方法交叉验证。常见替换方案是AHP主观权重和PCA客观权重。具体做法用相同指标池和归一化数据分别计算三套权重下的地区排名再计算Spearman秩相关系数。相关系数低于0.7时说明排名结果依赖权重选择指数说服力不足高于0.85时可以认为结果对权重设定不敏感给出主结果时附上秩相关系数矩阵会更稳妥。from scipy.stats import spearmanr import itertools # rank_df: 三列权重方法(R1, R2, R3)行是地区 methods [entropy, ahp, pca] for a, b in itertools.combinations(methods, 2): rho, _ spearmanr(rank_df[a], rank_df[b]) print(f{a} vs {b}: Spearman rho {rho:.3f})这里没有给AHP和PCA的具体实现因为AHP的专家打分矩阵和PCA的载荷计算都依赖具体场景。你只需要把自己算出的排名结果放进rank_df跑相关性即可。6.3 一条实用习惯我做这类测算的习惯是先写一个“不能犯”清单再动手取数。清单上只有三条不用未经验证的拼接数据、不让稀疏指标主导权重、每次改动指标池后重跑全部分析而不是只跑主结果。早年我做过一版30多个指标的测算看起来全面实际上一半指标在熵权法里权重趋近于零另一半被两三个强指标绑架最后结果谁都不信。后来砍到12个指标每个指标都能说清楚它对应市场的哪个环节审稿和实务应用都顺利了很多。指标数量不是越多越好能说清机制才是关键。希望帮到你。本文还有配套的精品资源点击获取