《锦素风控模型设计流程.docx》由会员分享,可在线阅读,更多相关《锦素风控模型设计流程.docx(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、锦素风控模型设计流程在当代,金融机构在风险管理的每个环节都尽可能地引入计量分析方法,依托大数 据进行后台的分析回顾,不断的优化调整,使得金融机构在风险与收益的博弈过程中更快 到达平衡,实现局部甚至更多空间的利润最大化。风控模型,是在风控策略到达平衡之际,实现风险精分差异化的必备武器。风控模型,广义上代表任何运用数据构建的风险管理模式,狭义上讲,是运用统计、机器 学习甚至深度学习等算法开发的数学模型。作者希望通过此长文,为读者朋友们一次性解 释狭义风控模型体系。目录一.风控模型概要二 .风控建模/算法工程师.速览评分模型搭建三 .细说评分模型搭建全流程1) A、B、C广义三种评分模型2)数据业务
2、理解3)数据探索分析4)定义目标变量5)样本设计和抽取策略6)数据清洗7)特征衍生8)特征变量筛选9)模型变量分箱10)模型拟合11)模型评估常用指标12)模型预测概率校准13)模型违约概率误差校准.评分模型如何应用于决策四 .技术的升华之路变量不同。申请评分卡用到的大局部是申请者的背景变量,比方客户填写的基础信息 +第三方外部数据源查询信息,而且这个模型一般也会比拟谨慎。行为评分卡利用了 很多基于交易的变量,可以预测一个客户未来的违约概率。申请评分卡的评分结果将决定: 估计的信用状况,即正常还是违约,并据此决定批准还是拒绝该笔贷款申请;.为了获得审批通过需要的抵押物; 贷款额(信用额度);
3、贷款定价(利率水平)行为评分卡的评分结果将决定: 审查信用重建; 审查信用额度、额度管理调整; 制定清收策略(假设违约或逾期); 审查贷款定价和贷款条件催收评分卡的评分结果将决定: Pre催收,降低违约风险提升还款率 Ml阶段精细化催收策略,如IVR、预测式外呼、预览式外呼 失联信息修复和提前委外催收.数据业务理解在开发信用评分模型之前,最基本面的工作就是梳理和理解数据。不要自认为知道这些字段的中文意思、来自哪张数据表就可以了,还要尽可能的去了解这 些数据是从生产库怎么生成的,也就是说这些可能用到的变量数据还原到业务中是怎样的 衍生过程,当然如果你们是直接从生产库里挑选数据提炼到建模表上,那么
4、恭喜你,可以 花更多的时间去梳理整理数据了,建好的模型也会更稳定准确。现在很多科技数据公司一味的去强调算法、大维度变量,但却忽略了业务数据的理解,做 出来的模型自然也就与实际业务偏差很大,就算是ks为0.5以上也是很难实际落地。变量业务理解梳理,尽管很繁琐,却尤为重要。对于现在很流行的cash loan业务,客户申请收集基本三要素:姓名,身份证、手机号,通过用户授信、SDK抓取,以及三方数据调用,可以获得多维度的用户数据。对于一个客户填写了这三要素之后,业务生产库里就会存在name、idcard、phonenumber三个字段去存储每一个申请客户的数据。如果对于建模的你来说,没有权 限看到生产
5、库的数据,只有数据仓库给你使用,你从数仓里看到了 sex、province.city、sex、Valid_period_of_ID_card等等。这些字段都是从生产库里衍生出来的,有些是业务逻辑需要,有些是报表需求。就以身份证idcard为例,一个申请客户提供了 idcard 申请时点为2017.10.28 , 18位身份证号码个位含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-14位出生年月日,比方19670401代表1967年4月1日; 15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数;根据身份证编码含义,我们就
6、可以在在数仓里衍生出如下字段原始身份证截取衍生变量数据44province广东03city深圳06匚A 4曲弓直潺里壮宝安19900511age2719900511Valid period of ID card19343sexmale 对于Valid_period_of_ID_card这个变量的衍生,大家首先要知道身份证号的含义,还要 去测算申请客户目前是第几代身份证,然后去了解关于身份证法对于身份证有效期的划分 标准,最后根据客户申请时点去测算他目前的身份证还有多长的有效期。Valid_period_ofJD_card这个衍生变量可以在策略规那么和建模中使用,比方身份证有效 期较短的客群通过
7、历史数据分析发现在公司cash loan中大占比为骗贷客户,策略引擎里 已经设置了强拒绝规那么,那么我们在建模的时候,就要把身份证有效期超出相应规那么界限 的客群剔除掉,直接排除这局部数据进入评分卡模型的训练样本,可以很好的排除这局部 客群对模型的干扰,提升模型的区分好坏能力。假如现阶段公司cash loan业务限定只给予年龄在20-35岁,非广东区域的客户进行放 款,产品业务已经明确了各个维度的限制,那么我们在数据导入前,在了解了衍生变量的 业务逻辑之后,很明确的知道这个申请客户是不可能进行贷款的,不满足业务要求的客群 也是应该通过相关变量进行排除的,这就是我想跟大家聊的理解数据业务意义的重
8、要性。 理清数据的来源,也才能更高效的让我们脑洞大开地去创造有效变量。2 .数据探索分析当我们带着好奇的心态沉浸在生产库或者数仓的数据海洋里,不要忘记我们是身负重任 的,我们要从以产品为中心生成的大维度数据变量里进行一遍变量维度的初步筛选,筛选 出有可能进入建模表里的所有变量字段,然后去观察这些数据具备什么形态。在SAS BASE里有几个函数可以用来进行数据探索分析.Proc Means直接运行proc means过程时,会对所有数值型变量进行操作,得到各变量的非缺失观测 数N ,均值MEAN ,标准差STD DEV ,最大值Max和最小值Min ,我们还可以增加 range (极差)sum
9、(和)var (方差)nmiss (缺失值个数)median (中值)等选项 得到其统计量。1 .Proc Freq 直接运行proc freq过程时,会对所有变量(一般针对离散型变量,如果是连续型变量, 通过Format进行离散化处理)进行操作,得到各变量的频数、百分比、累积频数、累积 百分比,我们还可以增加多变量的交叉表频数统计。2 .Proc Univariate探索性数据分析最常用的过程步之一就是proc univariate ,直接运行proc univariate过 程时,会对所有变量进行操作彳导到矩、位置和可变形的基本测度、位置检验、分位数、极值 观测。假设加了一个HISTOGR
10、AM那么增加了一个直方图;加一个NORMAL选项那么在直方图上面 加了一根拟合后的正态分布图,并且还增加了拟合正态分布的参数估计、拟合优度、分位 数;加一个KERNEL那么在直方图中加了一根实际数据核分布的密度曲线;加一个plot选 项,在结果中增加了分析变量数据的分布图、箱型图、以及概率图,等等。我们重点要从下面几个维度去进行关联性探索分析:1 .产品基本情况各表现指标随时间的分布变化不同业务线各产品随时间变化的申请量、通过率以及各逾期指标分布.产品逾期情况 各逾期指标随时间的分布 各逾期指标流转(FPD30-60 ; FPD60-90 ) Vintage : Ever 30+ / M1+;
11、 Ever 90+/ M3 + 所有产品、各产品30天逾期指标分布.参考已上线评分卡监控报表,参照模型变量及分组表现2 .定义目标变量L目标变量是什么目标变量就是假定申请客户的好坏,逻辑回归公式里的Y ,先来看下逻辑回归公式1y =l + e-zFAL,金科应用研院(z = a1% + a2x2 HF anxn + b)其中,1 V =J 1+L称为sigmoid函数,它的函数图像如下,x)poe6wco9 q510o-10-5我们可以看到,通过sigmoid函数输出的y介于(0 , 1)之间,这样就说明了数据属于某一类别的概率,例如: 假定Y定义为申请客户为好客户还是坏客户,也就是历史数据非
12、0 (好客户)即1 (坏客 户),通过测算业务放款收益损失我们找到了一个公司可接受的逾期率P yp,那么说明预测客户有更大的概率属于坏客户;当然实际情况好坏客户的划分并没有这么简单,单单是收益损失测算就需要考虑综合费 率、资金本钱等较多维度。2.目标变量的界定对于评分卡目标变量Y的界定,我们主要从Roll Rate和Vintage来观察分析,重点需要 考虑三个方面逾期流转比例观察期和表现期样本容量先分析Roll rateRoll Rate 2017.012017-022017-032017-042017-052017-062017-07Roll Rate的定义为在当前催收水平下不同逾期天数转化
13、为坏账的概率。从Roll Rate我们 看到2017年开始放款,M0 to Ml的流转率约为7.8% , M3 to M4的流转率为100% , 也就是说,处于M3逾期阶段内的客户基本很难催收,逾期天数大于60天的客户基本为 坏客户了。M0 to Ml7.0%73%7.6%7.8%8.1K82%Ml to M225.0*31.0% r37 0%29 00*31M320MM2 to M3FAL858504850%85 0%85 OH85MM3 to M4100.0*100.0%100.0*100.0*100.0*100.0KM4 to M5100.0*100.0%100 0%100 0*100.
14、0%100.0KM5 to M6100.0*100.0%100 0%100.0*100 OH1000%再分析Vintage张岭分析6 0%6 0%0 0%2345678910 11 12 13 14 15 16 17 18迫期60剩余本金Vintage可以关注下面3个方面: 观察每月审批通过客户后第N个月的逾期比率,比照每月波动,通常波动与审批策 略调整有关,此波动在数据准备阶段的样本抽样过程需要关注;逾期分布,集中在通过后的前三个月说明审批的策略有待改进,超过三个月之后才慢 慢增加,说明贷中的管理有待提高; 确定逾期率在经历第N期趋于稳定;从上图Vintage分析,每月放款逾期M2+以上的剩
15、余本金逾期率基本在MOB=8期时趋 于稳定,如果我们的放款时间累积比拟长,样本表现期可以覆盖到8期,那么就可以界定 样本目标变量为在8期内(对于银行往往表现期8;消费金融8 )逾期天数大于60天的 客户为坏客户,也就是Y=1 ;如果样本的表现期不够8期,那我们就要再综合考虑流转率 和帐龄,重新定义满足样本表现期的逾期天数。5 .样本设计及抽取策略在开发评分模型前,如果可以在样本设计阶段尽可能的涵盖到表达客户风险的所有特征维 度,那么对于之后模型开发工作,将会起到事半功倍的效果。究竟应该如何设计样本。接下来我将为读者朋友们深入浅出的分析讲解。对于没有接触或 者未从事模型设计开发工作的读者朋友们,
16、不妨也了解下设计思路,便于提升风控策略等 其他工作的风险管理效能,毕竟,风控评分模型、策略规那么甚至产品设计,彼此不分家!FA L金融科技应用样本设计构建样本特征集:1 .客户基础信息拆分总样本2 .申请行为信息3 历史借贷信息1.训练样本4 .社交属性信息2 .验证样本5 .征信查询信息3 .测试样本6 .个人及家庭资产信息4 .近期样本7 .历史交易类信息8 .地理信息同时间跨度下的建模 样本(训练样本和验 证样本)不同时间跨度下的测 试样本近期13个月无表现样 本建模样本常见问题1 .建模样本总少2 ,样本不均衡样本扩容 分层抽样 欠采样 过采样 不抽样样本扩容:新定义观察点抽样:预测概
17、率校准7.测试样本与建模样本是否应该采用相同抽样Share Technology Happy Finance样本抽取样本抽取策略1 .确定最大、最小样本,2 .剔除灰样本3 .样本比例4 .关注因数据缺失等原因蹋除的样本FAI金融科技应用1 .确定最大样本量策略:目标变量界定 表现期&观察点 4 观察期 计算能力4外部数据征信本钱2 .样本比例策略:均衡样本?好坏样本比例4总体好坏比?3:1?样本比例训练样本6080%验证样本2040%Share Technology Happy Finance Cownght . FWvtoch AppttcMon Ub1样本特征集的设计对于不同形态的金融产
18、品,样本特征集的设计框架彼此不同,但设计出发点都是为了表达 用户的全部潜在风险。以个人信贷为例,样本特征集应该至少包括客户基础信息、申请行为信息、历史借贷信 息、社交属性信息、征信查询信息、个人及家庭资产信息、历史交易类信息、地理信息。 其中,征信查询信息包括第三方数据供应商提供的信息。以征信查询信息为例,征信机构(包括第三方数据提供商)从会员单位(银行、小贷公 司、零售商、信用卡机构、公用事业公司等)和公共渠道(法院、政府局部等)收集信 息,并用手机号、身份证号匹配整合到一起。一般征信机构提供的征信数据分为几类:公共信息(如法院判决)、杳询检索(如历史查 询记录)、共享信息(如不同贷款机构的
19、整合数据)、聚合信息、欺诈预警(如无效的地 址或身份证号)、附加价值(征信机构通用分)。这些数据差异化程度非常大,从数据目的来讲,可以包括信贷、反欺诈和验证;从数据来 源来看,包括公共数据、用户数据和衍生数据;从风险管理周期定义,包括获客、风险管 理、回收和欺诈;从机构职能来划分,包括数据采集、数据聚合和增值服务。对于小微金融信贷的特征集设计,除了个人信息之外,还会加入税务、上下游供应商、发 票、公司社保缴纳、水电费、公司财务等表达企业经营稳定性和开展力的特征数据,综合 评估小微企业的还款能力和小微企业主的还款意愿。所以,在设计样本特征集时,需要将以上风险特征变量尽可能的收集聚合在样本特征集
20、中。2总样本拆分策略在构建出样本特征集之后,需要按照模型开发、模型验证、模型测试三个环节,将总样本拆分成训练样本、验证样本、测试样本和近期样本。训练样本和验证样来自于总样本并在同一时间区间内,可以按照一定比例进行样本抽取(一般训练样本:验证样本=7:3 )或者N折交叉抽取。测试样本来自相邻未来时间区间,用以测试模型的预测能力、区分能力、排序能力、稳定性等指标,确保模型在不同时间段上仍有一定活性。近期样本是在开发前仅三个月左右的样本,没有表现结果。近期样本主要用来确保评分卡 特征变量的稳定。 建模样本抽取策略一般对于建模样本,常遇到两类问题:建模样本总量少和样本不均衡。对于建模样本总量少的情况,
21、需要按照最大、最小样本设计策略重新进行观察期和表现期 以及观察点的选择,同时结合计算能力以及外部数据征信本钱进行综合考量,在这里不进 行过多赘述。对于样本不均衡问题,一般有三种处理方法:欠采样、过采样和样本分类阈值移动。欠采 样是减少数量较多那一类样本(一般是好样本)的数量,使得正负样本比例均衡;过采样 是增加数量较少那一类样本(一般是坏样本)的数量,使得正负样本比例均衡。样本分类阈值移动的设计方法是,在分类学习中面对样本不均衡时,我们可以采用原有不 均衡的样本进行学习,然后通过改变决策规那么来做分类,比方在样本均衡时我们0.5作为 分类阈值,而在样本不均衡的情况下我们可以规定预测概率需要到达
22、0.8才能被预测为多 数类。至此,在经过确定最大、最小样本、剔除灰样本、处理样本不均衡和分层后,样本设计基 本完成,但有一点需要提醒各位读者,需要独立关注因数据缺失等原因剔除的样本,虽然 他们可能成为样本的噪音数据,但他们也通常有很高或很低的违约率特性,对于一些特定 场景模型如反欺诈模型,往往对于此类特征的关注度更高。4小结没有完全意义的样本设计和最优抽取策略,在一些情况下有用的策略可能在其他情景下就 失去效力,最根本的问题是样本是否能代表所有群体的特征。我们需要在提取数据前审视 样本设计和抽样策略,尤其是从外部来源提取的数据。6 .数据清洗数据清洗这四个字对于常常做数据分析建模的同学们一定不
23、陌生,不管在实际工作中有没 有真正做清洗,我们都会先把这个口号喊出来,数据清洗这块其实我也一直不太愿意说, 因为这种活实在太结合业务理解了,而且还见仁见智,并不是简简单单的三步缺失01风控模型概要在社会数据厚度和纬度不断增加的当下,大数据与金融服务的跨界结合越加紧密,互联网 技术在金融活动中的应用日益成熟,金融风险管理中信用评估模型体系内部也在酝酿着一 场暗流式的较量。1传统信用评分模型传统信用评估模型的基本思想是比拟企业信用历史资料与数据库中的全体企业的信用习 惯,检查企业的开展趋势跟经常违约、随意透支、甚至没有债偿能力等各种陷入财务困难 的企业的开展趋势是否相似。传统信用评估模型的基本算法
24、是运用线性模型中的逻辑回归模型对一些强金融属性(如企 业一个月内屡次申请贷款次数)、弱金融属性(如企业月收入余额)以及关联金融属性(如 企业申请借款时段)数据进行挖掘建模,最终实现企业违约概率的排序和评分等级。传统信用评估模型主要从以下5个方面考查用户的信贷资质信贷组合 争取新贷款信贷时长 付款历史 未偿债务传统信用评估模型经过数十年的沉淀开展,技术相对成熟稳定,以美国FICO评分为例, 曾促进美国房贷事业的飞速开展。但由于其依赖于金融数据本身,形成一个封闭式的模型 值填补、异常值删除、错误值处理。但是做数据建模,也不能跳过这步,那我就从操作手 法和操作目的两个方面来聊聊我认为怎么做数据清洗。
25、1缺失值数据缺失引起的原因多种多样,大致可以概括为IT系统原因、前端录入原因和接入征信公 司原因。 对于IT系统缺陷导致的数据缺失,在你无能为力的时候请尽快联系IT人员。 对于前端录入数据的缺失,通过逻辑匹配方式可以选择不同手段去填补。 对于接入征信公司原因导致某些第三方数据字段有缺失,那我们要理解这个缺失值的 内在含义,有些情况的缺失我们是不能去填补的,就作为missing存在。在做缺失值填补前,同学们应该先看看有哪些字段是缺失的,缺失比例如何,是否对我们 业务和模型有作用。如果这些缺失字段是不必要的,那我们没有必要花功夫去填补它们。2具体操作手法2.1 筛选出缺失的数据google或者ba
26、idu上能找到很多关于查找缺失值的小代码,大局部筛选逻辑按照数据类 型做分类筛选,运用数组和do循环,具体代码我就不展示在文章里了。黑猫白猫能抓住 老鼠的就是好猫。2.2 查看缺失比例,判断是否必要对筛选出缺失数据字段的missing数据集,通过观察缺失比例和建模产品的逾期率去判断 是否有必要做缺失值填补。比方,建模产品的逾期率比拟高,也就是建模样本里的坏样本比拟多,变量分箱的目的是 更希望将坏样本分到一个组里,这个时候一个分箱变量的缺失率很高,不管是做特征值替 换、线性插值、逻辑匹配填补或者作为MISSING处理,都容易造成分箱组里sample的 极端分布不均,这个时候如果你做并组,会造成分
27、箱区分度下降,如果你不做并组,这个 分箱变量会有不稳定的潜在隐患。 所以,对于逾期率高的产品建模,缺失比例高的话就不建议进入模型,同比,对于逾期率 低的建模产品,缺失率的容忍度就好了很多,具体这个balance的线在哪里,我提供一个 经验建议:如果逾期率大约40%以上,可接受的缺失比例在15%以下;如果逾期率大约8%以下,可接受的缺失比例在70%以下;更严谨的做法是每次建模时候根据我上面的逻辑去校验样本可接受缺失比例的balance point,然后判断哪些字段是需要继续操作,哪些字段可以直接舍弃。2.3 缺失值填补or not通过第二步我们已经知道哪些字段是可以继续操作下去的,这个时候我们就
28、要选择用什么 方法去对缺失数据处理。统计学上的缺失值处理常用手法有特征值(meanmedian.)替换、线性插值等,但实际 建模中更常用的是结合业务逻辑匹配,或者作为MISSING不做处理。举个例子,如果我们分析产品的业务线前端采集到了用户的身份证照片,这个照片不仅仅 可以用来ORC活体检测,身份证里的信息数据可以进行逻辑匹配填补诸如常住地、性 别、年龄等这些因为前段录入操作原因造成的数据缺失。比方我们的age这个字段有数据缺失,但是缺失比例是我们可接受范围内,此时我们就可 以通过身份证号的编码规那么来推断匹配这个申请客户的年龄,通过这种匹配方法填补的缺 失值往往更加能反响客户的真实信息。对于
29、接入不同征信公司造成的某些关键字段的数据缺失,同样缺失比例是我们可接受范围 内,这个时候就需要参考这个字段的衍生逻辑来选择用什么方法来填补,更多的做法是不 做缺失值填补,作为MISSING单独一组。7 .特征衍生造衍生变量是整个开发评分卡模型过程中最重要、最艰辛也最有趣的一个节点。最重要是因为衍生变量的好坏往往会影响评分卡模型的各种测评指标,决定策略的反欺诈 能力; 最艰辛是因为造衍生变量除了要基于业务变量理解之外还要开发人员大开脑洞组合基础变 量,有很多时候花了一天时间造好一两个衍生变量但最后都进不了模型,这个时候就又要 重新去开脑洞进行变量的组合。当然现在也可以结合一些算法比方DT、Ran
30、dom Forrest进行特征工程造衍生变量,但是 造好的变量是否可以进入评分卡模型以及是否容易在策略引擎上部署等问题又要反复校验(如果你公司是基于Python或那么R自主开发的strategy system ,那衍生变量的部署就 变的比拟方便);最有趣是因为造变量过程虽然艰辛,但造好变量进入模型上线部署的成就感是很强烈的。那么大家可能会问,到底如何造衍生变量呢?这里没有绝对方法,也需要你沉下心研究。既然我说了造衍生变量是一个开脑洞的活儿,每个人的脑洞又不一样,当然没有一个绝对 的逻辑或者公式去套用了。以下是我提供一些造变量的个人小技巧,希望可以帮助读者朋 友们翻开思想枷锁,造出变量IV较高的
31、好变量。 善用产品准入规那么变量,弱弱联合会变强; 多参考Strategy变量,往往有意想不到的效果; 风控核心防欺诈,设身处境去思考; 风控基本出发点是评估个人还款能力和还款意愿; 合理利用一些算法,省时省力又高效;.特征变量筛选在建模的过程中,通过变量交叉或者GBDT等算法可能衍生出成百上千个指标,然而最终 入模的往往只有十几个。那么这十几个变量是如何经过层层筛选出人头地的呢?在这 其中往往有很多层考量。1缺失率一个变量,如果缺失率过高,他所包含的信息往往也比拟少,做缺失值填补也会比拟困 难。同时该变量如果在建模样本中大量缺失,很可能投入生产后也是差不多的情况,那进 入模型也就没有太大的意
32、义了。2区分能力一般情况下,如果模型中加入过多的指标往往会比拟冗余,因此在有限个指标中要使模型 的效果更佳,自然需要挑选对坏样本识别能力较强的变量。通常的做法是计算每个变量的 IV值,或者单变量KS/AR值,并从大到小迸行排序,挑选排名前多少的变量,或者大于 一定阈值的变量。对于IV值较低的变量,他们本身能提供给模型的贡献也比拟少,剔除掉 也缺乏为惜了。3稳定性一个优秀的模型,除了能够很好的区分好坏样本以外,还需要足够的稳定,防止随着时间 的推移过快衰退的现象出现。因此模型中的每一个变量也需要足够的稳定。要进行判断, 可以计算不同时间切片之间该指标的PSI0比方说如果使用了 2018年全年的样
33、本作为建 模样本的话,可以将样本切分为上半年和下半年两局部,并计算每个指标在这两个局部间 的PSIO如果变量的PSI0.2 ,说明随着时间推移该变量的分布发生了很大的改变,那么 如果它成为了入模变量,往往会导致模型整体变得不稳定。4相关性/共线性一个指标光是自己表现的足够好也是没有用的,还要考虑它和所有其他自变量之间的团 队协作能力。一个优秀的团队,往往需要队员之间取长补短,各自分工,而不是大家擅 长的事物都一样,而短板却无人弥补。放在模型上面也是一样的道理。如果模型中的自变 量之间具有完全多重共线性,那么训练出来的系数便会失去统计学意义。即使是不完全共 线性,也会导致系数失真,从而导致模型的
34、效果无法到达预期。这个时候,如果单纯计算变量的VIF,虽然能检验共线性问题是否存在,但是却无法判断 应该保存哪些变量、剔除哪些变量。因此可以综合考虑单变量或多变量的AR值。举个例子,如果变量A同时和变量B、变量C存在较强相关性,而变量B和变量C相关性 较低,那么究竟应该保存A还是同时保存B和C呢?有一个比拟简单的思路,可以计算变 量A的单变量AR值,同时用变量B和变量C训练一个简易的逻辑回归模型,并计算这个 模型的AR值,通过比拟这两个单变量和模型的AR值来判断到底应该保存A还是B+C。 如果变量A的AR值比模型的AR值还高,就说明变量A的表现会优于B和C的综合表 现,可以名正言顺的剔除掉B和
35、C 了。5业务逻辑除了上面几点可以通过各种指标量化的筛选条件以外,业务逻辑也往往是一个不可忽视的 门槛。比方说学历这个指标,从直观上来看往往学历越高,信用风险就越低。因此在分箱的过程 中,各箱的坏样本率也需要符合这一趋势。否那么最后转换为标准评分卡后,低学历客户的 单项得分比高学历客户的还高,这显然是不合常理的。对于趋势与业务逻辑不一致的指 标,往往也会予以剔除,来满足评分模型的可解释性。这就是为什么常说,做模型一定要 将数据与业务相结合,光靠数据跑出来而没有业务做支撑的模型,往往也是不可靠的。6逐步回归逐步回归是一个不断往模型中增加或删除变量,直到找到最优的变量组合、新增变量不再 产生具有统
36、计显著意义的增量效应为止。一般来说,这就是指标筛选的最后一步了,如果 使用SAS进行逐步回归往往也能控制住入模变量的显著性,因此此时最需要注意的是模型 拟合出来的系数方向是否一致,如果出现不一致的情况,可以考虑在变量清单中剔除掉这 局部指标,重新进行逐步回归分析,直到系数方向一致为止。经过了这么多步骤的严格筛选,最终留下的入模指标都是整个指标池中的“佼佼者,肩 负着判断客户信用风险的“伟大使命。它们个人能力强,团队协作也足够优秀,同时还 非常稳定,才能让各路违约风险无处遁形。9 .模型变量分箱在搭建逻辑回归评分卡模型的时候,大多数步骤都可以用打包好的函数或代码快速实现, 而最需要人工干预的步骤
37、就是分箱。毕竟程序再厉害,也不可能懂你的业务逻辑,不会知 道怎样的趋势才是符合实际的。因此,建模er经常会花费大量的时间在调整每个变量的分 箱上。有的时候调整的方向正确的话,最终模型的K-S值甚至可能有从0.35到0.4的变 化。在R语言中,想要知道决策树的最优分箱切点,只需要一个函数: library (smbinning)smbinning (df, FLAG, Variable, p = 0.05)其中,df是指标所在的数据集,FLAG是二分类的目标变量,Variable是需要进行分箱的 指标名字,p是指每一箱里至少有多少比例的样本,取值范围为00.5。然而光是知道了决策树的最优分箱切点
38、,每一箱的好坏比趋势却不一定符合业务逻辑,这 个时候可能就需要根据经验人为的去调整分箱切点。同时,如果好坏样本本身并不均衡, 坏样本占比过少,还可能会报No significant splits的错误。既然程序没方法给你答 案,就只能自己寻找答案了。除了最优分箱,smbinning包中还可以自己输入分箱切点来查看每一箱的好坏样本分布情 况:smbinning.custom (df, FLAG, Variable, cuts)除了最后的cuts参数,其他的都和smbinning是一致的。那么显而易见,cuts就是我们 分箱的切点了,用向量c()的形式表达即可。在人工调整分箱的时候,需要注意的地方
39、有: 每个分箱之间的好坏比要有一定差异; 每一箱中的样本数量不能过少; 分箱的好坏比趋势要与业务常识保持一致; 分箱切点的取值要符合业务常识。具体人工分箱的切点如何选取,这个就比拟因人而异了。可以在最优分箱的基础上进行调 整,也可以等频或等距分箱后参考好坏比趋势进行合并和调整。10 .模型拟合逻辑回归拟合模型,我主要聊逻辑回归的变量选择方法模型建立的主要工作就是变量选择,一般统计分析软件(比方SAS、Python等)的 logistic回归程序都提供自动变量选择的功能,包括了前向逐步(Forward Stepwise )回 归、后向逐步(Backward Stepwise )回归和混合逐步(C
40、ombined Stepwise )回归。他们三者有什么差异,我该如何选择变量选择方法呢?1 前向逐步(Forward Stepwise )回归顾名思义,FS ( Forward Stepwise )回归是让所有建模指标变量一个一个地进入回归方 程,按照预先设定的显著性检验标准,最显著的指标变量最先进入,然后其次就是次显著 的指标变量进入,依次类推。2 后向逐步(Back Stepwise )回归明白了 FS回归,BS回归就很容易理解。它的逻辑是首先让全部指标变量都进入回归方 程,按照预先设定的显著性检验标准,把不显著的变量逐一剔除。3 混合逐步(Combined Stepwise )回归CS
41、回归是融合FS和BS回归的优缺点,提出的一种变量选择方法,它的原理如下:按照 预先设定的显著性检验标准,逐步加入或者剔除指标变量,可以由前向逐步回归开始,也 可以由后向逐步回归开始,例如由前向逐步回归开始,当新指标变量进入时,如果老指标 变量不满足预先设定的标准可以后向剔除,而比照前向逐步回归,变量一旦进入,就不再 退出。说白了,CS回归就是指标变量有进有出,不停迭代比照指标变量对预测结果的有效显著 性。我们在评分模型变量选择方法上,经验建议优先选择Combined Stepwise ,其次是 Forward Stepwiseo11.模型评估常用指标对于训练出来的Score Model ,需要
42、一系列指标对Model进行关于稳定性、区分能力等 效用来度量。1KSKS曲线是一种表示评分卡有效性的可视化工具,基于经验累积分布函数(ECDF)画出好客户和坏客户在分数区间上的累积分布。retain_bad_pct。retain_bad_pctretain_good_pctKS统计量就是两条曲线垂直距离绝对值最大的距离,所以KS取值范围为0,1。上图中40分处KS曲线绝对值距离到达最大(72%-36% )KS=Max|retain_bad_pct - retain_good_pct|我认为对于评分模型的KS取值应有如下要求: KS0.2模型的区分能力不高,价值不大;0.2 = KS0.4 一般
43、金融机构开发的评分模型KS大局部都集中在这个区间内,行为 评分模型的KS会更高一点,相对于KS0.2的评分模型,此时的评分模型已经具备 一定的区分能力,模型具有一定的使用价值,此时可以结合其他指标继续观察调优模 型; 0.4 = KS0.7模型好的难以令人置信,可能在变量中加入了业务目标衍生指标,需要对模 型特征工程进行排查。KS统计量简单易懂,实际上可能又过于简单。KS距离最大处的分数可能与实际应用中切 分点没有直接关联,尤其是当分数离当前最大KS对应分数(比方上图40 )很远的时候, KS指标的重要性就越发不明显。由于KS是两条曲线垂直距离绝对值最大的距离,因此使用KS时也要注意,当评估一
44、个评 分模型随时间的变化时,除了要保证好快定义、结果期相同,还要确保相同的分数切分 点、申请政策规那么的一致或者最基本的相似,这样使用KS指标的评估才有科学依据。使用主流统计分析软件计算KS指标并画出KS曲线:1. SAS (计算 KS )*KS;proc nparlway data=&outdata. noprint d;class target;var P_l;output out=result.total_KS(keep=_D_ P_KSA RENAME=(_D_=KS); run;PYTHON fpr, tpr, thresholds roc_curve(y_test,y_test_p
45、roba:,1, pos_label 1) auc_score = auc(fpr,tpr) w = tpr - fpr ks_score = w.max()ks_x = fprw.argmax() ks_y tprtw.argmax() fig,ax = plt.subplots() ax.plot(fprftprflabel-AUC=%.bf1 auc-score) ax.set_title(Receiver Operating Characteristic1) ax.plot(0f 1, 0f lf color (0.6f 0.6f 0.6) ax.plot(ks_xfks_x/ ks_
46、x,ks_yf 11, color 1 red1) ax.text(ks_x,(ks_x ks_y), 2,1 KS=%.5f1 ks_score) ax.legend0 fig.show()Rlibrary(smbinning) library(reshape) library(pROC) library(ggplot2) library(psych)data read.csv(/Users/jackieliang/Desktop/traindata.csv) b data b g data gKS max(b g)accumulative_percentage c(g,b)score_gr
47、oup factor(rep(seq(0,10,1),2)classification c(rep(good,11),rep(bad,11)dataset data.f rame(score_group,classification,accumulative_percentage)plot_ks ggptot(dataset,aes(x score_group,y accumulative_percentage,colour classification,group classification) geom_line(size 1) labs(title K-S) theme(plot.title element_text0.5)plot_ksGINI