☰
数字普惠金融指数2011-2024数据清洗与面板实证分析指南
2026/10/14 6:14:19 网站建设 项目流程

做区域经济研究的朋友,手里大多会备着一套数字普惠金融指数数据。我前两年做城市金融分化分析时,用的就是2011-2024年这个时间窗口的省市级数据集。这几年陆陆续续有同行问数据怎么清洗、怎么用、到底有哪些坑,今天干脆把这套数据的结构、指标逻辑、预处理要点和常见回归模板一次性说清楚,希望对刚开始接触面板数据、或者准备把普惠金融指数纳入实证框架的同学有实际帮助。

这套数据覆盖了全国省级和地级市两个层级,时间从2011年一路到2024年,记录了数字普惠金融发展的年度轨迹。它能用来做什么,简单说就是:横向比较不同区域的金融覆盖差异,纵向观察一个地区金融数字化进程,以及作为核心解释变量纳入各类计量模型。适合三类人:一是写区域经济、金融发展类论文的学生,二是做产业分析和政策评估的从业者,三是对面板数据模型感兴趣但缺一套规范口径数据的研究爱好者。

1. 这个数据集到底解决什么问题

1.1 为什么2011-2024这个时间窗口很重要

2011年差不多是数字普惠金融从零散试点走向规模化的分水岭。那年之后,移动支付、线上借贷、数字保险等业态进入快速增长期,各类研究机构也开始意识到,传统金融统计口径已经很难反映“普惠”的真实进展。所以绝大多数公开发布的数字普惠金融指数都以2011年为基期,这不是随便挑的年份,而是整个指标体系锚定的起点。用2011年做基准,后面每年的指数都反映相对于这一年的累计变化,跨期可比性就有了基础。

到2024年,这个窗口刚好覆盖了完整的经济波动周期,包括几次外部冲击、经济复苏和结构调整阶段。对于做实证的人来说,时间跨度长意味着样本变异度够大,指数在不同年份的起伏能提供足够的识别信息。比如你想看外部冲击对区域金融服务的短期影响,2019年之前和2020年以后的数据对比就能做出分组检验;想看长期趋势,14年长度的面板数据也足够做收敛性分析、动态面板估计这些方法。

1.2 省级和地级市两套口径怎么选

省级数据有31个省级单位的年度记录,适合做宏观层面的比较,比如东中西部差异、区域金融协调度。省级口径的好处是数据完整、缺失极少,基本可以直接拿来跑模型;弱点也很明显,省内城乡差异、城市间差异会被平均掉,很多细致问题看不到。

地级市数据颗粒度更细,一般覆盖全国三百多个地级市,可以用来分析城市层面的金融覆盖和数字化渗透。市域口径能捕捉到的信息量比省级多不少,比如省会城市和普通地级市之间的数字金融鸿沟、城市群内部的梯度效应。但代价是数据整理成本高,行政区划调整、市名变更、统计口径差异这些坑都集中在这一层。

我自己的经验是,如果论文主回归用省级数据,稳健性检验尽量换到市级数据再跑一遍;反过来也一样。两套口径互相对照说服力强很多,审稿人普遍吃这套操作。

2. 数字普惠金融指数的内部逻辑

2.1 总指数背后其实是三个维度

现在的数字普惠金融指数很少是单一指标,主流做法是把整个概念拆成三个可测维度:覆盖广度、使用深度、数字化程度。覆盖广度主要衡量用户能不能触达这些金融服务,典型指标包括账户开立比例、银行卡渗透率、第三方支付覆盖率这类基础渗透项。使用深度衡量的是一旦触达之后,用户到底用得多不多、用得深不深,常见指标包括线上贷款笔数、保险投保密度、投资理财活跃度、二维码支付场景数量等。数字化程度则单独测度服务的便利性和低成本特征,比如移动支付占比、单笔贷款审批速度、利率定价透明度这类指标。

