互金信用评分建模四步骤
一、数据描述
数据采集
具体而言,分别为交易事实表,用户信息表,商户分类信息表,以及银行卡信息表,它们之间的关系如图4所示。这四张表格分别通过不同的关键字连接,具体如下:a. 用户信息表可以通过用户手机号码和交易事实表对应,一个用户手机号码对应多个交易事实记录;b. 商户分类信息表可以通过商户编号和交易事实表对应,多个交易事实可能产生于一个商户编号;c. 银行卡信息表可以通过银行卡的前几位数字(称为卡标首)和交易事实表中的卡号对应。
四张表格中包含的具体变量信息分别如下:
用户信息表:手机号,注册渠道(手机APP注册,或者网站注册),身份证(提供数据已加密),提取数据前最近一次的登录时间,注册时间等。
商户分类信息表:创建时间,商户号,商户名称,商户1级分类代码,商户1级分类名称,商户2级分类代码,商户2级分类名称,商户3级分类代码,商户3级分类名称,商户4级分类代码,商户4级分类名称等。
银行卡信息表(银行卡卡片类型信息):卡标首(银行卡的前几位数据,决定了属于哪一家银行的哪一种类型的卡片),首长度(例如前6位数字决定了卡片类型,则首长度为6),账户类型,账户类型名称(例如储蓄卡或者信用卡),卡代码,银行代码,银行名称等。
交易事实表:流水号(每一笔交易会被制定一个流水号码),交易手机号,交易时间,商户号,账单号,支付金额(支付金额等于账单金额加手续费的总和),账单金额,手续费等。
综上所述,上述四张表格可以通过不同的关键字分别进行匹配连接,从而能够对应到一个用户的多行交易信息在下一小节中,我们将详细阐述数据的变量提取过程。
图4 XXX分期产品用户数据结构
数据清理变量采集
首先,按照关键字将所有四张表格合并。每一条观测以一个用户的一次交易行为为单位,包含用户个人信息,银行卡信息,商户分类信息等,总观测行数近450万条。直接处理并不是一个好的解决方法,这样产生的数据量太大,且不直观利于分析。我们的目标是将所有的信息汇总到每一个用户,定义关于用户的衍生变量。从而,我们分成两个方向的变量来刻画用户特征,分别是:用户基础信息变量以及用户分类信息变量。接下来,我们将进行详细的定义。
用户基础信息变量
此处生成的用户基础信息变量包括直接可以从数据中收集的变量以及衍生变量,如下所示:
(1) 用户的得分:由于目标要对于原始的综合得分进行预测精度的改进,我们将“熊得分”作为解释变量纳入模型,“得分”是XX贷公司的业务人员根据实际业务定义的指标体系从而生成的得分,我们认为其具备一定的业务经验以及背景知识,从而也具备较强的预测能力。熊得分越低,越有可能违约。
(2,3)用户性别,用户年龄:通过用户身份证号可以提取一个用户的性别,年龄信息,这些数据我们通过与熊小贷公司沟通完成,熊小贷公司并不直接提供用户的身份证号。获取的身份证信息均为加密过后的信息。
(4)用户的注册年龄:即用户从第一次有交易记录开始距离现在的时间长度,以天为单位。
(5)交易笔数:用户自从第一笔交易记录开始,被记录的交易总笔数。
(6)所有行为均值:用户被记录的所有交易行为的平均金额。
(7)所有行为最大值:用户自从第一笔交易开始,所有交易行为的金额的最大值。这个指标可以度量用户的极端行为情况。直观来看,极端行为越大的用户越有可能违约。
(8)借贷比率:用户所有行为中,采用贷记卡(或称为信用卡)交易的次数占所有采用贷记卡或者借记卡(或称为储蓄卡)交易次数的比率。这个指标衡量的是用户的交易习惯,例如,有些人习惯直接采用储蓄卡进行消费,而也有些人习惯每个月采用信用卡先进行消费,到了还款日再按时还款,这样既可以消费,又不影响每个月的理财计划。这两种消费习惯的用户群体不同。
(9)银行卡数:我们每个人需要的银行卡数并不多,银行卡太多的用户与正常用户群体不同。例如,如果需要多张信用卡消费,但是却还不上信用卡的人可能更容易违约。
通过以上信息,我们定义了以上这9个用户基础信息变量。
用户分类信息变量与RFM模型
图5 RFM模型图示
在营销领域,RFM模型是用来衡量客户的价值和客户的创利能力的重要工具和手段。这个模型通过一个客户的近期购买行为、购买的总体频率以及花了多少钱三项指标来描述该客户的综合价值,具体如下:
(1) R(Recency),最近一次消费,指上一次购买的时间到现在的距离。理论上,上一次消费时间越近的用户应该是相对而言活跃的用户。因此这些用户对于提供即时的商品或是服务也最有可能产生反应。而我们通常也会发现,对于0到6个月用户收到营销人员的沟通信息会多于31至36个月的用户。
(2) F(Frequency),消费频率,即用户在限定的期间内产生购买的总次数。最常产生购买的用户,忠诚度最高的用户。
(3) M(Monetary),某个用户所有消费金额的平均值。通过这一指标可以验证“帕雷托法则”(Pareto’s Law),也就是说公司80%的收入来自20%的顾客。
在此案例中,我们将重新定义这三个指标,并借助这三个指标来概括用户所产生一类行为的特征,如表格1所示。而由于这三个指标并不能够衡量用户产生行为的波动性,所以我们增加一个指标S(Standard Deviation)来衡量用户行为的波动性。例如,对于购买游戏点卡类行为,我们可以定义R为用户最近一次购买游戏点卡距离数据提取时间的时间间隔,F定义为一年内用户购买游戏点卡的次数(考虑到用户注册时间不一样,此处采用的频数需要采用用户年龄进行标准化,即总次数除以用户年龄。用户年龄的定义将在下文中详述),M定义为一年内用户每次购买游戏点卡的平均金额,S定义为用户每次购买游戏点卡金额的标准差。我们将所有变量记作类别名称加指标简称的形式,例如游戏R。
表1 RFM指标定义
指标简称 |
指标定义 |
R |
一年内用户最后一次产生某类行为距离提取数据的时间 |
F |
用户在一年内产生某次行为的频数 |
M |
用户在一年内产生某类行为的平均金额 |
S |
一年内该类行为产生金额的标准差 |
用户行为的分类通过银行卡信息表,以及商户分类信息表,根据业务场景,我们提取了以下类别,每个类别都对应着以上我们已经定义好的RFMS四个指标。类别包括:
(1)借记类:刻画用户使用储蓄卡的交易行为。不同的用户习惯不同,采用储蓄卡和信用卡的倾向也可能不同。
(2)消费类:刻画用户的日常消费行为。日常消费行为的金额以及频次不同,用户的还款能力可能不同。
(3)信贷类:刻画用户之前的小额贷款类行为。用户之前如果有其他消费贷款类行为可能已经习惯进行消费贷款,从而可能具备更良好的信用状况。
(4)转账类:刻画用户的转账行为。经常通过熊小贷APP转账的用户可能与不转账的用户行为不同。
(5)话费类:刻画用户的话费充值交易行为。话费充值是否规律与充值金额多少都可能意味着用户群体不同。
(6)公缴类:刻画用户交水,电,煤气费等交易行为。公缴费用的多少与是否规律也可能说明用户群体的不同。
(7)游戏类:刻画用户购买游戏点卡的行为。经常玩游戏的用户群体可能与不玩游戏的人不同。
(8,9)四大行卡类以及中型银行卡类:四大行包括中国银行,中国农业银行,中国工商银行,中国建设银行,中型银行包括招商银行,浦发银行,兴业银行,平安银行等。这个指标的设定有以下两方面原因:a. 不同公司的工资卡不同,小型创业公司一般采用中型银行的银行卡;b. 四大行的信用卡发放较为保守,所以能够申请到四大行信用卡的人可能和采用其他银行信用卡的用户群体不同。
(10)白金及金卡类:通过卡标首可以对应到银行卡是属于哪家银行的哪种类型的卡,例如招商银行的金葵花卡。我们搜索整理了相应银行的金卡和白金卡卡种名称,并对应到每一个用户。我们初步认为,拥有白金卡和金卡的用户具备更高的还款能力,所以用户群体不同。
综上所述,我们一共提取了10个类别,每个类别4个指标,共计40个分类信息变量来全方位立体的刻画一个用户的全部交易行为。
数据预处理与数据汇总
为了数据质量考虑,我们去掉“用户注册年龄”小于10天的用户,原因在于,这一部分用户的观察行为较少,并不足以代表稳定的用户自身特征。另外,在对数据进行描述分析后,模型建立之前,我们将所有连续数据做对数处理,并进行标准化。由于所有样本均来自于交易行为的归纳汇总,故只要用户有交易行为,分类信息变量就不存在缺失,故此处不需要缺失数据填补。
最终,我们的数据共包括28816个用户,其中违约用户为9115个,非违约用户19701个;结合9个用户基础信息变量,我们的数据共包括49个解释性变量,这49个变量也包含着对于业务的理解和思考。这对于刻画用户的所有行为而言,只是初步的探索和尝试,但是相较于只采用用户自填信息进行建模而言,已经更为综合和全面。
二、数据建模
在建模部分,我们将先通过几个变量的基础描述分析,以说明变量的特征,继而通过建立逻辑回归模型对于预测效果进行阐述。
描述性分析
出于数据隐私考虑,我们只针对于其中6个变量作箱线图分析。箱线图能提供有关数据位置和分散情况的关键信息,尤其在比较不同的总体数据时更可表现其差异。此处我们通过对比箱线图对数据进行分析。我们用 0表示违约用户, 1表示非违约用户。
(1)得分与是否违约。从箱线图可以看出,非违约用户与违约用户的箱线图有明显的差别,这表明熊得分对于违约与非违约用户具有较好的区分度。
(2)交易笔数与是否违约。从箱线图可以看出,非违约用户较违约用户而言,交易笔数更高。
(3)用户所有行为均值与是否违约。从箱线图可以看出,非违约用户与违约用户相比较,所有行为金额的均值较高。
(4)借记卡F与是否违约:通过箱线图可以得出,非违约用户的借记卡F平均高于违约用户。表明非违约用户借记卡的使用频数更高。
(5)四大行M与是否违约:通过箱线图得出,非违约用户的四大行卡的行为平均值较高,这说明非违约用户更多使用四大行的银行卡。
(6)信贷R与是否违约:从图中能够得出结论,非违约用户通过APP产生借贷行为距离现在的日期,相对于违约用户而言较近。
通过以上描述分析,我们已经能够观察到在所提取特征中违约用户与非违约用户的不同,通过回归分析,我们将进一步说明通过变量特征的设定带来的预测效果的提升。
图6 典型变量箱线图
模型设定及估计结果
本案例中采用逻辑回归进行建模,原因在于,根据逻辑回归结果,我们能够直观看到每一个变量对于因变量是否违约的作用大小,有利于系数解释。但由于变量过多,我们很难对于所有变量进行符合预期的系数解释,进一步地,我们采用BIC的方法选择模型。相比较于AIC而言,BIC模型选择的方法选择的变量个数较少,更有利于模型的估计系数解释。
BIC选模型的估计系数结果如表2所示,由于系数较多,我们省去估计量的估计误差和P值的具体数值,只用“*”标注P值的大小。但注意,当回归系数过多时我们难以直观展示系数结果,为此,我们根据估计系数的正负将变量分类,再按照绝对值的大小排序整理得到图7和图8。由于模型主要分析“熊得分”之外其他变量带来的预测效果的提升,我们只绘制除“熊得分”之外其他变量的系数。
我们并不逐一解释每一个系数的大小及其含义。值得注意的是,从图7中我们可以总结归纳得出非违约用户的特征,从图8中可以总结归纳出违约用户的特征,通过这两幅图已经可以总结出较为直观的对于违约与非违约用户的理解。我们通过进一步观察可以直观得出的结论包括但不限于:
在其他变量控制不变的情况下,借贷比例越高的用户违约可能性越低,这与银行的信用卡额度提升相似,对于经常使用信用卡并按时还款的客户更有可能被银行认为信用良好,从而希望改用户提高信用额度,而如果不经常使用信用卡则无法判断。从而借贷比例越高,表明用户越习惯使用信用卡,进一步越有可能是信用良好的用户。另一方面,用户申请银行的信用卡需要通过银行的信用评估,故有信用卡的用户较没有信用卡的用户会有所不同。
表2 BIC选模型回归系数结果表
变量名 |
估计值 |
p值 |
变量名 |
估计值 |
p值 |
熊得分 |
26.301 |
*** |
转账R |
-0.336 |
*** |
借贷比率 |
1.752 |
*** |
年龄 |
-0.254 |
*** |
借记卡F |
0.438 |
*** |
公缴R |
-0.230 |
|
用户所有行为均值 |
0.412 |
*** |
四大F |
-0.175 |
*** |
交易笔数 |
0.136 |
*** |
四大R |
-0.168 |
*** |
借记卡M |
0.083 |
*** |
中型F |
-0.122 |
*** |
中型M |
0.016 |
*** |
中型R |
-0.119 |
** |
四大M |
0.014 |
* |
消费F |
-0.096 |
** |
信贷R |
-0.922 |
*** |
金卡F |
-0.083 |
*** |
银行卡数 |
-0.674 |
*** |
转账M |
-0.082 |
*** |
信贷F |
-0.633 |
*** |
公缴M |
-0.062 |
** |
用户所有行为最大值 |
-0.474 |
*** |
游戏M |
-0.059 |
* |
转账F |
-0.386 |
*** |
信贷S |
-0.035 |
*** |
公缴F |
-0.370 |
* |
注:***表示P<0.01,**表示0.01≤P<0.05,*表示0.05≤P<0.1。
借记卡F越大用户违约可能性越低。这表明其他变量不变,用户使用储蓄卡频数越高,越可能是信用良好的用户。在其他变量保持不变的情况下,用户每一次交易行为的平均值越大越可能是非违约用户。控制其他变量不变,信贷R越小越可能是非违约用户。这一点与之前观察的箱线图吻合,越近产生消费借贷行为的人,越有可能是非违约用户。注意这里产生的借贷行为与Y对应的是否违约并非同一次借贷行为。其他变量水平不变,银行卡数越多,越有可能是违约用户。保持其他变量不变,用户行为最大值越大,越可能是违约用户。这也验证了我们之前的结论,用户的极端行为越极端,越有可能是违约用户。
图7 BIC选模型结果正系数
图8 BIC选模型结果负系数
模型预测结果
我们将对比以下三种模型的预测效果,因变量Y相同,为用户是否违约( 1,用户非违约, 0,用户违约):a. 只根据“熊得分”建立的逻辑回归模型;b. 用所有49个变量,包含用户基础信息变量与用户分类信息变量建立的逻辑回归模型;c. 在b模型的基础上通过BIC模型选择方法建立的模型。
衡量模型的预测效果可以采用指标ROC(Receiver Operating Characteristic)曲线或者AUC(Area UnderCurve)值。其中ROC曲线的横坐标为false positive rate(FPR),也称为Specificity,刻画的是模型预测错了,认为为1但真实为0的观测占所有真实为0的观测的比例。纵坐标为true positive rate(TPR),也称为Sensitivity,刻画的是模型预测所识别出的为1且真实为1的观测占所有真实为1的观测的比例。ROC曲线越贴近左上角,表明模型的预测效果越好。AUC是ROC曲线下的面积,这一指标取值越大表明模型预测的效果越好。通常在计算中也可以考虑如下公式:
其中 表示 的真实取值为0的集合, 表示 的真实取值为1的集合, 表示 真实取值为0的观测个数, 表示 真实取值为1的观测个数。这一指标可以理解为,真实为1的的预测非违约可能性不小于真实为0的的预测非违约可能性的比例。
为了模型对比,我们随机将所有数据划分为训练数据集(80%)和测试数据集(20%),在训练集上估计模型的回归系数,将所有系数带入测试数据中进行计算,预测非违约可能性。随机拆分被重复了100次。我们随机抽取其中一次绘制ROC曲线如图9所示。其中,Score表示模型a的预测结果,模型中只包含“熊得分”,Full model表示模型b对应的预测结果,BIC表示模型c对应的预测结果。从图中可以得出结论,在b模型与c模型的预测效果接近,二者都要远远好于a模型的预测效果。进一步地,我们将100次随机拆分计算得到的AUC值取平均。出于行业数据机密,我们此处不汇报AUC的绝对提升结果。但是相对于 a模型而言,b模型和c模型的预测效果将相对提升13.6%。这将直接使得我们能够在实际业务中更精准的判断出用户的信用状况。
图9 回归模型对比ROC曲线
三、业务实施
对于小贷公司而言,收益是靠收益率体现,而成本则体现在坏账率。也就是说对于现在的市场存在收益和成本的不对等。所以才会有P2P公司如雨后春笋般出现,为了在这个利润丰腴的市场分一杯羹。现在的小贷公司可以通过较为严苛的指标筛选用户,从而保证违约率一直维持在较低的水平,也就是说,现在的网络借贷公司也许并不需要借助纷繁复杂的技术手段就可以获得较高的收益。但是随着市场的饱和,越来越多的公司进入竞争的行列,在可预见的将来,我们可以看到违约率的提高,收益率的下降。到了那时候,拼的不再是跨入市场门槛的勇气,而是谁能够通过技术实力真正的选准用户,稳定住坏账率这一指标。
在业务层面,首先,我们需要通过更多数据来验证以上模型结果真实可靠。通过熊小贷公司提供的不同数据,我们已经验证了这一结果。而通过以上数据建立模型的预测结果可以直接进行以下两方面的工作:
(1)利用预测非违约率来辅助判断是否应该批准用户贷款,即进行用户选择。例如,同样的两个用户申请贷款,A用户的预测非违约率为0.85,B用户的预测非违约率为0.27。那么在资金预算有限的条件下,如果只能批准一个用户进行贷款发放,通过模型就会选择发放给非违约可能性更高的用户A用户。也就是说,通过模型的预测能够帮助我们筛选发放贷款的目标用户。而精准的预测将能够降低我们的贷款成本。
(2)利用预测概率改进APP中的熊得分。例如,通过线性变换可以将预测概率P转化为400至800的用户得分Q,Q=400+400×P。从而能够更新平台上的熊得分,使得熊得分更加准确。
另外,本案例中的模型证实了用户的交易记录数据对于征信模型的重要作用,对于业务上拓展数据源也有重要的指导意义。
四、总结讨论
本文针对互联网征信背景下的信用评估模型进行了探讨,通过具体的案例证明了用户历史行为数据对于用户的信用评估具有重要作用。这其中最值得注意的是,业务背景对于指导建立模型具有不可替代的作用,所有的变量产生都应该建立在对于业务背景知识的透彻了解之上。另外,关于本案例的研究有以下可能的改进方向:
(1)在数据中我们只考虑违约情况为01变量,即,违约与非违约。其中,如果用户违约天数大于等于7天被定义为违约,否则为非违约。如果能够记录用户真实的违约天数作为连续变量,将可能对于模型预测有进一步的帮助。
(2)在本案例中收集的数据只是通过某特定第三方支付平台的所有交易数据,并不能代表用户的所有银行卡交易状况,如果能够收集到用户的所有数据,则将对于用户的交易行为做出更全面客观的刻画。
(3)从本案例的研究中可知,不同平台的数据对于信用评估可能有不同的优势。从央行下发牌照的8家机构看来,不同机构的数据源不同,各具特色,于是如何能够将不同数据源的数据进行统一后,建立综合的信用评估模型,是值得深入探讨的问题。例如,一个用户可能在京东平台和淘宝平台上的信用得分不一样,这与用户的平台偏好有关,但是如果能够根据不同平台的结果综合对用户进行信用评估,则将得到更准确的结果。
互金信用评分建模四步骤相关推荐
- 大数据概念思维导图_思维导图|数据化风控(信用评分建模教程)
本文将按<数据化风控--信用评分建模教程>行文逻辑,并结合相关参考材料,为大家梳理本书涉及的重点知识,也算是自己读书笔记分享.有需要的同学可先收藏.点赞,以便回顾学习和吸收,当然,如果愿意 ...
- 信用评分建模中样本容量不足怎么办
信用评分建模中样本容量不足怎么办 在建立个人信用评分模型时,不仅需要有足够多的表征信贷申请人信用行为的特征变量,而且建模样本的容量也必须达到一定的数量. 一般来说,样本容量越大,所建立的模型的精度或预 ...
- 数据仓库专题(2)-Kimball维度建模四步骤
一.前言 四步过程维度建模由Kimball提出,可以做为业务梳理.数据梳理后进行多维数据模型设计的指导流程,但是不能作为数据仓库系统建设的指导流程.本文就相关流程及核心问题进行解读. 二.数据仓库建设 ...
- 银行信用评分卡建模原理
今天学习了一下评分卡的内容,博主自己也对这个不了解,由于业务的需求,今天自学了下相关的内容.我把自己学习的一些东西整理下,发到这个博客里面. 背景 1.先讲一下背景内容,什么是评分卡:其实评分卡呢,就 ...
- 超详细用Python进行信用评分卡建模【kaggle的give me some credit数据集】【风控建模】
1 信用评分卡模型简介 信用评分卡是一个通过个人数据对其还款能力.还款意愿进行定量评估的系统.在消费金融行业,信用评分卡主要有三种(A.B.C卡): A卡:申请评分卡,贷前阶段使用,在客户获取期,建立 ...
- 【待继续研究】解析信用评分模型的开发流程及检验标准(晕乎乎,看不懂~)
评分模型的检验方法和标准通常有:K-S指标.交换曲线.AR值.Gini数等.例如,K-S指标是用来衡量验证结果是否优于期望值,具体标准为:如果K-S大于40%,模型具有较好的预测功能,发展的模型具有成 ...
- 评分模型的检验方法和标准信用评分及实现
转载自:http://www.cnblogs.com/nxld/p/6364773.html 评分模型的检验方法和标准通常有:K-S指标.交换曲线.AR值.Gini数等.例如,K-S指标是用来衡量验证 ...
- 数据源——信用评分的前世今生【附FICO分介绍】
信用评分这把"看不见的标尺"如今已经逐渐渗透到我们生活的方方面面,大到贷款买房买车,小到租用一个共享充电宝,都受到它的影响.那么问题来了,这个重要的数字是从哪里冒出来的呢?这就要从 ...
- 数据挖掘项目:银行信用评分卡建模分析(下篇)
以下是银行信用评分卡建模分析下篇的内容,包括特征工程,构建模型,模型评估,评分卡建立这四部分.其中如果有一些地方分析的不正确,希望大家多多指正,感谢! 上篇文章的链接:数据挖掘项目:银行信用评分卡建模 ...
最新文章
- destoon实现调用热门关键字的方法
- boost::bind 介绍
- POJ2195 Going Home 最小费用最大流
- ARKit从入门到精通(5)-ARScnView介绍
- mysql存储过程和游标遍历
- ipython和python怎么用_如何使用IPython重新加载和自动加载?
- 公布一个软件,轻新视频录播程序,H264/AAC录制视音频,保存FLV,支持RTMP直播...
- 第三十五期:当我们在讨论CQRS时,我们在讨论些神马?
- 使用抽象类还是接口(Java)
- python包和目录有什么不同_python模块和包的区别
- qmenu点击后不关闭_速腾关闭点火开关后发动机不立即熄火
- freemark判断传过来的值为空和不为空及问号、感叹号用法
- LJL-Solution 清空页面所有值的 (2)
- 【完美解决】ds1302外置时钟模块重复初始化时间问题(单片机掉电,模块电池供电)
- PTA 数据结构与算法分析 7-38 寻找大富翁 (25 分)
- Docker设置DNS
- 开源并兼容Windows NT的操作系统ReactOS简单介绍
- 【机器学习百科全书目录】PRML ESL MLAPP 西瓜书 花书 RLAI 统计学习方法 蒲公英书
- 使用按键精灵实现界面点击自动化
- 智能手表的下半场,机遇与挑战并存