1. 项目概述与研究动机
1.1 为什么我要做一个"包容性指数"
先说个背景。我本身是做金融数据分析的,早几年在整理银行业年报的时候发现一个很尴尬的问题:大家天天喊"普惠金融""金融服务覆盖面扩大",但真要拿数据出来验证的时候,各家口径五花八门,有的说网点数量,有的说开户人数,有的干脆甩一个"服务满意度"这种跟覆盖面八竿子打不着的指标。你想横向比较不同地区的银行服务普及程度,根本没一把统一的尺子。
这个项目最初的出发点很简单:把"银行服务包容性"这个模糊概念变成可量化、可比较、可追溯的数值。做一个指数,把2000年到2021年这22年里,银行服务在一国或一个地区内部的可得性、渗透度和使用活跃度压缩成一个0到100的得分。这样就能回答一系列实际操作中经常遇到的问题:
- 过去20年,银行服务到底是"变多了"还是仅仅是"变大"了?
- 金融数字化对传统物理网点是替代还是补充?
- 不同区域的银行服务差距是在收敛还是拉大?
1.2 这个指数到底解决什么问题
打个比方,银行服务体系就像一座城市的交通网络。网点是公交站,ATM是共享单车,手机银行是地铁。单独看某一条线路很难说城市交通好不好,但如果你统计"每平方公里有几个站""每万人有多少辆车""高峰期多少人能乘上公共交通",这些数字结合起来,就能比较客观地刻画交通便利度。
银行服务包容性指数做的就是这个事。它把分散在年报、监管统计、国际组织数据库里的碎片化指标,按科学方法归一化、加权、合成,最终用一个"数字"告诉你看得见的结论:银行服务是否真的惠及了更多人、更多地区、更多场景。这个指数出来之后,可以直接用于学术研究、区域对比、银行网点布局优化甚至政策评估,应用场景相当宽。
1.3 适合谁来参考这份项目拆解
这份博文适合三类人。第一类是金融研究员、经济学者,想把包容性指数作为论文或课题研究工具;第二类是银行战略规划、网点管理岗位的从业者,想用数据指导渠道布局;第三类是数据分析师、量化研究人员,想学习如何把一个看似宽泛的概念转化为严谨的指标体系。无论你属于哪一类,下面的内容我尽量讲透:从指标体系怎么搭、数据怎么清洗、权重怎么算,到最终结果怎么解读,全程还原我的实操过程。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 指数核心框架:指标维度与数据来源
2.1 银行服务包容性拆成哪四个维度
做指数最忌讳的就是"拍脑袋定指标"。我翻阅了大量国内外文献,参考了IMF的金融包容性指标体系(Financial Access Survey)、世界银行Global Findex数据库的框架,最后把银行服务包容性拆成四个维度:
- 地理可得性(Geographic Accessibility):物理渠道覆盖情况,衡量"银行网点是不是够得着"。核心指标是每十万成年人拥有的银行网点数、每十万成年人拥有的ATM数量。
- 人口渗透度(Demographic Penetration):一个人口群体中有多少比例实际开通了银行账户或持有银行卡,衡量"银行服务是否真正进入普通人的生活"。常用指标是每千成年人存款账户数、贷款账户数、银行卡持卡率。
- 使用活跃度(Usage Activity):账户开通了不等于在真正使用。这个维度要衡量资金的流动活跃程度,比如存款余额占GDP比例、贷款余额占GDP比例,以及账户使用频率类数据。
- 服务可负担性(Affordability):银行服务不能只看有没有,还要看用不用得起。包括账户年费占人均收入比重、最低开户门槛、跨行取款手续费等指标。
这四个维度形成"有渠道、有人用、用得起、用得好"的完整逻辑链,缺一不可。实际构建中你会发现,很多地区网点多但开户率低,或者开户率高但交易活跃度差,单看一个维度很容易得出片面结论,四维模型能有效规避这个问题。
2.2 数据来源:没有数据一切等于零
数据是这个项目的命门。我花了大量时间在数据收集上,最终圈定了以下几个主要来源:
- IMF Financial Access Survey(FAS):这是最核心的数据来源,覆盖全球200多个经济体,包含物理网点、ATM、存款账户、贷款账户等基础数据,时间跨度恰好覆盖2000年至今。FAS的数据更新及时,口径相对统一,是做跨国面板分析的首选。
- World Bank Global Findex数据库:提供具有全国代表性的调查数据,尤其是账户持有率、储蓄行为、借贷行为等信息,且按收入组、性别、教育水平分类,可以做更细颗粒度的研究。不过Global Findex每三年发布一次(2009年之前数据覆盖不足),需要跟其他来源拼接。
- 各国央行年报与监管统计:中国、印度、巴西等国家,央行都会定期发布银行业机构地域分布、账户数量、电子交易规模等统计,很多细节指标FAS没有覆盖,必须靠这个渠道补齐。
- 世界银行World Development Indicators(WDI):用来补充GDP、人均收入、城市化率等宏观控制变量,方便后续做相关性分析。
关于数据采集我有个血泪教训:一定不要等到分析的时候才去查数据规范。FAS的指标代码(比如"Number of commercial bank branches per 100,000 adults"的代码是"FB.CBK.BRCH.P5")必须提前确认,不同年份统计口径偶尔会有修订说明,这些Info字段不仔细看,后续数据合并会出大问题。
2.3 口径统一是隐蔽的大坑
多源数据拼在一起,最疼的不是下载,而是口径对齐。同一项指标在不同的数据源里可能定义不同。比如"银行网点数",FAS统计的是商业银行网点,但各国央行统计里有时把信用社、储蓄银行也算进去。再比如"存款账户数",部分国家统计的是"活跃账户",部分统计的是"所有账户",差距可能翻倍。
我的处理方式是建立一张口径映射表,对每个指标明确标注"统计范围""统计频次""统计方式",在合并前统一换算。宁可损失部分样本,也不混用不同口径的数据。实际操作中我最初贪多,想着把能合并的样本全保留,结果出了几个明显离群的异常值,追查后发现就是口径不一致导致的,白白浪费了三天时间。
3. 指数计算方法与建模实操
3.1 为什么要用极差标准化而不是Z-score
指标量纲不统一是构建指数的第一道坎。银行网点数可能是"每十万人的数量",存贷款余额可能是"占GDP的百分比",账户数可能是"对数形式",这些数值范围相差几个数量级,不标准化根本无法合成。
我用的方法是极差标准化(Min-Max Normalization),公式如下:
$$X' = \frac{X - X_{min}}{X_{max} - X_{min}}$$
计算后所有指标都落在0到1区间,0代表该指标在样本期内的最低水平,1代表最高水平。为什么不选Z-score?因为Z-score保留负值,指数合成后可能出现负数,不利于直观解读;极差标准化是相对位置的线性映射,不会改变指标分布形态,且最终指数天然落在0-100之间,解释起来很友好。
需要注意一个细节:极差标准化里的最大值和最小值应该固定,而不是每年重新计算。如果每年都用当年的最大最小值,那每一年的得分只是"当年相对排名",跨年份不可比,指数的时间趋势就被破坏了。我固定以2000年为基期,计算该年各指标的Min和Max,后续年份统一用同一组基准做标准化,这样2000-2021年的数据趋势就比较干净。
3.2 权重方案:熵权法为什么值得推荐
指标合成必须考虑权重。常见的有三种做法:等权重、主成分分析法、熵权法。我最终选择熵权法作为主方案,原因如下:
等权重最简单,但有一个隐含假设:所有维度对包容性的贡献一样大。实际上,物理网点覆盖在数字化时代的重要性明显下降,仍给与"账户渗透率"相同权重就有些失真。
主成分分析是降维利器,但主成分载荷解释性差,学术界使用尚可,放到实操场景里难以向领导或客户解释"为什么这个指标是负权重"。
熵权法比较平衡。它的核心思想是:信息熵越小,指标变异程度越大,包含的信息量越多,权重越高。通俗点说,一个指标如果大家数据都差不多,它就没啥鉴别力,权重要低;一个指标如果地区间差异巨大,说明它承载了区分信息,权重要高。
熵权法计算步骤(以标准化后的数据为例):
- 计算第j项指标下第i个样本值的比重:$p_{ij} = X'{ij} / \sum^{n} X'_{ij}$
- 计算第j项指标的熵值:$e_j = -k\sum_{i=1}^{n} p_{ij} \ln(p_{ij})$,其中$k = 1/\ln(n)$
- 计算信息熵冗余度:$d_j = 1 - e_j$
- 计算权重:$w_j = d_j / \sum_{j=1}^{m} d_j$
这套方法优点在于完全数据驱动,没有太多人为干预的空间,研究结果更容易经受同行评议。不过它也不是万能的,如果你研究的区域银行业发展水平相近(比如全在同一个省份),指标差异小,熵权法算出来的权重会偏敏感,这种情况我会切换到变异系数法做稳健性检验。
3.3 合成公式与指数分级
权重确定后,指数合成我采用线性加权法:
$$\text{BII} = \sum_{j=1}^{m} w_j \times X'_{ij} \times 100$$
BII就是最终得分,介于0到100之间。对于2000-2021年间的数据,我按年度计算每个经济体的BII。合成后为了方便解读,我把指数划分成四个等级段:
| 指数得分区间 | 等级 | 典型表现 |
|---|---|---|
| 80-100 | 高包容性 | 银行服务渠道完善,账户渗透率高,使用活跃,成本可控 |
| 60-80 | 中高包容性 | 银行服务覆盖面较广,但部分群体或区域仍存在短板 |
| 40-60 | 中等包容性 | 物理渠道和账户渗透处于发展中期,使用活跃度有待提升 |
| 0-40 | 低包容性 | 银行服务覆盖面窄,大量人口缺乏正规金融服务渠道 |
这个分级阈值不是固定的,你可以根据研究对象的整体水平调整。我在做全球对比时,把阈值相对放宽了一些,因为欠发达地区的得分普遍偏低。
3.4 Python实现核心代码
整个计算流程我用Python实现,依赖库主要是pandas、numpy和scipy。下面给出关键环节的代码示例,方便你直接复现。
python复制import pandas as pd
import numpy as np
def minmax_norm(df, base_year=2000):
"""固定基期的极差标准化"""
base = df[df['year'] == base_year]
min_vals = base.min()
max_vals = base.max()
normed = (df - min_vals) / (max_vals - min_vals)
return normed, min_vals, max_vals
def entropy_weight(normed_df):
"""熵权法计算权重"""
n = len(normed_df)
k = 1 / np.log(n)
# 计算p_ij
p = normed_df / normed_df.sum(axis=0)
# 计算熵值
e = -k * (p * np.log(p + 1e-10)).sum(axis=0)
# 计算冗余度
d = 1 - e
# 权重
w = d / d.sum()
return w
# 读取标准化后的指标数据
# df_norm 每行是一个经济体一年度的数据
# 假设指标列名为 indicators
indicators = ['branch_per_100k', 'atm_per_100k',
'deposit_acct_per_1000', 'loan_acct_per_1000',
'deposit_gdp', 'loan_gdp',
'affordability_index']
df_norm, min_v, max_v = minmax_norm(data[indicators + ['year', 'country']], 2000)
w = entropy_weight(df_norm[indicators])
df_norm['BII'] = np.dot(df_norm[indicators], w) * 100
# 输出各指标权重
print(w)
代码量不大,但有两个必须注意的点:一是极差标准化时一定要处理零值(某些欠发达国家早期年份可能是0),否则会出现NaN或无穷大。我给分母加了一个极小量$\epsilon=10^{-10}$(对应代码中用+ 1e-10),防止除零错误。二是熵值计算里p * np.log(p)在p=0的时候会得到"0 * -inf = NaN",同样需要加极小量来处理。
3.5 稳健性检验:指数不是算出来就完了
指数算完之后必须做稳健性检验,否则结论无法服人。我做了三层验证:
- 替代权重法:分别用等权重、变异系数法重新计算指数,观察排名变化。如果排名波动剧烈(皮尔逊相关系数低于0.8),说明权重的选择对结果影响过大,需要回头检查指标选取。
- 剔除极端值:把最大和最小得分的前5%样本剔除后重新计算相关性,检查极端值是否对结论有决定性影响。
- 分维度单独分析:不只看总指数,还把四个维度分别做趋势图,确认总指数的变化不是某一两个指标单独驱动。
我实测的结果是,三种权重方案得到的指数相关系数都在0.9以上,说明这套指标体系整体稳定性不错。反而是维度之间出现了"剪刀差"——物理网点类指标增速放缓,数字化使用类指标快速上升,这个是后话。
4. 2000-2021年趋势解读:数据告诉我的几件事
4.1 整体趋势:22年从"有没有"走向"好不好"
从合成的总指数来看,2000-2021年全球银行服务包容性水平整体呈现上升趋势,平均得分从2000年的42分左右提升到2021年的68分上下,涨幅超过60%。但增长不是线性的,大致分三个阶段:
- 2000-2007年:缓慢爬坡期。这个阶段经济增长强劲,物理网点扩张为主旋律,每十万成年人网点数从平均12个左右增加到18个,指数年均增长约1.2个百分点。
- 2008-2013年:震荡调整期。危机后部分金融机构收缩网点、收紧信贷,物理类指标出现停滞甚至回落,指数增长放缓到年均约0.6个百分点。这一阶段的亮点在于部分低收入国家受益于移动银行、代理银行等创新模式,账户渗透率逆势提升。
- 2014-2021年:数字加速期。智能手机和移动支付的普及彻底改变了银行服务触达逻辑。以撒哈拉以南非洲为例,传统网点覆盖率排名靠后,但移动货币账户渗透率上升极快,带动包容性指数明显抬升。
4.2 最明显的结构变化:网点退、数字进
拆开四个维度看,变化最剧烈的是"基础设施形态"——物理网点增速在2015年前后见顶,ATM总量甚至出现阶段性下降,取而代之的是网上银行、手机银行的爆发式增长。这个趋势在发达国家非常明显,部分欧洲国家每十万成年人网点数从高峰期的40多个回落到30个以下。
但有趣的是,物理渠道收缩并没有导致包容性指数下降。原因在于"使用活跃度"维度的权重在熵权法下逐年上升,数字交易的活跃度极大弥补了物理渠道的收缩。这印证了一个判断:数字金融不是银行服务包容性的"替代品",而是"扩展器"。它能触达物理网点无法覆盖的边远地区,同时降低服务边际成本。
4.3 区域差异:差距在收敛,但底部在抬高
从地区对比来看,不同经济体的指数排名在22年里发生了显著变化。东亚地区的进步最明显,人均GDP提升叠加金融基础设施投入加大,指数得分从平均40分出头跃升到75分左右。南亚、东南亚地区依托移动支付实现跨越式发展,得分增速也很快。相比之下,部分资源依赖型经济体的金融包容性改善缓慢,甚至在某些年份出现退步,主要原因是产业结构单一、金融机构盈利能力弱、网点布局缺乏经济性支撑。
全球指数的极差(最大值减去最小值)在缩小,但基尼系数仍处于较高水平。换句话说,头部和尾部的绝对差距略有收窄,中等收入国家的内部差异依然显著。这个结论对政策制定者或银行业战略部门有一定参考意义:传统的"撒胡椒面"式均匀布局已经过时,需要更有针对性的数字化渠道下沉策略。
4.4 中国样本:2000年起点低,22年实现跨越
单独看中国样本,2000年时银行服务包容性指数得分大约在35分,低于全球平均水平,主要受限于网点数量少、账户渗透率低。此后伴随国有银行改革、农信社改制、支付体系现代化,指数一路攀升,2010年前后超过全球平均线,到2021年已经稳定在80分以上的"高包容性"区间。
中国数据最值得关注的是两条曲线的交叉:物理网点数量在2008年之前快速增加,2010年之后增速放缓,而手机银行、数字支付用户数的增长曲线呈指数形态。到2021年,全国银行业金融机构网点总数维持在22万个左右,但网上银行、手机银行交易金额持续扩大。这个"双轨并行"格局在其他国家很少见,也说明中国金融基础设施建设走了一条"物理先行、数字接力"的路。
5. 实操心得:数据清洗、细节验证与可视化技巧
5.1 数据清洗最容易翻车的地方
数据清洗我前后花了接近三分之一的项目时间。最容易翻车的是这三点,这里重点提醒:
第一,国家编码不统一。FAS用的是IMF经济体代码,WDI用世界银行代码,各国央行年报直接用国家名称,三套体系不一致。我建议开一个手工映射表,把ISO 3166-1 alpha-3代码作为主键,所有数据源统一转换到这个体系,最后按主键合并。
第二,缺失值的处理策略。面板数据必然有缺失,我采取的方法是:对单一经济体的短期缺失(连续缺失少于等于2年)用线性插值;长期缺失不填补,直接保留为NaN,后续计算时用"可用样本均值替代+样本量加权"的方式降低偏差。不建议用多重插补,因为它把不确定性引入了指数本身,解释起来非常麻烦。
第三,异常值必须人工复核。2010年马达加斯加的ATM每十万人数量出现一个接近100的极端值,跟前后年份相差一个数量级。查原始数据后发现是当年统计口径从"全部ATM"变成了"仅商业银行ATM",数值反而应该更小。像这种异常,程序标出来后,必须查原始报表确认才做处理,不能直接删。
5.2 指数解读的几个技巧
指数算出来后,可视化是另一个重点。我做趋势图有几个习惯:
- 分位数带图(quantile band plot):把各经济体按指数得分分为四分位组,每年画第25、50、75分位数线,中间填充色带。这样一眼就能看出"整体上升但底部滞后"的格局。
- 四维蛛网图(radar chart):选几个典型国家或典型年份,把四个维度标准化后的得分画成雷达图,直观对比维度优劣势。我常用然绕图来补充说明,维度间此消彼长的关系一目了然。
- 空间分布热力图:如果不做跨国分析,只做国内省份对比,热力图是最合适的展示方式。颜色越深代表包容性越高,能非常直观地展示"东中西部梯度递减"格局。
另外建议做动态轨迹图,也就是把每个经济体在"地理可得性—使用活跃度"二维平面上的位置随年份变化画出来。这组图可以直接验证物理渠道与数字渠道之间的替代或互补关系,对判断未来趋势很有价值。
5.3 完整的分析流程回顾
整个项目的操作流程,概括下来是六步,我已经固化成自己的标准模板:
- 确定研究对象和时间范围:明确是跨国面板还是国内省际面板,时间刻度是年度还是季度。
- 建立理论框架:确定维度和候选指标,先画逻辑图,再定公式。
- 整理数据:数据采集、编码统一、口径核对、缺失处理、异常检测。这个环节至少预留一半的项目时间。
- 计算指数:标准化→熵权法→线性加权→分级。每一步的输出都要留存中间结果。
- 稳健性检验:替代权重、极端值剔除、分维度单独分析。
- 结果解读与可视化:趋势分析、区域对比、结构与驱动因素拆解。
这套流程不仅适用于银行服务包容性指数,稍加调整完全可以迁移到其他包罗性指数构建中。比如我最近就在用它做数字支付便利性指数,原理完全一致。
5.4 再分享一个容易被忽视的小技巧
最后再分享一个小技巧。做指数的时候,很多人只关心最终得分,却忽略了标准化基准的稳定性。如果基期选得太异常(比如某年金融危机导致指标暴跌),后续所有年份的分数都会被这个异常基准拉高或压扁,趋势上会出现"虚假的快速上升"。我通常建议做一个基准敏感性检验:分别用2000年、2005年、2010年作基期计算指数,观察时间趋势的方向是否一致。如果方向一致,说明结论是稳健的;如果方向翻转,那就得回头思考指数框架本身是否有问题。
根据我个人经验,基期选择对水平值影响较大(得分绝对量会差5到10分),但对变化趋势影响较小。因此在实际分析中,我一般强调"变化趋势和相对差距",而不是单一绝对得分。这也是在跟业务方沟通时很重要的表述技巧——指数是尺子,不是裁判,它的价值在于测量变化,而不是给谁定性。
6. 后续扩展方向:这个项目能走多远
做这个指数的过程让我不断意识到,银行服务包容性只是一个观察窗口,它的方法论可以辐射到更多领域。后续可以做三类扩展。
第一类是细化颗粒度。把跨国面板下沉到国内省际、地市级面板,甚至基于网点经纬度做地理网格分析。颗粒度越细,越能识别"包容性洼地"的具体位置。比如我曾尝试把国内某省的银行网点坐标数据叠加热力图层,结果发现城乡结合部是明显的服务盲区,这个结论比省级平均数实用得多。
第二类是增加时间动态视角。目前的指数是"年度快照",一个更前沿的方向是构建季度甚至月度指数,结合高频交易数据、移动设备位置数据,可以对银行服务包容性的短期变化做实时监测。这种方式在评估数字金融项目落地效果时尤其有价值。
第三类是与微观数据结合。把宏观指数与家庭微观调查数据(如收入、教育、就业状态)匹配,就可以回答例如"银行服务包容性提升是否真的降低了低收入群体的融资成本"这类更深层的问题。这也是学术界目前比较热门的因果推断方向。
总之,指数从来不是终点,它是从数据到洞察的桥梁。搭建好这座桥,后面能走的路就很宽。
