3. 迁移矩阵构建流程:数据准备、清洗对齐与矩阵填充
迁移矩阵是贷后预警体系的核心量化工具,其构建质量直接决定坏样本归因的准确性。本节将拆解从原始数据到标准化矩阵的完整链路,涵盖数据准备、清洗对齐与矩阵填充三个关键阶段。
3.1 数据准备:客户ID、时间窗口与风险等级
构建迁移矩阵的第一步是确定三个核心数据要素:客户唯一标识、观察时间窗口与风险等级标签。三者缺一不可,且需在业务层面达成一致。
| 数据要素 | 字段示例 | 说明 |
|---|---|---|
| 客户ID | loan_id / cust_id | 唯一标识每个客户或借据,用于跨时间窗口关联 |
| 时间窗口 | t0(期初)、t1(期末) | 定义迁移观察的起止时点,通常为月度或季度 |
| 风险等级 | 正常、关注、次级、可疑、损失 | 五级分类或内部评分等级,需离散化为有序类别 |
实践要点:时间窗口长度应与业务周期匹配。消费信贷通常采用30天窗口,对公业务可能采用90天。窗口过短会导致迁移噪声过大,过长则会掩盖短期风险变化。
数据准备阶段需输出一张宽表,每条记录包含:客户ID、期初风险等级、期末风险等级。以下为示例数据格式:
| cust_id | risk_t0 | risk_t1 |
|---------|---------|---------|
| C001 | 正常 | 正常 |
| C002 | 正常 | 关注 |
| C003 | 关注 | 次级 |
| C004 | 次级 | 损失 |
3.2 数据清洗与对齐
原始数据通常存在缺失、重复、等级不一致等问题,必须经过严格清洗与对齐才能进入矩阵计算。清洗流程分为以下四个步骤:
- 去重与唯一性校验:按客户ID去重,确保每个客户在每个时间窗口内只有一条风险等级记录。若出现多条,取最新或最高风险等级。
- 缺失值处理:期初或期末等级缺失的客户,需根据业务规则进行插补或剔除。通常建议剔除缺失期初等级的样本,避免引入偏误。
- 等级对齐:统一风险等级编码体系。例如将“正常1类”“正常2类”合并为“正常”,确保期初与期末使用同一套分类标准。
- 时间窗口对齐:确保所有客户在期初时点均处于存续状态,且期末时点有明确的等级记录。已结清或核销的客户需单独标记。
常见陷阱:忽略“已结清”客户的迁移处理。若将结清客户直接剔除,会导致迁移矩阵低估“正常→正常”的稳定性。建议将结清视为“正常→正常”或单独设立“结清”状态。
3.3 矩阵填充与归一化
清洗对齐后的数据即可用于填充迁移矩阵。矩阵的行表示期初风险等级,列表示期末风险等级,单元格值为对应迁移的客户数量或占比。
以下为迁移矩阵填充的SVG流程图,展示从原始数据到归一化矩阵的完整路径:
归一化是矩阵构建的关键步骤。通常采用行归一化方式,即每个期初等级对应的迁移数除以该等级期初总客户数,得到迁移概率。归一化后的矩阵每一行之和为1(或100%)。
以下为归一化前后的矩阵对比示例:
| 期初\期末 | 正常 | 关注 | 次级 | 可疑 | 损失 | 期初总数 |
|---|---|---|---|---|---|---|
| 正常 | 850 | 100 | 30 | 15 | 5 | 1000 |
| 关注 | 50 | 200 | 100 | 30 | 20 | 400 |
| 次级 | 10 | 20 | 80 | 50 | 40 | 200 |
归一化后(行百分比):
| 期初\期末 | 正常 | 关注 | 次级 | 可疑 | 损失 |
|---|---|---|---|---|---|
| 正常 | 85.0% | 10.0% | 3.0% | 1.5% | 0.5% |
| 关注 | 12.5% | 50.0% | 25.0% | 7.5% | 5.0% |
| 次级 | 5.0% | 10.0% | 40.0% | 25.0% | 20.0% |
归一化公式: P(i→j) = N(i→j) / Σk N(i→k)
其中 N(i→j) 表示从期初等级 i 迁移到期末等级 j 的客户数,分母为期初等级 i 的总客户数。
其中 N(i→j) 表示从期初等级 i 迁移到期末等级 j 的客户数,分母为期初等级 i 的总客户数。
3.4 矩阵质量校验
矩阵构建完成后,需进行以下三项质量校验,确保数据可用:
- 完整性校验:检查矩阵是否覆盖所有风险等级,是否存在空行或空列。
- 单调性校验:正常情况下,风险等级越高的客户,向更差等级迁移的概率应越大。若出现“正常→损失”概率高于“次级→损失”,需排查数据异常。
- 稳定性校验:对比相邻时间窗口的迁移矩阵,若某等级迁移率波动超过20%,需分析业务或数据原因。