这三个维度不是简单相加,而是有层次:先有覆盖,才能谈使用,数字化程度又在另一个层面反映服务效率。理解了这个逻辑,你在做分维度回归时就不会瞎拆指标,至少能说清楚“覆盖广度和使用深度哪个对经济增长的边际作用更大”这一类的变量组合。

2.2 指标计算原理与基期处理的注意点

指数编制通常先把各基础指标做无量纲化处理,然后通过多层加权合成。加权方法一般是基于层次分析、变异系数或专家评分来定权重,不同版本的指数在权重设置上有差异,但对使用者来说,更重要的是理解指数是一个相对值而不是绝对值。

这句话得多说几句。某省2024年指数是350,不代表当年数字金融绝对水平是350元或者350%,它反映的是相对于2011年基期水平的综合得分变化幅度。所以横向比较时,两个省份指数相差50,并不意味着后者金融服务总量是前者的某个固定倍数;纵向看一个省份指数从200涨到300,意味着综合金融普惠水平比基期提升了一半,但具体哪个维度贡献更大,还得拆看分项。

很多初学者上来就直接把指数取对数跑回归,没问题,但解释系数时要注意:指数本身的绝对量级没有单位,解释力度需要表述为“指数每提升1%,被解释变量变化多少个百分点”,别和增长率混为一谈。

2.3 指数涨跌怎么解读

看趋势数据最直观。大部分地区2011到2019年指数都是持续爬升,斜率比较陡,说明数字金融渗透速度快;2020年之后增速分化明显,有的地方继续增长,有的地方明显降速。这种分化本身就是研究素材。

举个例子,A省的覆盖广度指数持续上升,但使用深度指数增长放缓,说明用户开账户多了,但真正去用贷款、买保险、做投资的转化率没跟上。这类“宽度拉满、深度不足”的结构特征,在金融服务下沉场景里非常普遍。如果你在做课题时发现某个区域的指数增长主要靠数字化程度拉动,而覆盖广度停滞,那结论就应该是:基础设施已经铺完,瓶颈在需求端的有效激活,而不是继续扩网点。

3. 拿到数据后的清洗与预处理

3.1 原始数据结构与字段说明

市面上流通的数据文件通常以CSV或Excel为主,不同版本字段大同小异,核心列就这些:

字段名说明类型示例
行政代码区划代码,省级和市级各不相同110000、440100
地区名称省份或地市名称A省、B市
年份数据对应年份2011-2024
总指数综合得分100-500
覆盖广度分项指标得分80-450
使用深度分项指标得分70-480
数字化程度分项指标得分50-500

有些版本还会附带数字金融覆盖的细分二级指标,比如支付业务指数、保险业务指数、投资业务指数、信贷业务指数,这几个细分项在研究金融子市场时会用得上。

3.2 清洗步骤:从原始表到标准面板

第一步,统一行政代码。行政区划这些年一直在动态调整,撤县设区、地市更名、代码升位都发生过。我的习惯是先只保留统计用区划代码的前几位做层级匹配,省级数据保留前两位,地级市保留前四位,这样即使后期代码被调整过也能通过名称关联回来。

第二步,做长表转换。原始数据常见的是“地区+年份”长格式,但也有不少教程数据是宽表,即每一列代表一个年份。做面板分析前务必转换为长表,pandas里一行melt就能解决。转换完检查一下索引:地区+年份必须是唯一组合,重复了就是合并时出现了笛卡尔积,后面所有回归都会出问题。

第三步,处理缺失值。这种公开发布指数数据基本不会有大面积缺失,但偶尔有个别地级市在个别年份没收录。我的处理优先级是:能通过上下年线性插补就插补,没法插补就直接删除该年记录,尽量不要用均值填充,否则会在模型里人为制造无中生有的变异。

3.3 数据质量检查的三个快速方法

清洗完别急着跑回归,先做三件事:

一是画趋势图。把总指数按年份画折线,每个地区一条线,一眼扫过去如果出现暴涨暴跌、上下震荡不合理的曲线,大概率是数据拼接错误。

