96SEO 2026-02-19 10:38 0
。

卡方分箱在金融信贷风控领域是逻辑回归评分卡的核心#xff0c;让分箱具有统计学意义#xff08;单调性#xff09;。
卡方分箱在生物医药领域可以比较两种药物或两组病人是否具有显著区别。
但很多建模人员搞不清楚…统计学风控建模经常遇到卡方分箱算法ChiMerge。
卡方分箱在金融信贷风控领域是逻辑回归评分卡的核心让分箱具有统计学意义单调性。
卡方分箱在生物医药领域可以比较两种药物或两组病人是否具有显著区别。
但很多建模人员搞不清楚卡方分箱原理。
先给大家介绍一下经常被提到的卡方分布和卡方检验是什么。
欢迎各位同学学习更多相关知识python金融风控评分卡模型和数据分析https://edu.csdn.net/combo/detail/1927
χ2-distribution)是概率统计里常用的一种概率分布也是统计推断里应用最广泛的概率分布之一在假设检验与置信区间的计算中经常能见到卡方分布的身影。
χ2检验是以χ2分布为基础的一种假设检验方法主要用于分类变量之间的独立性检验。
其基本思想是根据样本数据推断总体的分布与期望分布是否有显著性差异或者推断两个分类变量是否相关或者独立。
实际应用中我们先假设原假设成立计算出卡方的值卡方表示观察值与理论值间的偏离程度。
其中A为实际频数E为期望频数。
卡方值用于衡量实际值与理论值的差异程度这也是卡方检验的核心思想。
1.实际值与理论值偏差的绝对大小。
2.差异程度与理论值的相对大小。
上述计算的卡方值服从卡方分布。
根据卡方分布卡方统计量以及自由度可以确定在原假设成立的情况下获得当前统计量以及更极端情况的概率p。
如果p很小说明观察值与理论值的偏离程度大应该拒绝原假设。
否则不能拒绝原假设。
某医院对某种病症的患者使用了AB两种不同的疗法结果如表1问两种疗法有无差别
得到卡方值以后接下来需要查询卡方分布表来判断p值从而做出接受或拒绝原假设的决定。
首先我们明确自由度的概念自由度k(行数-1)*(列数-1)。
这里k1.然后看卡方分布的临界概率表我们可以用如下代码生成
#python金融风控评分卡模型和数据分析https://edu.csdn.net/combo/detail/1927
#讲师csdn学院教学主页https://edu.csdn.net/lecturer/5602
pd.DataFrame(np.array([chi2.isf(percents,
查表自由度为1,p0.05的卡方值为3.841而此例卡方值10.013.841因此
0.05说明原假设在0.05的显著性水平下是可以拒绝的。
也就是说原假设不成立。
首先按照属性值的大小进行排序对于非连续特征需要先做数值转换比如转为坏人率然后排序然后每个属性值单独作为一组。
3不断重复12直到计算出的卡方值都不低于事先设定的阈值或者分组数达到一定的条件如最小分组数5最大分组数8。
值得注意的是小编之前发现有的实现方法在合并阶段计算的并非相邻组的卡方值只考虑在此两组内的样本并计算期望频数因为他们用整体样本来计算此相邻两组的期望频数。
下图是著名的鸢尾花数据集sepal-length属性值的分组及相邻组的卡方值。
最左侧是属性值中间3列是class的频数最右是卡方值。
这个分箱是以卡方阈值1.4的结果。
可以看出最小的组为[6.77.0它的卡方值是1.5。
如果进一步提高阈值如设置为4.6那么以上分箱还将继续合并最终的分箱如下图
卡方分箱除了用阈值来做约束条件还可以进一步的加入分箱数约束以及最小箱占比坏人率约束等。
在上篇文章中介绍了卡方分箱的基本思想和方法都是概念性的东西也没有给出具体的代码实现。
这篇文章就来介绍下小编写的ChiMerge算法的实现。
计算卡方值的函数需要输入numpy格式的频数表。
对于pandas数据集只需使用pd.crosstab计算即可例如变量“总账户数”
Ei,j有可能是0此时上一步计算出来的结果无意义需要清除不计入最终结果。
卡方分箱函数可以根据最大分组数目和卡方阈值来控制最终的分箱数。
如果调用时既没有设置最大分组数也没有指定阈值那么函数会自动使用95%的置信度设置阈值。
如果当前计算出的卡方值小于已观察到的最小卡方值则标记当前坐标并更新已观察最小卡方值为当前值。
3扫描一遍后如果当前分组数大于最大分组数或者最小卡方值小于阈值就将最小卡方值对应的两组频数合并区间也合并。
并回第2步执行。
否则停止合并。
输出当前各组的区间切分点。
卡方分箱完成后得到了各个分组的区间起始值。
对于任给的一个变量值x可以使用如下的函数获得分组值。
需要注意的是如果需要转换的值x不在分箱区间之内很有可能是异常值不应该期望上面的函数来处理这种情况而应采用专门的异常值处理程序。
除了y变量外还有3个变量贷款额度loan_amnt数值型总账户数total_acc数值型地址州addr_state类别型。
#python金融风控评分卡模型和数据分析https://edu.csdn.net/combo/detail/1927#讲师csdn学院教学主页https://edu.csdn.net/lecturer/5602data
定义一个卡方分箱可设置参数置信度水平与箱的个数停止条件为大于置信水平且小于bin的数目def
npdf:传入一个数据框仅包含一个需要卡方分箱的变量与正负样本标识正样本为1负样本为0variable:需要卡方分箱的变量名称字符串confidenceVal置信度水平默认是不进行抽样95%sample:
df.groupby([variable])[flag].count()
df.groupby([variable])[flag].sum()
组合total_num与positive_classregroup.reset_index(inplaceTrue)regroup[negative_class]
把数据框转化为numpy提高运行效率print(已完成数据读入,正在计算数据初处理)#处理连续没有正样本或负样本的区间并进行区间的合并以免卡方值计算报错while
chi)print(已完成数据初处理正在进行卡方分箱核心操作)if
找出卡方值最小的位置索引np_regroup[chi_min_index,
计算合并后当前区间与前一个区间的卡方值并替换chi_table[chi_min_index
计算合并后当前区间与前一个区间的卡方值并替换chi_table[chi_min_index
计算合并后当前区间与后一个区间的卡方值并替换chi_table[chi_min_index]
axis0)print(已完成卡方分箱核心操作正在保存结果)result_data
创建一个保存结果的数据框result_data[variable]
np.arange(np_regroup.shape[0]):x
0])list_temp.append(x)result_data[interval]
欢迎访问讲师csdn学院教学主页https://edu.csdn.net/lecturer/5602学习更多python金融模型实战。
版权声明文章来自公众号(python风控模型),未经许可不得抄袭。
遵循CC
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback