原标题:Python评分卡建模—卡方分箱

今天主要给大家讲讲卡方分箱算法ChiMerge。先给大家介绍一下经常被提到的卡方分布和卡方检验是什么。

一、卡方分布

卡方分布(chi-square distribution, χ2-distribution)是概率统计里常用的一种概率分布,也是统计推断里应用最广泛的概率分布之一,在假设检验与置信区间的计算中经常能见到卡方分布的身影。

卡方分布的定义如下:

若k个独立的随机变量Z1, Z2,..., Zk 满足标准正态分布 N(0,1) , 则这k个随机变量的平方和:

为服从自由度为k的卡方分布,记作:

或者记作

二、卡方检验

χ2检验是以χ2分布为基础的一种假设检验方法,主要用于分类变量之间的独立性检验。

其基本思想是根据样本数据推断总体的分布与期望分布是否有显著性差异,或者推断两个分类变量是否相关或者独立。

一般可以设原假设为 :观察频数与期望频数没有差异,或者两个变量相互独立不相关。

实际应用中,我们先假设原假设成立,计算出卡方的值,卡方表示观察值与理论值间的偏离程度。

卡方值的计算公式为:

其中A为实际频数,E为期望频数。卡方值用于衡量实际值与理论值的差异程度,这也是卡方检验的核心思想。

卡方值包含了以下两个信息:

1.实际值与理论值偏差的绝对大小。 2.差异程度与理论值的相对大小。

上述计算的卡方值服从卡方分布。根据卡方分布,卡方统计量以及自由度,可以确定在原假设成立的情况下获得当前统计量以及更极端情况的概率p。如果p很小,说明观察值与理论值的偏离程度大,应该拒绝原假设。否则不能拒绝原假设。

三、卡方检验实例

某医院对某种病症的患者使用了A,B两种不同的疗法,结果如表1,问两种疗法有无差别?

表1 两种疗法治疗卵巢癌的疗效比较

组别

有效

无效

合计

有效率(%)

A组

19

24

43

44.2

B组

34

10

44

77.3

合计

53

34

87

60.9

可以计算出各格内的期望频数。

第1行1列: 43×53/87=26.2

第1行2列: 43×34/87=16.8

第2行1列: 44×53/87=26.8

第2行2列: 4×34/87=17.2

先建立原假设:A、B两种疗法没有区别。根据卡方值的计算公式,计算:

算得卡方值=10.01。

得到卡方值以后,接下来需要查询卡方分布表来判断p值,从而做出接受或拒绝原假设的决定。

首先我们明确自由度的概念:自由度k=(行数-1)*(列数-1)。 这里k=1.然后看卡方分布的临界概率表,我们可以用如下代码生成:

import numpy as np

from scipy.stats import chi2

import pandas as pd

# chi square distribution

percents = [ 0.95, 0.90, 0.5,0.1, 0.05, 0.025, 0.01, 0.005]

df =pd.DataFrame(np.array([chi2.isf(percents, df=i) for i in range(1, 30)]))

df.columns = percents

df.index =df.index+1

pd.set_option('precision', 3)

df

查表自由度为1,p=0.05的卡方值为3.841,而此例卡方值10.01>3.841,因此 p < 0.05,说明原假设在0.05的显著性水平下是可以拒绝的。也就是说,原假设不成立。

四、ChiMerge分箱算法

ChiMerge卡方分箱算法由Kerber于1992提出。

它主要包括两个阶段:初始化阶段和自底向上的合并阶段。

1.初始化阶段:

首先按照属性值的大小进行排序(对于非连续特征,需要先做数值转换,比如转为坏人率,然后排序),然后每个属性值单独作为一组。

2.合并阶段:

(1)对每一对相邻的组,计算卡方值。

(2)根据计算的卡方值,对其中最小的一对邻组合并为一组。

(3)不断重复(1),(2)直到计算出的卡方值都不低于事先设定的阈值,或者分组数达到一定的条件(如最小分组数5,最大分组数8)。

值得注意的是,小编之前发现有的实现方法在合并阶段,计算的并非相邻组的卡方值(只考虑在此两组内的样本,并计算期望频数),因为他们用整体样本来计算此相邻两组的期望频数。

下图是著名的鸢尾花数据集sepal-length属性值的分组及相邻组的卡方值。最左侧是属性值,中间3列是class的频数,最右是卡方值。这个分箱是以卡方阈值1.4的结果。可以看出,最小的组为[6.7,7.0),它的卡方值是1.5。

如果进一步提高阈值,如设置为4.6,那么以上分箱还将继续合并,最终的分箱如下图:

卡方分箱除了用阈值来做约束条件,还可以进一步的加入分箱数约束,以及最小箱占比,坏人率约束等。

来源|数据分析sas和python返回搜狐,查看更多

责任编辑:

