评估信用评级模型,反思K-S指标

2015-12-05 KPMG大数据团队 KPMG大数据挖掘

“信用评级”的概念听起来可以十分直截了当。比如一天早上你接到电话,有个熟人跟你借钱,而你将在半睡半醒间迅速做出决定:借,还是不借。在灵光闪现的一秒里,你或许考虑了对方的脾气秉性、经济实力、家庭住址、种种黑白历史……但最终,你面对的是一道只有两个选项的单选题,并需要承担选择的后果,这就是一种最简单的“评级”。商业银行对待申请借贷的客户也类似。为了控制不良贷款、避免损失,银行需要提前对客户进行信用评级。当然,主观评价客户缺乏操作性,这时就需要建立某种信用评级模型,利用数据将客户划分为“好客户”和“坏客户”,即守信客户和违约客户。

信用评级模型已经有了五六十年的实践应用历史,也在不断发展的过程中逐渐建立了相对较全面的评价体系。衡量信用评级模型是否强大的关键,是其区分好坏客户并进行正确排序的能力。根据业内经验,我们可以通过考察模型对客户按风险排序的结果与实际发生违约的结果之间的一致性来判断模型的准确性。在有效的情况下,模型会赋予那些容易违约的客户低评分值,同时赋予那些不易违约的客户赋予评分值,从而体现模型的区分能力:区分能力越高则说明模型越好,反之则说明模型越差。

根据这一原理,在信用评分模型的评价准则中,K-S统计量由于计算简便、易于理解,而成为少数几个被广泛使用的评价指标之一。本文将介绍K-S统计量及其存在的缺陷,并提出“AUKS统计量”作为一种新的评价标准,希望能为银行的信用评级业务及其他相关实践提供新思路。

K-S统计量来源于两样本Kolmogorov-Smirnov检验,这是一种非参数检验,用于检验两个一元概率分布是否相同。K-S统计量度量了两个分布之间的最大垂直距离,即

两样本K-S检验主要考察两个样本是否服从同一个分布,这一点被借鉴为信用评级模型的评判标准。信用评价模型的输出结果可认为是事件发生的概率。如果坏客户预测值的经验分布显著区别于好客户预测值的经验分布,说明信用评级模型分派给了好客户和坏客户显著不同的估计值。K-S统计量就等于好客户和坏客户的的经验分布间的最大距离。如果两个分布显著不同,则可以认为模型的K-S统计量足够区分申请人是否会成为坏客户。如下图所示:

如何评估一个信用评级模型的效果呢?我们必须选择一个验证样本,这个样本不同于创建模型的建模样本。和建模样本一样,验证样本中的一条观测代表一个客户,其中的因变量Y和输入变量X的值都是已知的。在验证模型的时候,首先会用待检验的模型来预测验证样本中每一个客户的或者信用评分。如果以K-S统计量作为模型优劣的评判标准,这个值就可以根据验证样本中每个客户的或者评分计算出来。把这些或者评分从低到高排序,然后等分成若干个组(通常为20组或者10组),每一组都会包含好客户和坏客户,因为模型的错误分类是不可能避免的,任何一个评分模型不可能给所有的坏客户绝对的低分所有的好客户绝对的高分。但是,一个好的模型能够保证坏客户的评分相对比较低而好客户的评分相对比较高,即好的模型能保证有更多的和谐对。上图中,虚线表示好客户的的经验分布,实线表示坏客户的的经验分布。两个经验分布之间的最大距离就是K-S统计量。K-S统计量的值越大,两个区别越显著,评分模型给出的评分越合理。因此,K-S统计量可以作为信用评分模型的评判标准,在实际操作中也较为方便,SAS中的NPAR1WAYProcedure和EM模块及R语言中的基本软件包stats都可以用来计算该指标。

然而,K-S统计量也存在相当显著的缺陷。K-S统计量仅仅从一个点来衡量两个分布的差异,其稳定性必然不足。我们曾设计验证方案,参考另一个常用指标AUC统计量,对样本量5960的验证样本进行多次抽样,并用每一个抽取出来的样本做模型验证计算K-S统计量和另一常用指标AUC统计量来检查它们的稳定性。最终,我们发现,K-S统计量的变异系数远远大于AUC统计量的变异系数。

要增加稳定性,最好的方法莫过于将距离变为面积,将局部推广到整体。为此,我们设计了一个新统计量:K-S曲线下的面积(Area under the K-S curve),可以简写为AUKS。

,可以假设,则

与K-S统计量相比,AUKS统计量的优点在于:从整个评分的取值域而不是一个点来检验模型的优劣,具有更好的稳定性,对样本量的依赖程度相对较低。我们用两个统计量对评价模型进行了验证,在模拟实验中,与K-S统计量相比,AUKS统计量始终有更加稳定的均值、更小的标准差和更小的变异系数,作为信用评分模型的评价指标具有更好的稳定性。

