这篇文章主要讲了两个部分,一个是卡方检验的推导,一个是卡方检验应该取多少样本量。
卡方独立性检验是为了检验两个变量是否独立,我们先来回顾一下卡方独立性检验的流程:
1、统计列联表,计算观察值:

图中的数字都是频数,例如男士分期的频数为80,女士分期的频数是20。图中的频数90,110,30,70这些是我们的观察值,为别用
2、做出假设,计算期望值:
我们的假设是性别跟是否分期是独立的,所以我们的期望值应该是如下图所示:

图中的期望值80,120,40,80我们用
3、计算卡方统计量
卡方统计量
经过查表,我们可以算出p值为0.012,在0.05的阈值下,我们认为观察到的情况是(表一)小概率时间,所以拒绝了性别跟是否分期是独立的的原假设。
接下来,我们来推导出卡方统计量为什么是这个样子的:
我们先来了解几个必要的知识点:
定义1、卡方分布的定义(抄自维基百科):
若k个随机变量
这个定义中的关键之处在于随机变量
定理2、若变量A、B的分布都是正态分布,那么‘变量A、B相互独立’与‘A、B的协方差为0‘是等价命题。也就是说A、B独立则A、B的相关性为0。A、B的相关性为0则A、B独立。
定理3、设随机向量
下面我们来猜想到底这个列联表的卡方统计量的公式是怎么得来的。

现在我们设有变量A、B.
A有m种互斥的可能取值,分别记为
B有n种互斥的可能取值,分别记为
我们做卡方检验,原假设时A、B是独立的。在这个假设下,有:
显然N次抽样的情况下
结合中心极限定律可知,当N很大时
现在我们已经有了m*n个分布呈正态分布的变量(A,B),已经满足卡方统计量中正态分布的要求,但是还差一个独立性。所以很自然想到如果用定理3去除这些变量的相关性,然后再计算卡方统计量岂不是搞定了。
事实上,确实是这样的,下面我们就来验证这个想法。
为了书写简便我们将这m*m种可能性重排,对应关系为
这
所以应该先任意丢弃一个变量再来计算协方差矩阵。
记
记Z的协方差矩阵为C,第i行第j列元素记为
显然:
根据定理3,我们一定找得出矩阵B,使得
所以
所以我们推论的卡方统计量为:
真正的卡方统计量为:
欲证
只需
只需
又因为
所以
显然(^^)
所以证得
总结一下,卡方独立性检验的公式由来就是:
在A、B变量独立的原假设下,将列联表中的变量(正态分布)用线性变换去除相关性(等同于独立,见定理2),然后再求得卡方统计量。
下面我们来看看卡方独立性检验时应该取多少样本量
在做项目的时候,我们有几百万的样本,如果用全部的样本去做卡方检验的话,会出现这种情况:
除了随机属性,90%以上的属性与标签(二分类)的卡方检验都是显著的。这样的话对于属性和标签的卡方检验还有什么意义?
其实这里涉及到卡方检验的灵敏度问题,样本量越大卡方检验越灵敏。
我们看看卡方统计量中的一项
在
所以就得出了我们的结论:样本量越大,卡方检验越灵敏。
回到我们的例子,如果用几百万的数据去做卡方检验的话,卡方检验就十分灵敏,两个变量稍微的相关都能检查出来,但这样检查出来的变量是我们想要的吗?
显然不是,因为加入变量是有成本的:
1、计算成本
2、过拟合风险
3、由于共线性导致的变量失效
所以不是所有相关的变量我们都要列入模型中,而是对模型贡献大的变量要列入模型中。
所以我们要的是容易检查出相关性的变量。
要实现这个目的就要让卡方检验不那么灵敏,即减少卡方检验的样本量。
所以是这么个逻辑:
这些变量连不灵敏的卡方检验都检测出显著,所以这些变量跟标签肯定很不独立,这就是我想要的变量。
总结一下,对于用于筛选特征的卡方检验,不是样本量越多越好。有时候,为了得到不那么灵敏的卡方检验,我们减少了样本量。