卡方检验,或称x2检验,被誉为二十世纪科学技术全部分支中的20大发明之一,它的发明者卡尔·皮尔逊是一位历史上罕见的百科全书式的学者,研究领域涵盖了生物、历史、宗教、哲学、法律。以前作文本分类项目用过卡方值作特征选择(降维),后来听内部培训,另外一个部门说他们有用卡方检验作异经常使用户的检测,因而就想把卡方检验再温习一次,同时把卡方检验和特征选择串起来理解。spa
举个例子,假设咱们有一堆新闻标题,须要判断标题中包含某个词(好比吴亦凡
)是否与该条新闻的类别归属(好比娱乐
)是否有关,咱们只须要简单统计就能够得到这样的一个四格表:code
组别 | 属于娱乐 |
不属于娱乐 |
合计 | |
---|---|---|---|---|
不包含吴亦凡 |
19 | 24 | 43 | |
包含吴亦凡 |
34 | 10 | 44 | |
合计 | 53 | 34 | 87 |
经过这个四格表咱们获得的第一个信息是:标题是否包含吴亦凡
确实对新闻是否属于娱乐
有统计上的差异,包含吴亦凡
的新闻属于娱乐
的比例更高,但咱们还没法排除这个差异是否因为抽样偏差致使。那么首先假设标题是否包含吴亦凡
与新闻是否属于娱乐
是独立无关的,随机抽取一条新闻标题,属于娱乐
类别的几率是:(19 + 34) / (19 + 34 + 24 +10) = 60.9%
blog
第二步,根据无关性假设生成新的理论值四格表:排序
组别 | 属于娱乐 |
不属于娱乐 |
合计 |
---|---|---|---|
不包含吴亦凡 |
43 * 0.609 = 26.2 | 43 * 0.391 = 16.8 | 43 |
包含吴亦凡 |
44 * 0.609 = 26.8 | 44 * 0.391 = 17.2 | 44 |
显然,若是两个变量是独立无关的,那么四格表中的理论值与实际值的差别会很是小。get
x2的计算公式为:it
其中A为实际值,也就是第一个四格表里的4个数据,T为理论值,也就是理论值四格表里的4个数据。table
x2用于衡量实际值与理论值的差别程度(也就是卡方检验的核心思想),包含了如下两个信息:class
实际值与理论值误差的绝对大小(因为平方的存在,差别是被放大的)变量
差别程度与理论值的相对大小im
对上述场景可计算x2值为10.01。
既然已经获得了x2值,咱们又怎么知道x2值是否合理?也就是说,怎么知道无关性假设是否可靠?答案是,经过查询卡方分布的临界值表。
这里须要用到一个自由度
的概念,自由度等于V = (行数 - 1) * (列数 - 1)
,对四格表,自由度V = 1
。
对V = 1
,卡方分布的临界几率是:
显然10.01 > 7.88
,也就是标题是否包含吴亦凡
与新闻是否属于娱乐
无关的可能性小于0.5%,反过来,就是二者相关的几率大于99.5%。
卡方检验的一个典型应用场景是衡量特定条件下的分布是否与理论分布一致,好比:特定用户某项指标的分布与大盘的分布是否差别很大,这时经过临界几率能够合理又科学的筛选异经常使用户。
另外,x2值描述了自变量与因变量之间的相关程度:x2值越大,相关程度也越大,因此很天然的能够利用x2值来作降维,保留相关程度大的变量。再回到刚才新闻分类的场景,若是咱们但愿获取和娱乐类别相关性最强的100个词,之后就按照标题是否包含这100个词来肯定新闻是否归属于娱乐类,怎么作?很简单,对娱乐类新闻标题所包含的每一个词按上述步骤计算x2值,而后按x2值排序,取x2值最大的100个词。
来自:建造者说