特征选择-卡方检验用于特征选择

来源:互联网 发布:服务器对应默认端口 编辑:程序博客网 时间:2024/05/22 15:10

卡方分布

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

卡方分布

图片引自百度百科

卡方分布是由正态分布构造而成的一个新的分布,当自由度n很大时,χ2分布近似为正态分布。

均值:

E(χ2)=n

方差:
D(χ2)=2n

性质:

  1. χ2分布在第一象限内,卡方值都是正值,呈正偏态(右偏态),随着参数 n 的增大,χ2 分布趋近于正态分布;卡方分布密度曲线下的面积都是1。
  2. χ2分布的均值与方差可以看出,随着自由度n的增大,χ2分布向正无穷方向延伸(因为均值n越来越大),分布曲线也越来越低阔(因为方差2n越来越大)。
  3. 不同的自由度决定不同的卡方分布,自由度越小,分布越偏斜。
  4. χ2(n1)χ2(n2)互相独立,则:χ2(n1)+χ2(n2)服从自由度为n1+n2χ2分布。

    卡方分布临界值表:
    卡方分布临界值表

以上内容和图片均引自百度百科:卡方分布

后续在用卡方检验做特征选择的时候,会利用到自由度为1、α=0.05的临界值3.84,后续再详述。

假设检验

卡方检验属于假设检验,我们先对假设检验的一些概念做些定义。以下内容均来自《概率论与数理统计(陈希孺)》第五章-假设检验。

功效函数:

设总体分布包含若干个未知参数θ1θ2θkH0是关于这些参数的一个原假设,设有样本X1X2Xn,而Φ是基于这些样本而对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足够大,按大数定理,若以viX1,,Xn中等于ai的个数,应有vi/npi,即vinpi。我们把npi称为ai这个“类”的理论值,而把vi称为其经验值或者观察值。如下表:

类别 a1 a2 ai ak 理论值 np1 np2 npi npk 经验值 v1 v2 vi vk

表中最后两行的差异越小,则H0越像是对的,我们也就越乐意接受它,为了反映这种差异,皮尔逊采用

Z==()2/i=1k(npivi)2/(npi)
对公式解释分三部分:

  1. 理论值−经验值:反映差异
  2. ()2:排除1.中存在正负抵消的情况。
  3. ()2/:针对不同“类”下值域差异过大,将差异转换到同种尺度内。

定理:如果原假设H0成立,则在样本大小n时,Z的分布趋向于自由度为k-1的χ2分布,即χ2k1
此定理的证明在书中也没有给出,不过能看出来,Z并不是完全符合卡方分布,而是近似卡方分布,而且最好样本量足够大。

用这个定理就可以对H0做检验了,显然,当Z>C时否定H0,在ZC时接受H0,C的选取根据给定的水平α得到,下面我们来看计算过程(检验记为Φ,被检验的分布记为p):

根据前面介绍,我们需要先计算功效函数(H0被否定的概率):

βΦ(p)P(ZC)P(ZC)===P(Z>C)α1P(ZC)α1αKk1(C)1α
Kk1是自由度为k-1的卡方分布函数,是非减的(分布函数都是非减的),因此可以得到
Cχ2k1(α)
这里我们取临界值:
C=χ2k1(α)     Kk1(C)=1α
χ2k1(α)这个值是怎么算出来的呢?看下图:
卡方分布图
由图可知:P(χ2k1>χ2k1(α))=α
所以Kk1(χ2k1(α))=P(χ2k1χ2k1(α))=1α     (1)
结合Kk1(C)=1α
我们就可以得到C=χ2k1(α)
注意:由(公式1)可以得到下面的公式2,在后面拟合优化部分会用到
P(χ2k1>χ2k1(α))=1P(χ2k1χ2k1(α))=1Kk1(χ2k1(α))
(2)

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

关于只处理第一类错误的理解:
仅处理第一类错误
书中有先处理第一类错误,然后处理第二类错误:
两类错误都处理

拟合优度

上面是一种“非此即彼”的解决方式。下面我们介绍一种更有弹性的方法。
假定从一组具体数据中算出的Z值为Z0,我们提出这样的问题:如果H0成立,在这个前提下,出现像Z0这么大或者更大的差异的可能性的概率有多大?按之前的定理,如果H0成立,Zχ2k1,我们记这个概率为p(Z0),近似为

p(Z0)=P(ZZ0 | H0)1Kk1(Z0),  (2)
显然,这个概率越大,说明在H0成立时,出现Z0这么大或者更大的差异的可能性就越大,就越使我们相信H0的正确性,我们把p(Z0)解释为数据对原假设H0中的理论分布的“拟合优度”。拟合优度越大,就表示数据与理论之间的符合越好,该理论分布也就获得更充足的实验或者观察支持。在特征选择的实际使用中,我们可以根据需要利用拟合优度做筛选(逆序取Top或选阈值)。

列联表

在实际使用中经常用到列联表来处理。
下表显示了一个a×b的双向列联表。属性A有a个水平12a,属性B有b个水平12b。随机观察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.bn1. n2. ni. na. n

ni.=bj=1nijnj.=ai=1nij分别是属性A在i的个体数和属性B在j的个体数。记

pij=P(ABij)
问题是要检验A、B两属性独立的假设H0。如果H0为真,应有
pij=uivj     (i=1,,a; j=1,,b)      (3)
其中
ui=P(Ai),  vj=P(Bj)
因此,H0成立,等价于存在{ui}、{vj},满足
ui>0,  i=1aui=1;  vj>0,  j=1bvj=1
使(公式3)成立。
在这个模型中,uivj充当了参数的作用,总的独立参数个数为
r=(a1)+(b1)=a+b2
为了估计uivj,可以用最大似然估计法计算,这里不做详细计算,感兴趣的可以去书中查看。可以解得
û 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=1aj=1b(nijni.n.j/n)2/(ni.n.j/n)i=1aj=1b(nnijni.n.j)2/(nni.n.j)
自由度为k1r=ab1(a+b2)=(a1)(b1)
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(31)×(21)=2

  1. 非此即彼
    查卡方表可知\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,认为收入水平和教育支出相关。
  2. 拟合优度
    查卡方表可知拟合优度p(Z0)=P(ZZ0 | H0)0.025,书中说查表得到结果为0.0207,不知道怎么查出来的。拟合优度值很低,说明可以拒绝原假设H0,认为收入水平和教育支出相关。

例2:例1中的特征属性有多个值,而我们现实中经常会遇到只有0、1这种情况的属性,例如看“足球”和媒体类别是否相关,假设有三种媒体类别:体育、历史、社会。我们可以像下面两种方式构建列联表:

媒体类型\特征 足球 非足球 和 体育 历史 社会 和

或者:

媒体类型\特征 足球 非足球 和 体育 非体育 和

构建列联表的方式可以按照各位的需求构建,但计算方式都是按照上面的方法来的。

原创粉丝点击