不知不觉,学SQL已经一个多月了,每天下班学一个小时,有空做做练习题。从之前的焦虑到现在已经有了一定的自信了,猴子的课程真的很适合小白入门,尤其是SQL学习群里,助教老师很尽责,每个问题都会解答。当然更多的还是需要自己多加练习,查资料,看书,当自己遇到自己不会的问题时,通过自己研究解决问题的感觉太棒了,久违的成就感。
因为本身自己是做金融行业的,今天的项目实战就选取金融行业的实战数据进行一个简单的风控策略分析,其中不乏一些解决问题的心路历程,有点啰嗦,闲话少说,实战开始:
一、数据选取及导入
首先拿到数据的时候我是懵逼的:
从网盘上下载的数据选取的数据总共57356条,其实不算多。但主要是有69列,字段名都是因为英文,很多金融行业的专业词汇,自己只能看懂一些,虽然有部分释义,但只有几个,而且没办法一一对照着看,在Google的帮助下勉强把列名翻译成了我能看懂的中文,大概是这样:
(一)在做数据导入之前,先弄清楚两个问题:自己有什么?自己想要干什么?
1.自己有什么?数据总共69个字段,包含了客户的贷前贷中贷后的各个标签维度,我们将逾期客户定义为坏客户,非逾期客户定义为好客户。
2.我想要什么?我想要的是如何通过已知客户的数据分析得出结论,设置风控策略,将其中一部分坏客户拒掉。这其中有一个假设,就是未来的客户表现在概率上的特征与存量数据客户在概率上是一致的。也就是说,我们通过已有的数据分析得出坏客户标签最明显的那部分客户,可能是一个、也可能是多个标签,将这部分客户剔除掉,就能使得我们的逾期率得到改善。由于是要做的是贷前风控策略,所以我们把其中贷中和贷后的数据都暂时删除掉。
最终经过自己的初步筛选,除了主键以外,我们选取的列还剩下20个可供我们进行分析。
(二)数据的导入
按照数据的步骤进行操作,结果第一步就卡壳了,EXCEL表打不开,在公众号上查了解决方案后,发现需要去网上下一个微软的数据导入读取插件,accessdatebaseengine之类的。在网上找到下载以后就能打开了。
紧接着一路顺畅,到了最后一步发现又难住了,提示错误。
直接将错误代码百度了一下,发现是字段太多了,字段太长导致超标了‘too large’,于是在上一步把255改成了100,实际可以视业务和字段情况而定,我这里就是图省事儿。
然后就好了
接下来就可以开始分析了
二、数据分析
首先,我们分析原数据里‘是否逾期’这一列直接用的0和1来表示的,也就是说我们要分析的Y变量可以直接用SUM(是否逾期)来表示我们的坏客户
第一步,我们先看看这组数据整体的逾期率,取出来是29.66%,可以说是很高了,也就是说我们需要从其他变量中选取一些变量来分析坏客户,然后假设把他们剔除掉以优化我们好客户的占比,目标是降低29.66%这个数:
第二步,对各个列进行分析(这里有一个重要的小技巧,也是在助教老师的提示下才解决的)
首先,按信用评分分组统计,我的结果是这样的:
这里我发现其中B,C,D和HR,NC,E可以进行三三分类,因为他们的逾期率相差不大。如何运用SQL语句实现这一点,说实话我想了很久,最后还是在群里助教老师的提示下,茅舍顿开,才有了下面的语句实现了这一点:
把语句格式问题解决了,接下来就简单了,把所有需要分析的字段分别分组列出来就行了,这里由于篇幅有限,只放区分度最好的两个,除了上面的信用评级,还有征信总查询次数,具体SQL语句都大同小异:
下图是征信查询次数
最终我们得到的数据结果分组后,在EXCEL上显示如下图
三、计算提升度和评估执行后的效果
为什么要计算提升度?计算提升度是指——我们通过运用数据来计算各分组最差的那一档的客户,占总逾期账户数的权重是多少。具体公式是:分组最差档位逾期客户数/总逾期客户数/分组用户占比。
这里得到的数值,我们称之为提升度。。大概逻辑是:最差这一档逾期客户占比除以这一档所占的权重。将以上各个分组计算后,于是我们得到了下面这个图:
从图中我们可以看出:“征信总查询次数”和“信用等级”这两个字段最差档位的逾期客户的提升度最大。
接下来我们就可以拟定我们的风控策略了:
两种策略的执行结果分别是:
若征信查询次数>=21则拒绝,总逾期率会下降1.69%,但会拒绝掉5.44%的客户。
若信用评级为“E,HR,NC”则拒绝,总逾期率会下降3.54%,但会拒绝掉12.09%的客户。
根据这两天策略,我们可以直接给出建议,看是为了选择3.54%的逾期率降幅去牺牲掉12.09%的客户(这其中有7.66%的好客户)呢?还是只选择降低1.69%的逾期率,只牺牲掉5.44%的客户(这其中有3.17%的好客户)?这就要看公司决策层的战略和风险偏好了,后者对风险的容忍度较高。
四、总结和感悟
实际上,在信贷行业的策略中,我们要做的永远都是一个平衡问题,如何去找到收益和风险之间的那个点。
目前头部的几家互联网金融公司和各大银行所采用的风控模型都是基于大数据量下的风控,所以数据分析能力在当今的信贷行业相当重要,在客户数据达到一定量级以后,我们关注的都是大数据条件客户逾期的概率问题。总体所设定的风险策略是自己能风险偏好能接受的,同时能产生收益最大化,也就是我们信贷风险分析的终极目标。
这其中有几个问题值得我们进一步学习和探讨:
1.自己所做的分档是根据数据表现人工抉择表现接近的归为一档的分档方式,是否有更科学的分箱规则,如何来实现?
2.单维度的风控策略逻辑相对简单,但现实中我们往往遇到的多维度和更加细化的策略抉择问题:例如‘信用评级’最低的那一个档位里,有没有其他变量又能从中区分出坏人中的好人,或者是坏人中的‘铁坏人’,这就涉及到不同变量之间的交叉分析,到底哪几个特征综合在一起抓住坏人的概率更高?
基于以上两个问题,我想机器学习和PYTHON运用 能告诉我答案,咱们高级课程见。。。。