卡方 python_Python评分卡建模—卡方分箱相关推荐

  1. 信用评分系统运行原理中篇-分箱逻辑

    前言 本篇承接上篇 信用评分系统运行原理上篇 分箱逻辑比较复杂 设计到很多的算法 为了确保分析的准确性 我通过pycharm编译器Debug的方式跑这段代码 一步一步的分析代码的实现逻辑 编译器环境的 ...

  2. 特征离散化(一) 之 卡方分箱

    特征离散化(一) 之 卡方分箱 特征离散化(二) 之 Chi2分箱 特征离散化(三) 之 最小熵分箱 特征离散化(四) 之 bestKS分箱 特征离散化(五) 之 评分卡最优分箱 离散特征在数据挖掘的 ...

  3. 风控场景下的常用特征分箱介绍:BestKs分箱、卡方分箱、聚类分箱等

    介绍分箱方法之前,首先要了解为什么分箱? 分箱的好处: 1.分箱后的特征对异常数据有更强的鲁棒性.比如年龄中有一个异常值为300,分箱之后就可能划到>80这一箱中,而如果直接入模的话会对模型造成 ...

  4. python评分卡建模-卡方分箱(2)之代码实现

    卡方值计算 计算卡方值的函数需要输入numpy格式的频数表.对于pandas数据集,只需使用pd.crosstab计算即可,例如变量"总账户数" 与 目标变量 "是否坏客 ...

  5. python评分卡建模-卡方分箱

    今天主要给大家讲讲卡方分箱算法ChiMerge.先给大家介绍一下经常被提到的卡方分布和卡方检验是什么. 一.卡方分布 卡方分布(chi-square distribution, χ2-distribu ...

  6. python卡方分箱_Python评分卡建模—卡方分箱

    为服从自由度为k的卡方分布,记作: 或者记作 . 二.卡方检验 χ2检验是以χ2分布为基础的一种假设检验方法,主要用于分类变量之间的独立性检验. 其基本思想是根据样本数据推断总体的分布与期望分布是否有 ...

  7. 逻辑回归预测事件发生的概率_通过逻辑回归,对信用卡申请数据使用卡方分箱法预测违约率建模...

    一. 建模步骤 (1)从数据中衍生特征 (2)对类别型变量和数值型变量进行补缺 (3)基于卡方分箱法对变量进行分箱 (4)WOE编码后的单变量分析与多变量分析 (5)应用逻辑回归模型 (6)尺度化 ( ...

  8. 特征工程之特征分箱(决策树分箱、卡方分箱、bestks以及评价标准WOE和IV)

    特征工程之特征分箱:决策树分箱.卡方分箱.bestks以及评价标准 1.WOE和IV 2.无监督分箱 2.1等频分箱 2.2等距分箱 3.有监督分箱 3.1决策树分箱 3.2best-ks分箱 3.3 ...

  9. python卡方分箱_机器学习(十六)特征工程之数据分箱

    1 分箱简介 数据分箱(也称为离散分箱或分段)是一种数据预处理技术,用于减少次要观察误差的影响,是一种将多个连续值分组为较少数量的"分箱"的方法. 例如,例如我们有一组关于人年龄的 ...

最新文章

  1. 什么是智能医院?如何构建自己的解决方案?
  2. CSS教程:div垂直居中的N种方法以及多行文本垂直居中的方法
  3. 鸿蒙开发-使用fetch发起网络请求
  4. 《软件需求分析(第二版)》期中考试试题总结/复习资料
  5. Cesium.js点击事件
  6. 学python编程好就业吗_学好python编程就业真的没有压力吗?
  7. java 文件读写 中文_java读写中文文件
  8. 国家地表水水质自动监测站坐标每四小时数据(共1952个监测站,含省份、城市、河流、流域、断面名称、监测时间、水温、pH、DO、CODMn、TP、TN、NH3-N、浊度等)
  9. 基于FBX SDK的FBX模型解析与加载 -(一)
  10. JavaExcel模板下载(多sheet)
  11. 灵遁者句子:意识从物质诞生那一刻起,就诞生了
  12. HTML+CSS css3电子杂志画册3D翻页切换动画特效
  13. 【安卓R 源码】获取音频焦点和释放音频焦点
  14. ABCD过桥题的规律
  15. opencv读图的坐标系转换问题
  16. 基于MATLAB的filter的使用,低通、带通和高通滤波器设计
  17. 你想象不到的工业智能协议网关还可以这样用
  18. Apsara Stack 同行者专刊 | 怀同行之心,筑信任之基,践数智之行
  19. C语言程序设计(基础篇)
  20. 创建型模式:单例模式

热门文章

  1. c语言题目集-田队写长单词
  2. linux 命令rsss,[译] linux内存管理之RSS和VSZ的区别
  3. 命令行 笔记本键盘禁用_宏碁发布Enduro系列三防笔记本电脑和平板电脑
  4. Java黑皮书课后题第4章:*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上面的三个随机点,显示由这三个随机点组成的三角形的三个角的度数
  5. AngularJS中自定义过滤器
  6. 项目第一天--ElementUI介绍
  7. C#委托的定义 以及使用方式详解,更简单的理解委托。
  8. (转)Linux内核参数之arp_ignore和arp_announce
  9. python的rsa公钥解密方法
  10. shell编程中如何执行oracle语句