您的位置:首页 > 编程语言 > Python开发

卡方分布与卡方检验------以及python的实现

2017-03-17 11:39 225 查看


经典的卡方检验是检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,构建统计量:



  这个统计量的含义简而言之就是自变量对因变量的相关性。用feature_selection库的SelectKBest类结合卡方检验来选择特征的代码如下:

1 from sklearn.feature_selection import SelectKBest
2 from sklearn.feature_selection import chi2
3
4 #选择K个最好的特征,返回选择特征后的数据
5 SelectKBest(chi2, k=2).fit_transform(iris.data, iris.target)


1.卡方分布

卡方分布(chi-square distribution, χ2-distribution)是概率统计里常用的一种概率分布,也是统计推断里应用最广泛的概率分布之一,在假设检验与置信区间的计算中经常能见到卡方分布的身影。

我们先来看看卡方分布的定义: 

若k个独立的随机变量Z1,Z2,⋯,Zk,且符合标准正态分布N(0,1),则这k个随机变量的平方和 

X=∑i=1kZ2i

为服从自由度为k的卡方分布,记为: 

X∼χ2(k)

也可以记为: 

X∼χ2k

卡方分布的期望与方差分为为: 
E(χ2)=n,D(χ2)=2n,其中n为卡方分布的自由度。

2.卡方检验

χ2检验是以χ2分布为基础的一种假设检验方法,主要用于分类变量。其基本思想是根据样本数据推断总体的分布与期望分布是否有显著性差异,或者推断两个分类变量是否相关或者独立。 

一般可以设原假设为 H0:观察频数与期望频数没有差异,或者两个变量相互独立不相关。 

实际应用中,我们先假设H0成立,计算出χ2的值,χ2表示观察值与理论值之间的偏离程度。根据χ2分布,χ2统计量以及自由度,可以确定在H0成立的情况下获得当前统计量以及更极端情况的概率p。如果p很小,说明观察值与理论值的偏离程度大,应该拒绝原假设。否则不能拒绝原假设。

χ2的计算公式为: 

χ2=∑(A−T)2T

其中,A为实际值,T为理论值。

χ2用于衡量实际值与理论值的差异程度,这也是卡方检验的核心思想。χ2包含了以下两个信息: 

1.实际值与理论值偏差的绝对大小。 

2.差异程度与理论值的相对大小。

3.卡方检验做特征选择

卡方检验经常被用来做特征选择。举个网络上的例子,假设我们有一堆新闻标题,需要判断标题中包含某个词(比如吴亦凡)是否与该条新闻的类别归属(比如娱乐)是否有关,我们只需要简单统计就可以获得这样的一个四格表:
组别属于
娱乐
不属于
娱乐
合计
不包含
吴亦凡
192443
包含
吴亦凡
341044
合计533487 
通过这个四格表我们得到的第一个信息是:标题是否包含吴亦凡确实对新闻是否属于娱乐有统计上的差别,包含吴亦凡的新闻属于娱乐的比例更高,但我们还无法排除这个差别是否由于抽样误差导致。那么首先假设标题是否包含吴亦凡与新闻是否属于娱乐是独立无关的,随机抽取一条新闻标题,属于娱乐类别的概率是:(19 + 34) / (19 + 34 + 24 +10) = 60.9%

理论值的四格表为:
组别属于
娱乐
不属于
娱乐
合计
不包含
吴亦凡
43 * 0.609 = 26.243 * 0.391 = 16.843
包含
吴亦凡
44 * 0.609 = 26.844 * 0.391 = 17.244
显然,如果两个变量是独立无关的,那么四格表中的理论值与实际值的差异会非常小。

则χ2值为: 

χ2=(19−26.2)226.2+(34−26.8)226.8+(24−16.8)216.8+(10−17.2)217.2=10.00

标准的四格表χ2值可以用以下方式进行计算: 

χ2=N∗(AD−BC)2(A+B)(C+D)(A+C)(B+D)

其中,N=A+B+C+D

得到χ2的值以后,怎样可以得知无关性假设是否可靠?接下来我们应该查询卡方分布的临界值表了。

首先我们明确自由度的概念:自由度v=(行数-1)*(列数-1)。 

然后看卡方分布的临界概率,表如下: 



一般我们取p=0.05,也就是说两者不相关的概率为0.05时,对应的卡方值为3.84。显然10.0>3.84,那就说明包含吴亦凡的新闻不属于娱乐的概率小于0.05。换句话说,包含吴亦凡的新闻与娱乐新闻相关的概率大于95%!

总结一下:我们可以通过卡方值来判断特征是否与类型有关。卡方值越大,说明关联越强,特征越需要保留。卡方值越小,说明越不相关,特征需要去除。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: