做宏观经济和银行信贷研究的同学,应该都有过那种为了凑数据翻遍各家银行年报的煎熬经历。尤其是贷款结构这一块,每家银行披露口径不一样,统计维度五花八门,有的按行业分,有的按期限分,有的按担保方式分,想横向比较简直是噩梦。我最早做信贷周期课题的时候,光是把几家大行的贷款数据从年报里手工抠出来、对齐、补缺,就整整花了两周,还担心漏掉重要字段。后来接触到CnOpenData的中国全部银行贷款结构数据,整个处理效率和结论的可靠性完全不一样了。
这篇帖子就把这套数据的使用心得掰开揉碎讲一讲:里面到底有什么字段、适合拿来做什么研究、拿到手之后怎么清洗才不会被坑、以及几个真实可复用的实证切入角度。无论你是刚入门的经济学研究生,还是做银行风控、区域金融研究的从业者,这篇内容应该都能帮你省下几周的低效劳动。
1. 拆开看这份数据:字段组成与覆盖范围
先说结论:这套数据库的核心价值,在于把“中国全部银行”的贷款资产,从多个结构维度做了系统性的结构化整理。它不是一个简单的汇总表,而是一套可以按银行、按时间、按行业、按担保方式等维度自由切片的底层数据,能支撑从宏观到微观的不少研究问题。
1.1 数据集里到底装了什么
从使用经验来看,这套数据覆盖的银行范围很广,基本包含了我国各类银行业金融机构:大型国有商业银行、全国性股份制银行、城市商业银行、农村商业银行、外资银行等。时间跨度上覆盖了较长周期的历史数据,早期部分银行的数据密度会疏一些,越靠近当下的年份,披露越完整、字段越齐。
我自己拿到数据后,第一步是把所有字段拉出来过了一遍。常见的核心字段可以分成这么几类:
| 字段大类 | 具体示例 | 有什么用 |
|---|---|---|
| 标识类 | 银行名称、银行代码、所属省份/城市、银行类型 | 做面板数据的基础键 |
| 规模类 | 总资产、贷款总额、存款总额 | 给贷款结构做“分母”,算占比 |
| 期限结构 | 短期贷款、中长期贷款、票据贴现 | 观察银行资产负债期限错配 |
| 担保方式 | 信用贷款、保证贷款、抵押贷款、质押贷款 | 判断银行风险偏好与抵押依赖度 |
| 行业投向 | 制造业、房地产、基建、批发零售、农林牧渔等 | 跟踪信贷资金的行业流向 |
| 客户类型 | 公司贷款、个人贷款、普惠小微贷款 | 分析零售银行转型、小微融资 |
| 资产质量 | 不良贷款余额、不良率、五级分类各档规模 | 衡量信贷风险承担 |
| 利率类 | 新发放贷款利率、LPR加减点情况 | 研究利率传导、息差变化 |
这里有一个很容易被忽略的价值点:很多数据商只给“贷款总额”这种粗粒度字段,但贷款结构数据的意义恰恰不在于总量,而在于“拆开看”之后的结构变化。比如同样是10万亿的贷款余额,十年前可能50%是制造业和基建,现在可能很大比例流向了个人按揭和新能源产业,这种结构信息才是研究经济转型的抓手。
1.2 数据是以什么层级组织的
这套数据不是零散的excel表格,而是以“银行—时间—贷款品种”为基本维度,形成了一种长表结构。每一条记录基本上可以理解为某家银行在某个时间点、某一贷款分类下的余额或增量。
实际使用中,这带来了几个好处:
- 可以拼出任意一家银行在某一年度的完整贷款全景,只要按维度进行汇总。
- 可以在不同银行之间做横截面比较,比如同一年度国有大行和城商行的担保结构差异。
- 可以纵向拉出同一家银行多年期的序列数据,用来做事件研究或面板回归。
我习惯在导入数据后先做一次维度探索,确认时间维度和银行代码的唯一性。以我之前的处理经验,只要把“银行-年份”这个组合键去重检查一遍,就能快速判断数据是不是长表结构,以及有没有重复记录。
1.3 覆盖完整度怎么看
任何数据库都有覆盖边界,这套数据也不是每个银行每个年度都完美无缺。早期年份部分中小银行的数据可能是缺失的,有些银行只披露了合并报表贷款总额,没有细分行业投向;个别年份可能有字段为空或异常值。
所以拿到数据后,第一步不是直接跑回归,而是做覆盖度摸底。我通常的做法是:先画一个“银行×年份”的非空矩阵,看看哪些单元格是实心的、哪些是空心的,然后在论文的数据描述部分把这个矩阵的样子交代清楚。这不仅是为了自己心里有数,审稿人问到样本选择的代表性问题时,这张矩阵图就是最好的回应。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 为什么说“结构”比“总量”更能说明问题
研究银行贷款,如果只看总量,很多关键信号都会被淹没。举一个最直观的例子:两个省份的贷款总额增速可能完全一样,但一个省份的增量主要流向了按揭房贷,另一个省份的增量主要流向了先进制造业和高新技术企业,这两个省份未来三到五年的经济走势大概率会分化。能捕捉到这种分化的,恰恰是贷款结构数据。
2.1 从总量研究到结构研究的方法论迁移
早期关于信贷与经济增长的实证文献,用的多是“贷款余额/GDP”这种总量指标。但总量指标有个固有缺陷:它把“谁借了钱、钱去了哪、以什么方式借的”全部抽象掉了。近十年来,越来越多的顶刊文献开始使用信贷结构数据进行细粒度研究。原因很简单:经济政策(尤其是结构性货币政策)的作用机制,本质上就是改变信贷配置的结构,而不是简单地放大或收缩总量。
举个例子。央行推行定向降准政策时,总量上可能看不出明显的信贷扩张,但结构上“普惠小微贷款余额占比”显著上升。如果只用总量指标做评估,很容易得出“政策无效”的错误结论;而用贷款结构数据按客户类型或贷款额度切一刀,政策效果就清清楚楚了。
2.2 期限结构、担保结构、行业结构各自解释什么
这套数据里最常用的三个结构维度,我分别说一下解读逻辑。
期限结构反映的是银行体系的资金供给耐心。中长期贷款占比高,说明银行愿意把资金锁定在投资周期长的项目上,这通常是基建投资、制造业产能扩张的先行指标。短期贷款占比高,则说明资金更多用于流动性周转,企业经营预期可能偏谨慎。把“短期贷款/中长期贷款”做成一个比率,再对比宏观经济景气度,能发现非常稳定的领先关系。
担保结构直接反映银行的风险偏好。信用贷款的占比高,说明银行愿意在没有抵押物的情况下放款,一般意味着银行对经济前景乐观、风控标准适度放宽;抵押贷款占比高则相反,说明银行更看重资产保全,风险偏好收缩。观察这个维度的时间序列,能捕捉到银行体系整体风险偏好的周期波动。
行业投向结构则是理解产业政策传导的重要窗口。可以观察制造业贷款占比与基建贷款占比的相对变化,判断信贷资源是否在向政策引导的领域倾斜;也可以关注房地产贷款占比的升降,衡量一个地区的经济对土地财政和不动产的依赖程度。这套数据把行业分类做得比较细,不需要自己去翻各家银行财报手工分类,省了很多功夫。
2.3 银行类型差异里隐藏的信息
不同类型的银行,它们的贷款结构差异本身就是有价值的研究对象。国有大行的贷款结构中,基建和大型央企国企项目占比天然偏高;城商行农商行的贷款更多投向本地中小微企业和个人客户。这种差异不是随机的,而是由银行的公司治理、资金来源、监管约束共同塑造的。
用这套数据对比不同银行类型的结构特征,可以延展出来的问题包括:不同类型银行对货币政策冲击的响应差异、系统重要性银行在信贷周期中的稳定器作用、中小银行的风险偏好是否更顺周期等等。数据层面,只需要用银行类型字段对样本做分组,所有问题都可以落地。
3. 拿到数据后的第一道工序:清洗、对齐与补全
这部分是整个使用流程中最容易被低估的环节。很多同学下载数据后直接跑回归,跑出来的结果异常显著,后来发现是因为没有对齐口径,或者没有处理重复记录。这里分享一套我自己验证过的处理流程。
3.1 口径统一是第一关
银行报表中有些字段看着名字一样,实际定义并不相同。比如“贷款总额”在不同历史时期、不同银行报表中有“含贴现”和“不含贴现”的差别;“不良贷款”在旧口径下可能只包括“一逾两呆”,新口径则是“五级分类”的后三类。如果直接把不同口径的数据拼在一起做时间序列,会在某一年出现人为的“断崖”或“跳升”,这个假象会被误读成信贷质量变化。
处理这个问题的思路是:优先使用监管统计口径一致的数据版本。如果同一家银行在不同年份出现了口径切换,在数据清洗时加一列“口径版本”标识,并在实证分析中作为控制变量或进行稳健性检验。最忌讳的是把不同口径的数值混在一个序列里,还不做任何标记。
3.2 缺失值与异常值的处理原则
这套数据在个别银行、个别年份存在缺失值,处理原则要根据研究问题来定:
- 如果研究的是宏观层面(比如全国贷款行业投向的总量变化),优先使用非缺失样本做加总,并计算当年覆盖银行数量作为权重参考。
- 如果研究的是银行层面(比如哪些因素影响银行的小微贷款占比),需要删除关键变量缺失的观测,但要检查删除是否引入了样本选择偏差。可以做一个“有缺失组”和“无缺失组”的均值对比,如果两组在总资产、ROA等维度上差异很大,说明样本缺失不是随机的。
- 异常值方面,建议对每个连续变量做1%和99%分位的缩尾处理,但要注意:如果不良率这种天生在0到5%之间波动的变量也做缩尾,会损失有效变异,应根据变量分布特征区分对待。
3.3 一套可复用的处理流程参考
以我实际处理这套数据的经验,推荐以下流程:
- 导入数据后,先检查重复记录:按“银行代码+年份+贷款分类”去重,如果出现重复,比对数值,保留校验后正确的一条。
- 建立银行信息表:把银行名称、银行类型、所在省份统一标准化编码,方便后续合并其他数据库。
- 用“非空矩阵”梳理覆盖情况:整理出哪些银行、哪些年份、哪些字段是完整的,写成数据附录。
- 关键财务变量做同比或环比的合理性检查:比如某银行贷款总额单年增长超过50%又没说明并表收购,就要标记出来单独核验。
- 数据标准化:把贷款余额统一换算成亿元、把占比类变量统一换算成百分比,减少后续编程时的单位错误。
做完了这五步,数据才能真正进入研究环节。整个过程第一次做可能花两三天,但值得,因为大部分实证结果的“翻车”都发生在这一环节。
4. 从数据到结论:三个真实可落地的研究切入角度
数据工具本身不是目的,能回答有意义的问题才是。基于这套贷款结构数据的字段特点,结合我自己和同行们的实践,这里给出三个经过了实际数据验证的研究切入角度,供参考。
4.1 宏观视角:构建区域信贷结构指数
如果你关心区域经济差异,可以基于这套数据构建一个“区域信贷结构指数”。具体做法是:按省份加总各家银行的贷款数据,然后计算制造业贷款占比、中长期贷款占比、信用贷款占比三个指标的标准化得分,再用等权重或主成分分析法合成一个综合指数。
这个指数能回答的问题是:哪些省份的信贷结构在往“长期、信用、制造”的方向优化,哪些省份的信贷结构还在依赖“短期、抵押、地产”。把指数和区域GDP增速、全要素生产率做面板回归,可以验证信贷结构优化对经济增长的边际贡献。
用这套数据做这个指数的优势在于:不需要自己手工收集各家银行的年报,数据覆盖的银行足够全,加总后能代表该省份整体的信贷投放情况,而不是只反映上市银行的情况。
4.2 行业视角:跟踪房地产贷款集中度
房地产贷款集中度是近些年金融监管的核心指标之一,但监管披露的往往只有总量口径。用这套数据的行业投向字段,可以自己计算出更细颗粒度的指标:比如分银行的房地产贷款占比、分省份的房地产贷款增量变化、按揭贷款在公司贷款和个人贷款中的分布。
可以做的一个实证设计:利用2020年底房地产贷款集中度管理制度出台这个政策节点,用双重差分法或者断点回归,研究监管约束对银行信贷结构转型的影响。处理组是超标银行,对照组是未超标银行,被解释变量可以用制造业贷款占比、绿色信贷占比等数据来度量。类似的研究思路放在贷款结构数据上,是完全可落地的。
4.3 微观视角:担保结构变化作为风险偏好的代理变量
银行的风险偏好不太容易直接度量,但担保结构从侧面给出了很干净的代理信息。当银行在经济下行期收紧风控时,新增贷款中信用贷款的占比通常会下降、抵押质押贷款占比上升。反过来,如果信用贷款占比开始回升,往往意味着银行对未来的预期在改善。
你可以用这套数据,计算每家银行每年的“信用贷款占比”,把它作为银行风险偏好的代理变量,研究它和不良贷款率、贷款拨备之间的关系;也可以尝试研究地区经济不确定性对银行风险偏好的影响,然后用工具变量法处理内生性。这个视角的好处是:担保结构字段在这套数据里覆盖率较高,早期年份也有记录,比较适合拉长时间窗口做周期研究。
5. 使用这套数据最容易踩的几个坑
数据质量再好的数据库,使用不当也会踩坑。这些坑有些是数据本身的特性,有些是使用者容易忽略的细节。我把自己和朋友们踩过的坑整理了一遍,给你提个醒。
5.1 银行并表范围不同导致的数值落差
银行年报里的各项数据,有“集团口径”(母公司并表子公司)和“本行口径”(银行法人本身)两种形式。不同银行在披露时选用的口径不完全一致,有时候同一家银行在不同年份也会切换口径。如果混用两种口径做面板数据,就会出现某一年贷款余额突然跳升然后又跳回的情况,而这个跳升很可能只是并表范围调整,与真实信贷投放无关。
处理建议:在清洗阶段就固定选择一种口径。如果数据源已经混合了两种,至少要把“本行/集团”这个标识纳入模型控制。我曾经因为没注意这个细节,把一个城商行的存款规模做错了两年数据,差了好几十亿,被导师一眼看出来了。
5.2 银行更名与改制带来的连续性中断
过去二十年中国银行业经历了一轮剧烈的改革重组,大量城市信用社改制为城商行、农商行,有些银行被并购整合,有些银行更名后代码变更。做面板数据时,如果按银行名称直接关联,会把同一家银行因为更名而识别成两家银行,导致数据断链。
建议处理方式:先建立银行机构代码对照表,把更名、改制、合并的历史沿革梳理清楚。CnOpenData的银行标识字段一般能追溯到更名前的机构信息,但使用者仍然需要自行核对连续性。这个步骤不做,后面做固定效应模型时会出现大量“空窗”观测。
5.3 统计口径调整的“隐形断层”
还有一些坑更难察觉。比如2019年商业银行的LPR改革后,部分银行的利率类指标统计口径发生了调整;再比如普惠小微贷款的统计标准在2018年前后有过明确界定,早年的“小额贷款”并不等于现在的“普惠小微贷款”。如果不了解这些业务口径的演变,直接用年度变更做同比分析,结论很容易失真。
我在做普惠金融研究时,就遇到了早期“小微贷款”口径和现在“普惠小微贷款”口径不可比的问题。最后的处理办法是:把那几年的数据单独标记出来,只做截面比较,不做时间纵向比较,并且在论文里明确说明口径差异的边界。
5.4 行业分类标准的历史变迁
贷款行业投向的分类标准在不同年份也有调整。早年多用的是《国民经济行业分类》旧版标准,类别名称和划分边界与现行标准存在差异。如果做行业投向的长序列分析,一定要先确认各年份的分类标准是否一致。
如果出现标准不一致的情况,有几个变通方法:一是将新旧标准映射到更高层级的行业门类,因为大类在历次标准修订中相对稳定;二是把样本期间内行业分类变化显著的银行剔除,做稳健性检验;三是用细分行业汇总到“制造业”“基建”“房地产”“消费”这种自定义大类,虽然损失了一些颗粒度,但保证了口径统一。
5.5 记住一个原则:描述统计优先于实证模型
这一点不针对任何数据产品,是所有微观数据库使用者的共性问题。拿到数据后,先输出一套完整的描述统计表:样本量、均值、中位数、标准差、缺失比例。然后画几组核心变量的时间趋势图和分布直方图。只有做完这些,你才知道后续建模的合理边界在哪里。
有一次我拿到一份贷款数据,第一反应是直接跑双向固定效应模型,结果主效应符号完全反直觉。后来做了描述统计才发现,是因为某一年有大量银行同时进入样本,导致面板结构极其不平衡。如果不做描述统计,这个由数据结构引起的假象可能会被当成真实经济现象去解释,后果很严重。
从我个人的经验来说,这套中国银行贷款结构数据已经是同类产品里做得相当完整的了。但数据产品永远只是工具,最终的研究质量还是取决于使用者对银行业务逻辑的理解和对数据细节的敬畏。把基础的数据清洗工作做到位,把口径差异搞清楚,这套数据能支撑的研究范围其实远比你最初设想的要宽。