在信用评分领域的多年实践工作中,业内已经创造并总结了一套较为全面的评价标准,这些标准互为补充,大体能保证信用评价模型的应用价值。然而,这些标准、指标和统计量仍存在缺陷,需要我们根据实际情况不断加以修正、改进,继续完善这一评价标准体系。相信AUKS统计量将成为一种有价值的新指标。

 

反思K-S指标(KPMG大数据挖掘)的更多相关文章

  1. 顶尖大数据挖掘实战平台(TipDM-H8)产品白皮书

        顶尖大数据挖掘实战平台 (TipDM-H8)           产  品  说  明  书 广州泰迪智能科技有限公司 版权所有 地址: 广州市经济技术开发区科学城232号 网址: http: ...

  2. 机器学习——十大数据挖掘之一的决策树CART算法

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第23篇文章,我们今天分享的内容是十大数据挖掘算法之一的CART算法. CART算法全称是Classification ...

  3. NLPIR大数据挖掘平台新增敏感词扫描功能

    在网络日益发达的现在,也伴随着有益信息与造成不稳定因素的信息也随之日益泛滥,为了网民的思想健康,也为了社会的和谐,在许多对外公共场合下,有些内容是要经过审查才能显示的.在网络审查初期,都是通过人工审核 ...

  4. Hadoop大数据挖掘从入门到进阶实战

    1.概述 大数据时代,数据的存储与挖掘至关重要.企业在追求高可用性.高扩展性及高容错性的大数据处理平台的同时还希望能够降低成本,而Hadoop为实现这些需求提供了解决方案.面对Hadoop的普及和学习 ...

  5. 31页PPT:基于Spark的移动大数据挖掘

    31页PPT:基于Spark的移动大数据挖掘 数盟11.16 Data Science Meetup(DSM北京)分享:基于Spark的移动大数据挖掘分享嘉宾:张夏天(TalkingData首席数据科 ...

  6. 图说十大数据挖掘算法(一)K最近邻算法

    如果你之前没有学习过K最近邻算法,那今天几张图,让你明白什么是K最近邻算法. 先来一张图,请分辨它是什么水果 很多同学不假思索,直接回答:“菠萝”!!! 仔细看看同学们,这是菠萝么?那再看下边这这张图 ...

  7. 玩转大数据:深入浅出大数据挖掘技术(Apriori算法、Tanagra工具、决策树)

    一.本课程是怎么样的一门课程(全面介绍) 1.1.课程的背景           “大数据”作为时下最火热的IT行业的词汇,随之而来的数据仓库.数据分析.数据挖掘等等围绕大数据的商业价值的利用逐渐成为 ...

  8. 1 python大数据挖掘系列之基础知识入门

    preface Python在大数据行业非常火爆近两年,as a pythonic,所以也得涉足下大数据分析,下面就聊聊它们. Python数据分析与挖掘技术概述 所谓数据分析,即对已知的数据进行分析 ...

  9. 大数据挖掘: FPGrowth初识--进行商品关联规则挖掘

    @(hadoop)[Spark, MLlib, 数据挖掘, 关联规则, 算法] [TOC] 〇.简介 经典的关联规则挖掘算法包括Apriori算法和FP-growth算法.Apriori算法多次扫描交 ...

随机推荐

  1. hdu 1671&& poj 3630 (trie 树应用)

    Phone List Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25280   Accepted: 7678 Descr ...

  2. React高阶组件 和 Render Props

    高阶组件 本质 本质是函数,将组件作为接收参数,返回一个新的组件.HOC本身不是React API,是一种基于React组合的特而形成的设计模式. 解决的问题(作用) 一句话概括:功能的复用,减少代码 ...

  3. tcpdump抓取udp报文

    使用tcpdump命令抓取UDP 2000端口报文,并将报文保存到当前目录下的udp.cap文件,命令如下: tcpdump -i 网络接口名称 udp port 2000 -w ./udp.cap ...

  4. git解决冲突的最佳方法

    用eclipse egit 去pull 代码出现冲突 点击details  全选复制到记事本上 如上图选择3个冲突中的一个   eclipse快捷键  ctrl + shift+R  张贴   回车 ...

  5. NOIP模拟 7.04

    魔术球问题弱化版(ball.c/.cpp/.pas) [题目描述] 假设有 n 根柱子,现要按下述规则在这 n 根柱子中依次放入编号为 1,2,3,…的球. (1)每次只能在某根柱子的最上面放球. ( ...

  6. C++ 浮点数 为 0 的判断

  7. python 使用自定义的类方法

  8. bzoj1800 飞行棋

    脑筋急转弯. 提示:矩形矩形矩形.O(n)O(n)O(n). 再提示:直角. 再提示:直径. 代码: //Serene #include<algorithm> #include<io ...

  9. 1.27eia原油

  10. 仔细看看Javascript中的逻辑与(&&)和逻辑或(||)

    学过Java和C的人,都知道逻辑与(&&)和逻辑或(||),他们都是短路运算符,也就是说,对于&&来说,只要左边的操作数是false,它就不会再去判断右边的操作数是tr ...