二是和外部数据做交叉验证。拿指数里的信贷维度跟当地银行存贷款余额增长率做相关分析,相关系数一般应当在0.5以上;如果完全没关系,说明你用的数据版本可能有口径问题。

三是做描述性统计。看最大值、最小值是否落在合理区间。如果某地某年指数出现100以下或者600以上这种极端值,先别急着丢进模型,查一下原始数据是不是录入错误。

4. 常用实证分析的落地模板

4.1 面板固定效应回归的代码实现

以最常见的研究场景为例:检验数字普惠金融对区域经济增长的影响。基础模型是地区固定效应加年份固定效应,这时候可以写得很简单:

import pandas as pd from linearmodels.panel import PanelOLS df = pd.read_csv('panel_data.csv') df['ln_gdp'] = np.log(df['gdp']) df = df.set_index(['region', 'year']) exog_vars = ['index_total'] exog = df[['index_total']].copy() exog['const'] = 1 model = PanelOLS(df['ln_gdp'], exog, entity_effects=True, time_effects=True) result = model.fit(cov_type='clustered', cluster_entity=True) print(result)

注意几个细节。面板索引必须是两级:地区+年份。固定效应模型里如果只放核心解释变量,容易被质疑遗漏变量,建议至少加入两个控制变量,比如人均固定资产投资增长率和产业结构占比。标准误要按地区聚类调整,不然同一地区不同年份的扰动项相关性会让t值虚高。

4.2 内生性处理与工具变量选择

数字普惠金融指数和经济增长之间容易存在双向因果,金融服务发展带来增长,增长反过来又促进金融渗透。直接OLS估计的系数很可能是有偏的。常用做法是找工具变量。

学界常用的思路包括用地区历史上的金融基础设施数据做IV,或者用地形起伏度、互联网普及率等地理和基础设施变量。如果你手头数据有限,一个能快速落地的方案是使用滞后一期的指数做工具变量,然后用两阶段最小二乘估计。

from linearmodels.iv import IV2SLS df['index_lag'] = df.groupby('region')['index_total'].shift(1) df = df.dropna(subset=['index_lag']) # 内生变量用滞后项做IV iv_formula = 'ln_gdp ~ 1 + controls + [index_total ~ index_lag]' model_iv = IV2SLS.from_formula(iv_formula, df) result_iv = model_iv.fit(cov_type='clustered', cluster_entity=True) print(result_iv)

IV方法最怕弱工具变量,滞后项和当期指数的相关性通常很高,但也不能想当然。跑完后务必看一眼第一阶段F统计量,低于经验阈值就得另想办法。

4.3 分维度和分区域的异质性分析

数字普惠金融的细分维度在不同场景下作用差别很大。我的建议是不要只看总指数,把覆盖广度、使用深度、数字化程度分别放进回归里,做一个“拆解分析”。这样能回答更具体的问题:到底是“开户渗透”在起作用,还是“业务流量”在起作用。

区域异质性方面,可以把样本按城市规模、地理区位分成两组分别回归。比如“东部vs西部”“超大城市vs普通地级市”,分组跑完后用组间系数差异检验判断差距是否统计显著。实操上这个检验可以这样理解:跑一个加入交互项的合并回归,核心解释变量乘以组别虚拟变量,交互项显著就说明组间存在真实差异。

代码上merge之后加一列虚拟变量即可,不需要分别回归再做费舍尔检验,交互项写法更简洁:

df['treat'] = np.where(df['region_group'] == 'high', 1, 0) df['interact'] = df['index_total'] * df['treat'] model_int = PanelOLS(df['ln_gdp'], df[['index_total', 'treat', 'interact', 'const']], entity_effects=True) print(model_int.fit(cov_type='clustered', cluster_entity=True))

4.4 门槛效应与空间溢出的扩展思路

如果研究在区域收敛框架下进行,可以进一步尝试门槛回归,检验数字金融对经济增长的作用是否在某个发展水平上发生结构性变化。STATA里xthreg命令可以直接跑,Python里可以用分段回归或者自举检验近似实现。

