卡方分布
若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_0 H0 为:收入水平与教育支出不相关,设水平\alpha=0.05 α=0.05 :
教育支出\收入水平 |
高 |
中 |
低 |
和 |
多 |
63 |
37 |
60 |
160 |
少 |
16 |
17 |
8 |
41 |
和 |
79 |
54 |
68 |
201 |
按上面(公式4)计算统计量Z_0 Z0 =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_0 H0 ,认为收入水平和教育支出相关。
- 拟合优度
查卡方表可知拟合优度 p(Z0)=P(Z≥Z0 | H0)≈0.025 ,书中说查表得到结果为0.0207,不知道怎么查出来的。拟合优度值很低,说明可以拒绝原假设 H0 ,认为收入水平和教育支出相关。
例2:例1中的特征属性有多个值,而我们现实中经常会遇到只有0、1这种情况的属性,例如看“足球”和媒体类别是否相关,假设有三种媒体类别:体育、历史、社会。我们可以像下面两种方式构建列联表:
媒体类型\特征 |
足球 |
非足球 |
和 |
体育 |
|
|
|
历史 |
|
|
|
社会 |
|
|
|
和 |
|
|
|
或者:
媒体类型\特征 |
足球 |
非足球 |
和 |
体育 |
|
|
|
非体育 |
|
|
|
和 |
|
|
|
构建列联表的方式可以按照各位的需求构建,但计算方式都是按照上面的方法来的。