利用卡方检验选择变量阈值
目录
场景
在规则制定时,面对连续型变量,往往需要选取一个阈值,用以界定好坏客户,比如:
3个月内多头数大于等于10,拒绝。
这个10就是我们需要事先给定的一个值,那是根据什么来定10,而不是9,8,11,15等其他值。
原理
假定目前已经有一定的样本数据:
客户序号 | 7天多头数 | 1个月多头数 | 3个月多头数 | 是否坏客户 |
1 | 3 | 是 | ||
2 | 2 | 否 | ||
... | ... | ... | ... | ... |
m | 4 | 是 |
根据“3个月多头数”、“是否坏客户”整理后如下:
3个月多头数 | 好客户数量 | 坏客户数量 |
0 | ||
1 | ||
2 | ||
... | ... | ... |
n |
现在我们可以设定一个值k∈(0,n),k为整数,将3个月多头数分成2个部分[0,k)和[k,n]。因此上表可以转换成2分表(如下表)。
3个月多头数 | 好客户数量 | 坏客户数量 |
这样,就可以通过卡方检验来测试:“3个月多头数(k临界值)”与“客户好坏”是否有关。
(关于卡方检验原理可参考http://wiki.mbalib.com/wiki/%E5%8D%A1%E6%96%B9%E6%A3%80%E9%AA%8C,其中的应用实例2——独立性检验比较容易理解)
(1)零假设:“3个月多头数(k临界值)”与“客户好坏”无关。
(2)确认自由度,选择显著水平。由卡方分布表找到临界值3.84。
(3)求对应期望值。
(4)根据公式求卡方值:
(5)比较卡方值和临界值,当时,拒绝零假设,即拒绝“3个月多头数(k临界值)”与“客户好坏”无关。
由此可推断“当3个月多头数被k分为2部分时,对客户是否好坏是有显著区分”,这样k值就可以作为拒绝客户的一个临界值。
问题
虽然上面已经可以判定一个给定值k是否具有区分客户好坏能力(比如由业务经验,先设定k=10,通过上述卡方检验可推断10是有效的临界值),但是这个10是否是最优的临界值是无法判定的(比如当k=9的时候,可能会比k=10的时候更具有区分能力)。
于是问题由“判断一个给定的k值是否能有效区分好坏客户”转换为“如何找到最能区分好坏客户的k值”
回到这个二分表
3个月多头数 | 好客户数量 | 坏客户数量 |
实际上,可以表示为
3个月多头数 | 好客户数量 | 坏客户数量 |
、、、都是关于的函数。
同理,可以推出卡方值
也是关于的函数即
于是有
1 | 2 | ... | ||
... |
当取得最大值时,对应的即为最优值。
通过折线图(横坐标为,纵坐标为),就能轻易找到最优k值。
实例
链接:下载地址 密码:g3wk
- A、B列为数据
- 对于不同的值,有不同的卡方值
- 如=7时
实际值 | |||
3个月多头数 | 好客户数量 | 坏客户数量 | 总计 |
[0,k) | 6260 | 689 | 6949 |
[k,20] | 344 | 80 | 424 |
总计 | 6604 | 769 | 7373 |
计算出对应期望值
期望值 | |||
3个月多头数 | 好客户数量 | 坏客户数量 | 总计 |
[0,k) | 6224.222976 | 724.7770243 | 6949 |
[k,20] | 379.7770243 | 44.22297572 | 424 |
总计 | 6604 | 769 | 7373 |
可求得对应卡方值
卡方值 | |||
3个月多头数 | 好客户数量 | 坏客户数量 | 总计 |
[0,k) | 0.205647431 | 1.766054143 | 1.971701574 |
[k,20] | 3.370386791 | 28.94412792 | 32.31451471 |
总计 | 3.576034222 | 30.71018206 | 34.28621628 |
于是对所有,有
1 | 2 | 3 | 4 | 5 | ... | 18 | 19 | |
9.49 | 31.16 | 65.35 | 78.6 | 71 | ... | 0.7 | 0.58 |
对应折线图
图表结合可知,当=4时,为最优临界值,此时可将规则设为:
3个月内多头数大于等于4,拒绝
后语
卡方检验只是计算k的其中一种方法,卡方值也是其中一种指标,在实际应用中,还要考虑误杀率,漏杀率,准确率等指标。
此处不表!