贷款建模别光盯营销,所有模型本质都是风险模型?

2026-09-27 11:39:55 作者:admin 阅读数:252673
  文 | 野叔(资深金融从业者)

  在这个系列文章第二篇的开篇,首先回顾一下数据分析报告的“五大结构”:背景分析、主体分析、方案设计、方案实施、复盘优化。第一篇是关于主体分析“五步法”中的第一步“样本设计与标签定义”的介绍(详情参见《业务场景客户数据分析:评分卡法(一)》),第二篇当然是关于第二步“数据预处理”。

  在开篇中,野叔还想特别强调一个总体理念:贷款业务场景不同于存款业务和中间业务等,因为它自带信用风险,所以营销与风控必须一体化。那么从数据分析与建模视角看,最好先理解以下两句话:其一,从数据科学角度看,贷款产品营销分析的每个参数,基本上就是风险参数;其二,贷款业务场景下,不存在纯粹的营销模型,所有模型都是风险模型。

  数据预处理主要的子步骤包括:(1)数据整合与对齐,(2)数据清洗,(3)样本平衡与数据集划分。鉴于第一步分析侧重营销场景的案例,第二步分析就侧重结合风控场景的案例,来谈上述这三个子步骤。

  1 数据整合与对齐数据整合与对齐,主要包括多源数据合并、时间锚点确定、时间切片对齐、数据粒度统一、冲突消解等内容。其中,关键的关键是锚点确定。

  可能有人会问,在第一步中我们不是已经进行了观察点和观察期/表现期的“双期确定”吗,为啥这里还要重复?需要说明的是,第一步中样本设计是“划圈子”,标签定义(含“双期确定”)则是“定尺子”,即按照所确定样本的整体“圈子”,分析与锁定整体的“尺子”。而第二步中,我们需要用这把已经锁定的“尺子”去对每个具体样本个体进行“测量”。而且,在“测量”之前,需要在众多的时点中找到最为重要的那个,即真正的“咬合点”,以防止出现标签错误、特征泄漏、样本偏差等。

  那么,贷款业务场景中涉及风险的关键节点很多,例如贷款的申请日、调查日、审查日、放款日、首支日等,如果只做单一模型一般选用哪一个呢?

  野叔浅见,在贷款业务场景中,若以还款表现为标签,最佳选择是放款日。原因有三:一是放款日是实质性的风险起点,因出钱从此到了别人手上;二是它能够天然地分开观察期的因与表现期的果,防止特征泄漏;三是放款日一般是唯一的,而贷款申请日、审查日等可能有多次而产生多个时点,而且用款日也可能是多个。其中首次动支日只有一个,其与放款日是否重叠、是否全额、是否“留息”等都是反诈的风控特征。

  此外,在第一篇中由于侧重营销场景,所以使用的案例都是6个月的表现期;实际上如果侧重于风控场景,许多模型会将表现期延伸到15个月、甚至20个月。一方面,考虑入门模型的工作量不宜过大;另一方面,考虑实践中违法中介的欺诈风险一般会在第7个月时基本暴露(模拟数据可视化参见附图2,这是一个被中介“玩坏”的案例);所以野叔认为,可以先以放款日为锚点,对M2(逾期30-60天)做7个月的账龄分析(Vintage Analysis)。如果需要强化风控,可以再做一个“M4/15个月”的模型,并进行双模比对。

  2 数据清洗第一,缺失值处理。对于缺失比例过高(如>70%)且非关键字段,可以直接删除。对于数值型或者类别型的随机性缺失,可采用均值(或者中位数、众数)来填充;如果前期有客户细分的,可以使用分组均值(或者中位数、众数)来填充。对于“无征信记录”这种独立类别,需要运用业务规则进行填充。缺失本身有信息量时,新增二值标志;例如,对于应当由客户经理采集但未采集的,如果集中于某个个人,需要对其进行业务能力评估或者异常行为排查。

  第二,异常值处理。可以采用统计法、分位数截断、模型法、分群法进行处理。如果是与事实肯定违背的,例如商户流水为负、经营年限为负、年龄大于100岁等,按照业务规则进行处理。

  这里需要注意商户流水金额的季节性异常,与其经营范围的比对,不要简单视为异常值;例如节假日的餐饮业商户流水,旅游业商户的淡季与旺季流水,农产品批发业商户的季节性价格波动导致流水的波动等等。譬如,西瓜这种时令瓜果的季节性批发价格波动就非常大(详情见附图3),在销量相同时各月的流水会因价格出现较大波动。

  第三,重复值处理。对于同一客户多条记录去重。

  第四,逻辑校验。对于交叉字段进行逻辑校验(如“成立日期>贷款申请日期”);对于日期、金额、地区编码等,进行格式标准化。

  3 样本平衡与划分在小型机构对某类客户进行建模时,总是会遇到这样的问题:你要的样本,既有稀缺性,又有时间性,还有不完整性(只被部分观测到)。因此,我们在数据预处理中先要为防止样本选择偏差而进行“拒绝推断”,后要对正样本与负样本的不平衡进行处理;而为保证信息时间顺序不被随机打乱,始终要进行时间切分。

  第一,拒绝推断。真实样本中只有被批准客户的表现,并没有被拒绝客户的表现;而被拒客户中可能存在会违约的,也可能存在不会违约的。

  所以,你的模型只学到了“批准客户中谁可能好、谁可能坏”,学不到“被拒客户中谁可能好”。这种模型上线后,对于“边缘客户”肯定不利,至少营销作用会减弱。

  简单地说,可以尝试运用增补法(给被拒客户分配“假设表现”)、外推法(用批准样本建模而外推到被拒)、分配法(按评分把被拒客户匹配到相似批准客户)、迭代再分类(反复迭代中逐步推断)等进行模拟。

  当然,入门建模则可以简单粗暴地采用截断法,就是不考虑所有拒绝推断,而在实操中再对被拒的“边缘客户”进行人工筛选。如果要运用拒绝推断,其重点也是关注“边缘客户”;不用考虑已授信但不未用信的客户,不用考虑被反诈规则拒绝的客户。

  第二,时间切分。按照时间顺序,切分训练集、验证集、测试集,分别对应最早时间段、中间时间段、最近时间段,且不能存在交叉,由此保证模型在不同时间窗口的表现相对稳定。

  野叔想提醒的是,县域商户的经营可能具有旺季与淡季的特点,所以在进行切分时要注意各时间段尽量覆盖完整经营周期,避免训练集全是旺季、测试集全是淡季。如果实在不能覆盖,就需要考虑如何解释模型的稳定性。

  第三,不平衡处理。从县域商户贷款场景看,由于数据量有限、类别特征多、时序特征多、可解释性要求高等原因,导致不平衡最常见的情形是“代价敏感学习”,其次是“简单过采样”,而SMOTE、ADASYN、欠采样等相对不常见;因此,入门建模只要考虑“代价敏感”即可(而且只对训练集,不对验证集与测试集)。

  在指导数据分析实践中,野叔研究认为,入门建模一般可以只选择以商户经营年限作为“代价敏感”分析对象(模拟数据的可视化见附图4);如果需要更加精准,则适当考虑将县域或者市域三五个主要行业(24大类中选取)作为类别特征输入模型。同时注意:不改分布特征,只调相对权重(分组设置)。

  野叔的结语总之,第二步“数据预处理”的核心任务是输入多源原始数据,预先处理为可用数据;尽管它同样需要依靠业务逻辑,但更多是依靠数据逻辑。这一步最终的结果是,形成干净的样本集再输出,交给第三步“特征工程”(下篇再谈)。(本文为作者观点,不代表本头条号立场)