3. 账户余额数据解析
在账户余额、利用率与还款行为特征工程中,余额数据是最基础、也最容易被低估的一类原始数据。很多建模人员拿到一张余额表后,第一反应是直接做均值、最大值、当前值等统计,但如果不先厘清余额类型、账户状态、时间维度和数据来源,后续构造出的利用率、还款率、逾期滚动率等特征很可能在业务含义上失真,甚至产生数据泄漏。本节的目标,是建立一套可复用的余额数据解析框架,并给出原始数据质量检查的落地方法。
一、核心原理:余额不是一个数,而是一组带语义的状态量
账户余额在业务上至少包含以下几类语义,它们数值可能相同,但含义完全不同:
- 本金余额:尚未偿还的贷款或信用本金,是计算利用率、剩余期限、利息的基础。
- 账面余额:会计口径下的应还总额,可能包含利息、费用、罚息,通常大于本金余额。
- 可用余额/可用额度:授信额度减去已用额度,反映客户还能动用多少资金。
- 冻结余额:因司法、风控、争议等原因被锁定,不能直接用于消费或提现。
- 最低还款额:信用卡场景中当期必须偿还的下限,是还款行为特征的重要参照。
- 逾期余额:已过还款日仍未偿还的部分,通常与逾期天数、逾期阶段联合使用。
如果只取一个“余额”字段而不区分上述类型,就会出现典型错误:把账面余额当本金余额计算利用率,导致利用率被系统性高估;把冻结余额计入可用余额,导致可用性判断错误。因此,解析余额数据的第一步,是建立字段到业务语义的映射表。
二、方法流程:从原始表到可建模余额特征的六步法
- 字段语义映射:将原始字段名与业务口径一一对应,形成数据字典,标注单位(元/分)、精度、是否含息费。
- 账户状态解析:识别正常、冻结、销户、逾期、核销、展期等状态,并明确状态的时间有效性。
- 时间维度对齐:确定快照日、账单日、还款日、观察点,避免用未来信息构造历史特征。
- 数据来源标记:区分核心系统、账单系统、催收系统、征信报送等来源,评估一致性与延迟。
- 质量检查:执行空值、负值、极值、逻辑冲突、重复、时间倒挂等检查。
- 特征派生:在清洗后的余额基础上计算利用率、还款率、余额趋势、逾期滚动等特征。
下面是一个可复用的质量检查 SQL 片段,用于快速定位余额字段的异常:
-- 余额字段质量概览
SELECT
COUNT(*) AS total_rows,
SUM(CASE WHEN principal_balance IS NULL THEN 1 ELSE 0 END) AS null_cnt,
SUM(CASE WHEN principal_balance < 0 THEN 1 ELSE 0 END) AS negative_cnt,
MIN(principal_balance) AS min_bal,
MAX(principal_balance) AS max_bal,
AVG(principal_balance) AS avg_bal
FROM account_balance_snapshot
WHERE snapshot_date = '2024-06-30';
-- 逻辑冲突:可用余额大于授信额度
SELECT COUNT(*) AS conflict_cnt
FROM account_balance_snapshot
WHERE available_balance > credit_limit
AND snapshot_date = '2024-06-30';
三、案例/场景:信用卡账户余额解析
假设某信用卡账户在 2024-06-30 的快照数据如下:授信额度 50,000 元,本金余额 32,000 元,账面余额 34,500 元,可用余额 18,000 元,冻结余额 0 元,最低还款额 3,450 元,账户状态为“正常”,逾期天数为 0。此时利用率应使用本金余额除以授信额度,即 64%;若误用账面余额,则得到 69%,差异虽小,但在组合层面会放大。若该账户状态为“冻结”,则可用余额虽为 18,000 元,但实际不可用,利用率特征需要结合状态做条件化处理。
再看一个逾期场景:账户状态为“逾期”,逾期余额 5,000 元,逾期天数 45 天,最低还款额 3,450 元。此时还款行为特征应关注“是否偿还最低还款额”“逾期余额变化趋势”“逾期阶段迁移”,而不是简单看总余额。若把逾期余额与正常余额混在一起做均值,会掩盖风险信号。
| 检查项 | 检查目的 | 典型异常 | 处理建议 |
|---|---|---|---|
| 空值率 | 评估字段可用性 | 本金余额空值率 > 5% | 回溯来源系统,确认是否漏采 |
| 负值 | 识别逻辑错误 | 本金余额为负 | 与业务确认是否为溢缴款 |
| 极值 | 发现录入错误 | 余额超过授信额度 10 倍 | 截断或分箱,保留标记 |
| 逻辑冲突 | 校验字段关系 | 可用余额 > 授信额度 | 修正或置空,记录规则 |
| 时间倒挂 | 保证时序正确 | 快照日早于开户日 | 剔除或回退到有效日期 |
| 重复记录 | 避免重复计数 | 同一账户同一快照日多条 | 按主键去重,保留最新 |
四、误区/复盘:余额解析中最容易踩的五个坑
- 把余额当静态值:余额是时点快照,必须绑定快照日,否则时间对齐失败。
- 忽略账户状态:冻结、销户、核销账户的余额含义不同,不能与正常账户混算。
- 混用含息与不含息口径:本金余额与账面余额混用,会系统性影响利用率与还款率。
- 用未来余额构造历史特征:例如用 7 月余额预测 6 月违约,造成数据泄漏。
- 不做来源一致性校验:核心系统与账单系统余额不一致时,未标记来源直接合并。
完成本节解析后,你应当能够回答三个问题:这个余额字段代表什么业务含义?它在什么时间点、什么账户状态下有效?它的原始质量是否足以支撑后续利用率与还款行为特征构造?只有这三个问题都有明确答案,余额数据才真正具备进入特征工程流水线的资格。