d2Mean = d2.mean()
d2MeanX = d2Mean.X
使用斯皮尔曼等级相关系数来评估两个变量之间的相关性
r, p = stats.spearmanr(d2MeanX, d2Mean.Y) 这个具体什么原理感兴趣的朋友 可以自己查阅一下资料
每个指标具体计算过程 min 最小值 d2.min().X max 最大值 d2.max().X total 总人数 d2.count().Y sum 好人数 d2.sum().Y rate 均值 d2.mean().Y woe=np.log((d3['rate'] / (1-d3['rate'])) / (good/bad)) (好人均值/坏人均值)/(好人人数/坏人人数) 取对数 即WOE goodattribute=d3['sum'] / good 每组好人数量/总的好人数 badattribute=(d3['total'] - d3['sum']) / bad 每组坏人人数/坏人总人数 iv = ((d3['goodattribute'] - d3['badattribute']) * d3['woe']).sum() d4 = (d3.sort_values(by = 'min')) 通过min列排序
ivx1: 1.0027047570109968 cutx1: [-inf, 0.0313, 0.1583, 0.5605, inf] woex1: [-1.37, -1.212, -0.288, 1.106]