卡方分布
若n个相互独立的随机变量X1、X2、…、Xn,均服从标准正态分布(也称独立同分布于标准正态分布),则这n个随机变量的平方和Q=∑ni=1X2i构成一个新的随机变量,其分布规律称为卡方分布或χ2分布(chi-square distribution),其中参数n为自由度,记为Q∼χ2。

图片引自百度百科
卡方分布是由正态分布构造而成的一个新的分布,当自由度n很大时,χ2分布近似为正态分布。
均值:
E(χ2)=n
方差:D(χ2)=2n
性质:
-
χ2分布在第一象限内,卡方值都是正值,呈正偏态(右偏态),随着参数 n 的增大,χ2 分布趋近于正态分布;卡方分布密度曲线下的面积都是1。
-
χ2分布的均值与方差可以看出,随着自由度n的增大,χ2分布向正无穷方向延伸(因为均值n越来越大),分布曲线也越来越低阔(因为方差2n越来越大)。
- 不同的自由度决定不同的卡方分布,自由度越小,分布越偏斜。
-
若χ2(n1)、χ2(n2)互相独立,则:χ2(n1)+χ2(n2)服从自由度为n1+n2的χ2分布。
卡方分布临界值表:

以上内容和图片均引自百度百科:卡方分布
后续在用卡方检验做特征选择的时候,会利用到自由度为1、α=0.05的临界值3.84,后续再详述。
假设检验
卡方检验属于假设检验,我们先对假设检验的一些概念做些定义。以下内容均来自《概率论与数理统计(陈希孺)》第五章-假设检验。
功效函数:
设总体分布包含若干个未知参数θ1、θ2、…、θk。H0是关于这些参数的一个原假设,设有样本X1、X2、…、Xn,而Φ是基于这些样本而对H0所作的一个检验。则称检验Φ的功效函数为:
βΦ(θ1,…,θk)=Pθ1,…,θk(在检验Φ之下,H0被否定)
它是未知参数θ1,…,θk的函数。
两类错误
在检验一个假设H0时,有可能犯以下两类错误之一:
- 第一类错误:H0正确,但是被否定了
-
第二类错误:H0不正确,但是被接受了
犯第一类错误的概率:
α1Φ(θ1,…,θk)={βΦ(θ1,…,θk),当(theta1,…,θk)∈H00, 当(theta1,…,θk)∈H1
犯第二类错误的概率:α2Φ(θ1,…,θk)={0, 当(theta1,…,θk)∈H01−βΦ(θ1,…,θk),当(theta1,…,θk)∈H1
通常先保证第一类错误的概率不超过某指定值α(α通常很小,最常用的是α=0.05和0.01),再在此限制下,使第二类错误的概率尽可能的小。
检验水平
设Φ是原假设H0的一个检验,βΦ(θ1,…,θk)为其功效函数,α为常数,0≤α≤1。如果
βΦ(θ1,…,θk)≤α,对任何(θ1,…,θk)∈H0
则称Φ为H0的一个水平α的检验,或者说,检验Φ的水平为α,检验Φ有水平α。
这是“固定(或限制)第一类错误概率的原则”,是目前假设检验理论中一种流行的做法。这种做法并没有考虑第二类错误的情况。以参数检验为例,对于第二类错误,往往要选定一个在拒绝域里的参数值(与检验值有较小的距离),来使第二类错误尽量小,计算得到一个应有的样本量,而对于像选取的参数值这样离检验值接近的参数值,往往无需关心是否接受H0。如果想了解两种错误都考虑的情况可以看下《概率论与数理统计(陈希孺)》第五章-假设检验-5.2-重要参数检验。而下面讲到的卡方检验也是只基于这个原则,并没有考虑到第二类错误。
拟合优度检验和卡方检验法
我们这里不说假设检验的详细内容了,有兴趣的可以看下《概率论与数理统计(陈希孺)》,下面直接进入本章内容的主题方法:卡方检验(χ2检验),从书中可以知道,拟合优度检验是为检验观察到的一批数据是否与某种理论分布符合,而采用的计算方法就是卡方检验法。
卡方检验基本方法
设一总体X服从分布:
H0:P(X=ai)=pi (i=1,…,k)
其中ai,pi(i=1,…,k)都是已知的,且a1,…,ak两两各不相同,pi>0(i=1,…,k)
先设想总体X的数量n足够大,按大数定理,若以vi记X1,…,Xn中等于ai的个数,应有vi/n≈pi,即vi≈npi。我们把npi称为ai这个“类”的理论值,而把vi称为其经验值或者观察值。如下表:
| 类别 |
a1
|
a2
|
…
|
ai
|
…
|
ak
|
| 理论值 |
np1
|
np2
|
…
|
npi
|
…
|
npk
|
| 经验值 |
v1
|
v2
|
…
|
vi
|
…
|
vk
|
表中最后两行的差异越小,则H0越像是对的,我们也就越乐意接受它,为了反映这种差异,皮尔逊采用
Z==∑(理论值−经验值)2/理论值∑i=1k(npi−vi)2/(npi)
对公式解释分三部分:
- 理论值−经验值:反映差异
-
(理论值−经验值)2:排除1.中存在正负抵消的情况。
-
(理论值−经验值)2/理论值:针对不同“类”下值域差异过大,将差异转换到同种尺度内。
定理:如果原假设H0成立,则在样本大小n→∞时,Z的分布趋向于自由度为k-1的χ2分布,即χ2k−1。
此定理的证明在书中也没有给出,不过能看出来,Z并不是完全符合卡方分布,而是近似卡方分布,而且最好样本量足够大。
用这个定理就可以对H0做检验了,显然,当Z>C时否定H0,在Z≤C时接受H0,C的选取根据给定的水平α得到,下面我们来看计算过程(检验记为Φ,被检验的分布记为p):
根据前面介绍,我们需要先计算功效函数(H0被否定的概率):
βΦ(p)P(Z≤C)P(Z≤C)==≥=P(Z>C)≤α1−P(Z≤C)≤α1−αKk−1(C)≥1−α
Kk−1是自由度为k-1的卡方分布函数,是非减的(分布函数都是非减的),因此可以得到C≥χ2k−1(α)
这里我们取临界值:C=χ2k−1(α), 即当Kk−1(C)=1−α时计算所得
χ2k−1(α)这个值是怎么算出来的呢?看下图:

由图可知:P(χ2k−1>χ2k−1(α))=α。
所以Kk−1(χ2k−1(α))=P(χ2k−1≤χ2k−1(α))=1−α (公式1)
结合Kk−1(C)=1−α
我们就可以得到C=χ2k−1(α)。
注意:由(公式1)可以得到下面的公式2,在后面拟合优化部分会用到P(χ2k−1>χ2k−1(α))=1−P(χ2k−1≤χ2k−1(α))=1−Kk−1(χ2k−1(α))
(公式2)
当C=χ2k−1(α)时,如果H0成立,它被否定的概率≤α,认为此时犯第一类错误的概率很低很低,也就是说此时假如H0成立,那么计算出的Z有很小很小的概率会>χ2k−1(α),但是如果此时计算出的Z>χ2k−1(α),就说明有很大的概率是因为H0并不成立,我们就有理由拒绝原假设,否则(Z≤χ2k−1(α))我们并没有充足的理由去拒绝原假设,从而我们就去接受它,此时,可能发生第二类错误的概率较高,也就是原假设本来应该被拒绝却被接受了。在这样的情况下,我们往往认为发生第一类错误的影响更大,而发生第二类错误的影响并没有那么大。因此,我们在做特征选择时,为了将无关的特征尽可能扔掉,所以我们选择特征和类别相关是备择假设,无关是原假设,第一类错误是无关的特征没有被丢弃,使这种错误发生的概率尽量小,这样保证保留下来的特征都是尽可能相关的,但是有可能发生第二类错误,导致相关的一些特征会被扔掉,不过扔掉的大多都是相关性较弱的,相关性强的大多数都被保留了。
关于只处理第一类错误的理解:

书中有先处理第一类错误,然后处理第二类错误:

拟合优度
上面是一种“非此即彼”的解决方式。下面我们介绍一种更有弹性的方法。
假定从一组具体数据中算出的Z值为Z0,我们提出这样的问题:如果H0成立,在这个前提下,出现像Z0这么大或者更大的差异的可能性的概率有多大?按之前的定理,如果H0成立,Z∼χ2k−1,我们记这个概率为p(Z0),近似为
p(Z0)=P(Z≥Z0 | H0)≈1−Kk−1(Z0), 由上面红色的(公式2)得到
显然,这个概率越大,说明在H0成立时,出现Z0这么大或者更大的差异的可能性就越大,就越使我们相信H0的正确性,我们把p(Z0)解释为数据对原假设H0中的理论分布的“拟合优度”。拟合优度越大,就表示数据与理论之间的符合越好,该理论分布也就获得更充足的实验或者观察支持。在特征选择的实际使用中,我们可以根据需要利用拟合优度做筛选(逆序取Top或选阈值)。
列联表
在实际使用中经常用到列联表来处理。
下表显示了一个a×b的双向列联表。属性A有a个水平1、2、…、a,属性B有b个水平1、2、…、b。随机观察n个个体,其中属性A处在水平i,而属性B处在水平j的个体数为表中的nij。
| B\A |
1 |
2 |
⋯
|
i |
⋯
|
a |
和 |
| 1 |
n11
|
n21
|
⋯
|
ni1
|
⋯
|
na1
|
n.1
|
| 2 |
n12
|
n22
|
⋯
|
ni2
|
⋯
|
na2
|
n.2
|
|
⋮
|
⋮
|
⋮
|
⋱
|
⋮
|
⋱
|
⋮
|
⋮
|
| j |
n1j
|
n2j
|
⋯
|
nij
|
⋯
|
naj
|
n.j
|
|
⋮
|
⋮
|
⋮
|
⋱
|
⋮
|
⋱
|
⋮
|
⋮
|
| b |
n1b
|
n2b
|
⋯
|
nib
|
⋯
|
nab
|
n.b
|
| 和 |
n1.
|
n2.
|
⋯
|
ni.
|
⋯
|
na.
|
n |
又ni.=∑bj=1nij,nj.=∑ai=1nij分别是属性A在i的个体数和属性B在j的个体数。记
pij=P(属性A、B分别处在水平i、j)
问题是要检验A、B两属性独立的假设H0。如果H0为真,应有pij=uivj (i=1,⋯,a; j=1,⋯,b) (公式3)
其中ui=P(属性A有水平i), vj=P(属性B有水平j)
因此,H0成立,等价于存在{ui}、{vj},满足ui>0, ∑i=1aui=1; vj>0, ∑j=1bvj=1
使(公式3)成立。
在这个模型中,ui、vj充当了参数的作用,总的独立参数个数为r=(a−1)+(b−1)=a+b−2
为了估计ui、vj,可以用最大似然估计法计算,这里不做详细计算,感兴趣的可以去书中查看。可以解得û i=ni./n (i=1,⋯,a), v̂ j=n.j/n (j=1,⋯,b)
这正是用频率估计的概率,由估计量得到p̂ ij=û iv̂ j=ni.n.j/n2,因而得到第(i,j)格的理论值为np̂ ij=ni.n.j/n,因此统计量Z为Z==(公式4)∑i=1a∑j=1b(nij−ni.n.j/n)2/(ni.n.j/n)∑i=1a∑j=1b(nnij−ni.n.j)2/(nni.n.j)
自由度为k−1−r=ab−1−(a+b−2)=(a−1)(b−1)
对a=b=2这个特例,上面的列联表也被称为“四格表”,自由度为1。
后续的计算就和上面的一样了。
卡方检验用于特征选择
例1:假设我们想从一堆特征中筛选出于教育支出(多、少)相关的特征,我们利用上面讲到的两种检验方法来处理(一个是“非此即彼”、一个是“拟合优度”),假如涉及的特征有收入水平、教育水平等等,下面我们以收入水平(高、中、低)为例,按照上面分析,要保证第一类错误影响最小的原则,也就是设定原假设H_0H0为:收入水平与教育支出不相关,设水平\alpha=0.05α=0.05:
| 教育支出\收入水平 |
高 |
中 |
低 |
和 |
| 多 |
63 |
37 |
60 |
160 |
| 少 |
16 |
17 |
8 |
41 |
| 和 |
79 |
54 |
68 |
201 |
按上面(公式4)计算统计量Z_0Z0=7.2078,自由度为(3-1)\times (2-1)=2(3−1)×(2−1)=2
- 非此即彼
查卡方表可知\chi_2^2(0.05)=5.99χ22(0.05)=5.99,而Z_0>\chi_2^2(0.05)Z0>χ22(0.05),因此拒绝原假设H_0H0,认为收入水平和教育支出相关。
- 拟合优度
查卡方表可知拟合优度p(Z0)=P(Z≥Z0 | H0)≈0.025,书中说查表得到结果为0.0207,不知道怎么查出来的。拟合优度值很低,说明可以拒绝原假设H0,认为收入水平和教育支出相关。
例2:例1中的特征属性有多个值,而我们现实中经常会遇到只有0、1这种情况的属性,例如看“足球”和媒体类别是否相关,假设有三种媒体类别:体育、历史、社会。我们可以像下面两种方式构建列联表:
| 媒体类型\特征 |
足球 |
非足球 |
和 |
| 体育 |
|
|
|
| 历史 |
|
|
|
| 社会 |
|
|
|
| 和 |
|
|
|
或者:
| 媒体类型\特征 |
足球 |
非足球 |
和 |
| 体育 |
|
|
|
| 非体育 |
|
|
|
| 和 |
|
|
|
构建列联表的方式可以按照各位的需求构建,但计算方式都是按照上面的方法来的。