风控特征—时间滑窗统计特征体系
风控业务背景
俗话说,路遥知马力,日久见人心。在风控中也是如此,我们常从时间维度提取借款人在不同时间点的特征,以此来判断借款人的风险。在实践中,这类特征通常会占到 80% 以上。由于是通过时间切片和聚合统计函数来构造,因此一般被称为时间滑窗统计特征。
本文的主要意义在于:
- 对于需要入门风控建模的同学而言,希望能帮助你快速上手特征工程。
- 对已经有特征工程经验的同学而言,希望能带给你一些风控业务理解。
目录
Part 1. 观察期、观察点及表现期
Part 2. RFM 模型介绍
Part 3. 时间滑窗数量统计类特征
Part 4. 时间滑窗占比统计类特征
Part 5. 时间滑窗趋势统计类特征
Part 6. 时间滑窗稳定性衍生特征
Part 7. 第三方多头借贷变量衍生
Part 8. 总结
Part 1. 观察期、观察点及表现期
理解这三者的概念是风控建模前期样本准备的基础,在此简单介绍。
- 观察点(Observation Point):并非是一个具体的时间点,而是一个时间区间,表示的是客户申请贷款的时间。在该时间段申请的客户可能会是我们用来建模的样本 。(提示:为什么用“可能”这个描述,因为还需剔除一些强规则命中的异常样本,这部分样本将不会加入建模)
- 观察期(Observation Window):用以构造特征 X 的时间窗口。相对于观察点而言,是历史时间。观察期的选择依赖于用户数据的厚薄程度。通常数据越厚,可提取的信息也就越全面、可靠。
- 表现期 (Performance Window):定义好坏标签 Y 的时间窗口。相对于观察点而言,是未来 时间。由于风险需要有一定时间窗才能表现出来,因此信贷风险具有滞后性。表现期的长短可以通过 Vintage 分析和滚动率分析来确定,在此不做展开。
图 1 - 观察期、观察点及表现期
表现期越长,信用风险暴露将越彻底,但意味着观察期离当前将越远,用以提取样本特征的历史数据将越陈旧,建模样本和未来样本的差异也越大。反之,表现期越短,风险还未暴露完全,但好处是能用到更近的样本。
Part 2. RFM 模型介绍
RFM 模型最早是用来衡量客户价值和客户创利能力。理解 RFM 框架的思想是构造统计类特征的基础,其含义为:
- R(Recency):客户最近一次交易消费时间的间隔。R 值越大,表示客户交易发生的日期越久,反之则表示客户交易发生的日期越近。
- F(Frequency):客户在最近一段时间内交易消费的次数。F 值越大,表示客户交易越频繁,反之则表示客户交易不够活跃。
- M(Monetary):客户在最近一段时间内交易消费的金额。M 值越大,表示客户价值越高,反之则表示客户价值越低。
Part 3. 时间滑窗数量统计类特征
对于不同数据源,我们可以统计得到不同内容的 RFM 特征。例如:
- 运营商数据:用户每天的通话记录次数、时长等。
- 信用卡账单或电商交易数据:用户每天的交易笔数、金额等。
- 埋点行为数据:用户每天在某页面的浏览量、点击量等。
- 设备数据:用户每天的登陆、活跃次数。
为了扩展更多的维度,我们常会维护一个分类名单库(或分类指标体系),可参考《信贷风控中的名单库挖掘、使用和维护》。接下来,我们就可以继续细分类目来统计。例如:
- 信用卡交易数据:用户每天在母婴用品、交通出行、餐饮、美容美发等交易笔数、金额。
- 设备 App 数据:用户手机上安装的借贷类、生活类、运动类、音乐类等 App 的数量。
以设备 App 数据为例,我们将统计得到如下数据:
图 2 - 截止下单日,用户每天统计的 App 数量
需要指出的是,我们需要结合业务去分析数据,数据因为业务才具有温度。
🌟敲黑板划重点 1——了解数据采集逻辑
特征是从原始数据中提取的信息,如果数据源采集上就存在问题,那么所构造的特征也必然有问题。
对于一些采集客观、可靠的数据源而言,分析过程就相对简单。例如,如果用户某天没有打电话,那么这天的通话次数为 0,这是因为运营商客观保留了用户的原始数据。这时候,0 的含义就是用户在当天未有通话行为。当然,对于用户借用他人手机打电话这种情况,则不在考虑范围内。
对于依赖于用户登陆、活跃行为才能采集到的数据,就更需要结合采集方式来分析。例如,在设备 App 数据中,如果某天统计得到用户安装的借贷类 App 为 0。这个数字后面可能有哪些原因呢?可能的猜想有:
- 1. 统计函数原理:用户这一天并没有使用手机,导致数据采集上缺失。但 SQL 中 count()函数在统计时会 count(null) = 0,也就是说会将缺失值填充默认值为 0。
- 2. 用户使用行为:用户使用了新安卓手机,数据采集正常,但确实没安装借贷类 App,因此用户维度统计值为 0。或者,用户使用了老安卓手机,但主动卸载了所有借贷类 App。
- 3. 数据采集技术:用户使用了**苹果手机,**由于无法采集到 App 数据,哪怕手机上实际安装了借贷 App,但统计值也为 0。
- 4. 变量构造逻辑:虽然手机上安装了借贷类 App,但并不在你的借贷 App 名单库中,因此匹配数为 0。
那么到底是哪种原因呢?对于这些猜想,我们可以从以下维度加以佐证:
- 用户当天是否活跃?
- 用户使用设备是否出现新的 UMID(设备 ID)?
- 用户使用设备的平台(iOS / Android)?
- 名单库是否很久没有维护?
这也就是需要结合业务经验对多个特征交叉衍生新特征的原因,这种特征具有强业务含义,因此往往能发挥出更好的效果。
🌟敲黑板划重点 2——定义观察期有效性
我们还需考虑观察期的有效性,以及不同用户的数据厚薄程度。
- 本文地址:风控特征—时间滑窗统计特征体系
- 本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出
比如,如果一个用户手机号网龄才 6 个月,那么在统计最近 6 个月、12 个月、24 个月的通话记录次数时,可想而知这几个变量的数值都是一样的。
同理,对于手机号网龄分别是 6 个月的新用户和 6 年的老用户而言,“最近 12 个月的通话记录次数”这种特征是不公平(unfair) 的。两者的数据厚薄程度 不同,新用户的观察期实际上只有 6 个月,而老用户的观察期是 12 个月。
为了区分这种情况,有以下建议:
1. 定义观察期有效性, 在时间滑窗统计时,更需要有意识地留出有效的观察期。
2. 定义分群变量。比如将数据有效期只有 6 个月和 12 个月的用户分成 2 个群体。
Part 4. 时间滑窗占比统计类特征
在得到数量统计类特征后,我们继续衍生占比(ratio)类特征,一方面可用来去除量纲影响,另一方面衡量用户的行为偏好。例如:
最近 N 个月内母婴类消费次数占比 = 最近 N 个月内母婴类消费次数 / 最近 N 个月内消费次数
如果用户在某类消费次数或者金额占比上有明显的倾向,我们就更能掌握用户的消费行为偏好和其他属性。比如,如果用户的母婴类消费支出占比较大,说明用户是有娃一族,风险也就相对更低。
Part 5. 时间滑窗趋势统计类特征
由于一个人的行为是会动态变化的,衡量这种变化趋势对于风险识别也很重要。例如,对于借款人的多头借贷风险,如果多头指标呈现逐步上升的趋势,我们就觉得多头负债风险在上升。借款人往往会采取“拆东墙补西墙”的措施,如果哪一天连东墙都找不到拆,这个击鼓传花的游戏也就 game over。
我们一般计算**斜率(slope)**来衡量这种变化趋势。例如:
多头借贷趋势 =(当月的多头借贷次数 - 上个月的多头借贷次数)/ 上个月的多头借贷次数
Part 6. 时间滑窗稳定性衍生特征
在不同时间点统计的数量特征基础上,我们可以继续衡量用户行为的稳定性。
在数学上,我们通常可以用变异系数(Coefficient of Variation,CV) 来衡量这种数据波动水平。变异系数越小,代表波动越小,稳定性越好。
变异系数的计算公式为:变异系数 C·V =( 标准偏差 SD / 平均值 Mean )× 100%
例如,对于借贷次数,我们可以计算 CV 来衡量借贷行为的稳定性。
另外需要注意的是,对于持续多头借贷的老哥,其实风险并不会很高,因为有持续稳定的借贷渠道。但对于集中性爆发的多头借贷行为,我们就更需要加以关注。这背后的动机,可能是手头突然紧张(比如网赌输钱),可能是破罐子破摔,可能是前期潜伏突然爆发,可能是行业大环境影响。
Part 7. 第三方多头借贷变量衍生
据笔者所知,目前市场上所提供的第三方多头借贷数据通常包含以下变量:
借款人最近 7 天、1 个月、3 个月、6 个月、12 个月、18 个月、24 个月的某类平台借贷次数
某类平台包含:消费金融公司、互联网金融公司、银行信贷、数据风控公司等等。
根据这些原始变量,我们可以按照以上方法论衍生一些新变量。例如:
如果以“最近 7 天的多头借贷次数 / 最近 1 个月的多头借贷次数”,我们便可以判断借款人的时间维度上的借贷行为分布。这个变量数值越大,代表近期借贷集中,短期风险更大。
如果以“最近 1 个月的银行信贷借贷次数 / 最近 1 个月的多头借贷次数”,我们便可以判断借款人的在借贷平台维度的分布。这个变量数值越大,可以认为越趋于正面。
在使用这些变量时,我们还需考虑第三方数据公司所接入的机构数的变化。也就是说,如果接入机构数在持续增长,那么整体人群的多头借贷指数也可能往高分偏移。
Part 8. 总结
本文系统总结了时间滑窗统计特征的构造方法论,以及相应的业务理解。总的来说,我们先统计数量,再从占比、趋势、稳定性、集中性等维度去衍生。当然,最重要的一点还是多结合业务去思考。