做空间面板的话,记得先构建空间权重矩阵,再做莫兰指数检验,确认变量存在空间自相关后,才能用空间杜宾模型。这块代码相对复杂,建议先用GeoDa做探索性空间分析,把思路理清楚再回Python写模型,成功率更高。

5. 常见问题与排查技巧实录

5.1 数据匹配不上、行政区划变更

最让人崩溃的问题往往是市级数据和宏观经济指标合并时出现大量NaN。原因基本都是行政区划代码对不上。我遇到过某地级市在2019年代码变更,同一年之前用旧代码、之后用新代码,left join直接产生近一半缺失。

解决方案是先对年度“地区名称”字段做映射表,把同一城市不同时期的名称统一成最新标准,然后基于统一后的名称做合并,而不是用原始代码直接关联。另外建议保留一份完整的区划代码变更对照表备用,这个是可以长期使用的基础资产。

5.2 指数数值差异大但增速接近

有朋友问,为什么两个省份总指数一个300一个500,但增长速度几乎一样,是不是数据有问题。这不是问题,而是指数的基数效应。指数是相对值,起点高的地区即使每年绝对增量更大,反映成增速也可能被摊平。这时候比增速会掩盖真实差距,应该比绝对增加值,或者做基期标准化之后再比较。

还有一个相关误区:不同年份做横截面排名时,某地区排名上升不代表它绝对发展更快,有可能是其他地区增速放缓导致的被动上升。解读时一定要同时看排名变化和指数增量。

5.3 直接用总指数做门槛回归要不要谨慎

总指数是三个维度加权合成的结果,拿来做门槛回归,门槛值反映的是“加权综合水平”的门槛,而不是某个具体业务维度的门槛。这会带来解释上的模糊:到底是覆盖广度跨越了门槛,还是数字化程度跨越了门槛,说不清楚。

我的建议是先做分维度门槛回归,再回到总指数做综合验证。如果分维度门槛值差异很大,说明总指数门槛的“因果信号”不干净,结论里要留有余地。

5.4 时间范围拼接与基期调整

去年数据发布通常只到最新的年度,如果你手里是老版本数据只到2018年,拿到新数据后别直接拼上去,先确认基期是否一致。有些修订版会对历史年份数据进行再校准,直接用新2019-2024数据和旧2011-2018数据拼出来的面板,会在衔接处出现系统性断点。

最稳妥的办法:直接用更新版的全量历史数据覆盖旧数据,然后用随机抽取几个年份和旧版做相关一致性验证。对我而言,这个步骤虽不起眼,但能省下后面模型诊断阶段大量返工成本。

6. 给使用者的几点实际操作心得

这轮做完,我最想提醒大家的不是指标本身,而是工作流程规范。

第一,拿到数据第一步永远是生成一份“数据说明文档”,包括下载时间、数据版本、字段含义、基期说明、清洗步骤、处理前后样本量变化。哪怕只给自己看,这个文档在三个月后写论文时能救你一命。数据工作里最贵的往往不是获取,而是追查“这条记录为什么变了”。

第二,建议把原始数据一份原样备份,清洗过程中每一轮输出的中间表单独保存,不要在一个文件里反复覆盖。做实证研究时,能随时回退到上一步,比追求代码优雅重要得多。踩过几次坑之后,我基本固定为:01_raw、02_clean、03_panel、04_analysis四个文件夹,全流程都是可追溯的。

第三,做强解释类研究时,数据维度拆解比堆模型技巧更出效果。用覆盖广度和使用深度的分项变化去解释区域差异,比单纯报告总指数系数有说服力,也更接近工作论文的写法。这个习惯我会长期保留。

数字普惠金融这套指数是个少有的好数据集,口径统一、跨期完整、层级分明,省去了大量自己找数据、刷年报的功夫。把前期清洗和模型设计做扎实,几乎所有区域金融相关课题都能从这里找到切入点。以后有新版本数据出来,建议也沿用这套流程处理,收益会随着时间跨度增加越来越大。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询