分计算iv值_一文读懂评分卡的IV、KS、AUC、GINI指标

前言:

当一张评分卡构建完成时,筛选出一组特征生成了分数,我们会想要知道这个分数是否靠谱,即是否可以依赖这个分数将好坏客户区分开来,这个时候就需要评判评分卡有效性的指标。

测量评分卡好坏区分能力的指标有许多,本文就为大家介绍几个常用的定量指标:

1. 散度(分数为连续函数)与信息比率(IV);

2. KS值

在这篇文章当中,花了极大的笔墨从数学的角度证明了KS值的存在性和函数性质问题:

2a77361afd0148ca72c8193822f54180.png

  • 为什么F(s|B)为凹函数、F(s|G)为凸函数?

  • 为什么F(s|B)-F(s|G)存在极大值(最大值)?

  • 为什么F(s|B)曲线在F(s|G)曲线之上?

3. ROC曲线、AUROC值与GINI系数。

----------------------------------------------------------------------------------

一、 散度与IV值

1.1 散度

散度为信息比率的连续版本。而评分卡分数是基于有限样本计算出的分数分布,并不一定是完全连续函数,所以就衍生出了离散版本的散度----信息比率IV。

49782d7e831132ef2291007a57c5ca8f.png

c4edc76ab96f9bf2efc7057b9b403003.png

1.3 IV值的应用

在实际应用当中,IV值通常用来筛选变量,IV值越大,该变量的好坏区分能力越强。在评分卡建模的过程中,利用IV值筛选变量也是非常重要的一个环节。

从IV值的公式中,易得变量的分组越多,IV值越大。但是分组分的太多,就会使得每个分组的数据量变少,导致细项分组的分布不稳定。所以,我们在使用IV值筛选变量的时候,不能为了提高IV值一味地将分箱的数目提高,也要兼顾变量的业务含义和分布的稳定性。

实际计算过程如下表:

3182aa99596495739d937a23d2889e78.png

----------------------------------------------------------------------------------

86d79bd632b481bbd840f5950d598dfd.png

如下图所示,KS统计量是F(s|G)和F(s|B)间距离最大的那条红线的长度。

3141364002ea2fe615d0e00d1aeaa2fb.png

仔细观察图形,存在如下两个问题:

1. 为什么F(s|B)为凹函数、F(s|G)为凸函数?

2. 为什么F(s|B)-F(s|G)存在极大值(最大值)?

3. 为什么F(s|B)曲线在F(s|G)曲线之上?

在解释这3个问题之前,让我们先来做个完美假设:

上述图形描述的是一个理想的评分卡系统的好坏客户累计分布情况:即分数越高,好客户占比越大,分数越低,坏客户占比越小。

理想假设:假设存在一个完美的评分卡,使得随机变量score分别在好客户下的条件概率分布函数f(s|G)严格单调递增、即分数越高,f(s|G)=P(score=s|G)的概率越来越大,在坏客户下的条件概率分布函数f(s|B)严格单调递减,即分数越低,f(s|B)=P(score=s|B)的概率越来越大。

16e1bb17281a4150e7495903a632f6b3.png

5fbd8bf04e6c5400ca7c2a5dc99a834f.png

a6e90c9d642991df99049c795aeee974.png

1dfb43298beff8ccd3ba6b9fea5528f1.png

现在,我们来看在实际应用当中的计算过程,如下表:

3146f6bc9d0445dbf5dac9460d0e8e29.png

----------------------------------------------------------------------------------

三、 ROC曲线与AUROC值;

3.1. ROC曲线

ROC曲线也是评分卡度量指标中常用的指标工具,在介绍KS统计量的时候,其分布函数是由好客户和坏客户对应的累计概率密度函数F(s|B)与F(s|G)随着分数s变化的图形,而ROC曲线是好客户的累计概率密度相对于坏客户的累计概率密度函数的图形,如下图所示:

59d8049d2587d2c6a5348cf1ce110a10.png

09b003da51c977254fdfc2fb9f29175a.png

c6f79c75eda6746a0ac2205c54829814.png

19305f32388355684eab0db753a161b7.png

b4e27701385ed2b4ff7f173d50d912aa.png

-------------------------------------------End-----------------------------------

0

165e1035bbc5c4a4e526d75d48de4545.gifdde187be00b76545a038588eb8f40c66.gif165e1035bbc5c4a4e526d75d48de4545.gif

热爱生活,热爱学习。

永远年轻,永远热忱

知乎:金融建模

微信号:cutewendan

公众号:风控汪的数据分析之路

fd69be48e3e9fe875ac9151465c29e2c.png0fa4744232226986b3a23e7592572ebe.pngb7b7a62be390b60e3bb9925ae84c7947.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 层_mysql三层体系

为什么有连接池和线程池?每创建一个新的会话(或链接),mysql内部创建一个新的用户线程来提供服务,当连接被销毁,线程也被销毁.即一个连接有一个线程.这种创建链接和销毁链接都会消耗cpu性能.为了降低这种消耗,有了连接池和线程池.连接池(connection pool)&#xff1a…

react登录页面_React 实现路由拦截

接到个新项目,使用的是React,由于React没有属于自己的路由拦截方法,只有自己封装Route成高阶组件来实现,现记录下实现的方式:首先创建一个router文件,引入项目需要展示的组件 。export const routes [{pat…

mysql 严格模式查看,如何查找和禁用MySQL严格模式?

Hello everybody I wanted to find this mysql strict mode for whmcs and disable it but i didnt had a progressIm a newbie so sry if I didnt mention other thingsCan anyone help me?Im working on WHM/Cpanel解决方案To turn off (or on) mysql strict access from cp…

linux 查找文件夹_用python打造一个基于socket的文件(夹)传输系统

这段时间在学习python,接触到了网络编程中的socket这块,加上自己在用的Linux服务器都是原生支持python的,于是乎有了个做文件传输功能程序的想法。毕竟python语言中,有下载功能的框架一抓一大把,但是主机与主机间快速搭…

mysql gtid 备份恢复_MySQL基于gtid特性与xtrabackup的数据恢复

一、gtid特性介绍:GTID(global transaction identifier)是MySQL 5.6的新特性,可以唯一的标识一个事务,由UUIDTID组成:UUID是MySQL实例的唯一标识TID是该实例上已提交的事务的数量在主从复制中,GTID代替了classic的复制…

编码gbk的不可映射字符_Python基础:编码表和字符的故事

在计算机内部,都是每8位组成的一个个字节,比如我们使用"abc".encode()把abc转化成二进制byte类型,注意byte是不可变类型: 编码过程>>> abc.encode() # 把str字符变为bytes字节类型;字符是一个个连接…

java mysql数据库编程_java JDBC数据库(mysql)编程

什么是JDBC• JDBC(Java Data Base Connectivity,Java数据库连接)• 是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问• 它由一组用Java语言编写的类和接口组成JDBC访问数据库步骤• 1:加载一个Driver驱动要通过JDBC与数据库连接&#xf…

python数据分析包pandas_Python 数据分析包:pandas 基础

pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 类似于 Numpy 的核心是 ndarray,pandas 也是围绕着 Series 和 DataFrame 两个核心数据结构展开的 。Series 和 DataFrame 分别对应于一维的序列和二维的表结构。pandas 约定俗成的导入方法如下&…

mysql 查询分析器中使用if_查询分析器中开发代码测试检查_MySQL

如果您像我一样,则可能已经花费了很多时间在查询分析器中开发代码。在您对代码感到满意之后,可以立即对开发服务器上的测试数据库运行一个或两个专设 测试。如果看起来没有什么问题,您便可以将代码投入生产。如果这是一段关键代码&#xff0c…

python文本清洗_【python】TXT文本数据清洗和英文分词、词性标注

删除空白行def clean_line (raw_file_name save_file_name):张开(raw_file_name, r )作为f_r,开放(save_file_name, w ) f_w: f_r_list 列表(设置(f()))在f_r_list句子:如果句子 \u201C\\ n\u201D: f_r_(句子)f (f_r_list)阅读文本的每一行作为一个列表,然后使用一组集合来删除…

centeros6.8 mysql_centeros7安装mysql8,以及设置root密码

2.点击下载后,在下载页面选择操作系统3.点击下载rpm文件,拿到这个下载链接4.移除mariadb数据库yum remove mariadb-libs.x86_645.进入到/tmp目录使用wget下载wget https://repo.mysql.com//mysql80-community-release-el7-2.noarch.rpm6.安装mysql的源yu…

mysql 中文字段名_MySQL全文索引怎么做?| 教程分享

- 点击上方“爱数据学习社”关注我们吧! -文末领取【商业分析资料】为什么要用全文索引我们在用一个东西前,得知道为什么要用它,使用全文索引无非有以下原因:like查询太慢、json字段查询太慢(车太慢了)没时间引入ElasticSearch、S…

centos php mysql 5.6 安装_centos 6.8 yum安装 PHP 5.6

1.检查当前安装的PHP包。yum list installed | grep php2.如果有安装的PHP包,先删除他们。先复制到文本中,编辑成一行,在执行。yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64php-mbstring.x86_64 p…

leftjoin多个on条件_MYSQL|为什么LEFT JOIN会这么慢?

之前谈了怎样后台导出SAP序时账,因为导出的序时账数据量较大(3家主体公司,2017-2020年的数据),用了数据库MYSQL中的LEFT JOIN 来处理连接多表汇总数据,查询太慢啦,后来沦落到用手工分年来汇总数据,然后再导…

python 画布包括不了全部组件?_试验程序:画布版九键琴

近期有读者询问如何制作出滑动琴键连续发出声音的程序,他尝试用一排按钮充当琴键,但每次滑动只能触发一个按钮的点击事件,因此也只能发出一个声音。我提示他用画布替代按钮,他希望给予更具体的提示,于是我索性自己做了…

c 子类对象 访问父类对象受保护成员_06-JavaSe面向对象

一.static1.它是一种修饰符2.使用位置:它用来修饰成员变量和成员方法static修饰成员变量,叫类变量;static修饰成员方法,叫类方法;类成员类变量类方法没有使用static修饰成员变量,叫实例变量;没有…

keil中断函数的写法_在 KeilC里,中断子程序与函数有何不同?( )_学小易找答案

【单选题】8051单片机共有( )个中断优先级【单选题】对定时器 0 进行关中断操作,需要复位中断允许控制寄存器的: ( )【多选题】真理向谬误转化的原因,主要在于( )【多选题】“批判的武器当然不能代替武器的批判,物质的力量只能用物质的力量来摧毁,理论一经群众掌握,也会变成物质…

c++ stack 遍历_C/C++内存分配!

一、预备知识—程序的内存分配一个由c/C编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)…

python读取oracle数据到hvie parquet_关于sparksql操作hive,读取本地csv文件并以parquet的形式装入hive中...

说明:spark版本:2.2.0hive版本:1.2.1需求: 有本地csv格式的一个文件,格式为${当天日期}visit.txt,例如20180707visit.txt,现在需要将其通过spark-sql程序实现将该文件读取并以parquet的格式通过外部表的形式…

el-date-picker设置默认日期_程序员必备:Java 日期处理的十个坑

前言整理了Java日期处理的十个坑,希望对大家有帮助。一、用Calendar设置时间的坑反例:Calendar c Calendar.getInstance();c.set(Calendar.HOUR, 10);System.out.println(c.getTime());运行结果:Thu Mar 26 22:28:05 GMT08:00 2020解析&…