1.什么是卡方检验

卡方检验是一种用途很广的假设检验方法,属于非参数检验的范畴。
主要是比较两个或两个以上样本率以及两个分类变量的关联性分析。
根本思想是在于比较理论频次与实际频次的吻合程度或拟合优度问题。
(以上简介来自网络相关文档)

2.什么是卡方分布

卡方分布(chi-square distribution,χ2\chi ^2χ2-distribution)是概率统计中常用的一个分布。k个独立的标准正态分布变量的平方和服从自由度为k的卡方分布,即
X=∑i=1kZi2X = \sum_{i=1}^k Z_i^2X=i=1∑k​Zi2​
被称为服从自由度为k的卡方分布,可以记为
X∼χ2(k)X \sim \chi^2(k)X∼χ2(k)
或 X∼χk2X \sim \chi^2_kX∼χk2​

3.卡方检验的用途

相信做算法的同学都知道,卡方检验可以用来做特征选择。为什么这么说?因为卡方检验就是检验两个变量之间有没有关系。现在有一个变量是特征,有一个变量是分类结果,通过卡方检验计算特征与分类结果之间的相关性,自然就可以做特征选择。

举一个常见的投硬币的例子。
给定一个正常的硬币,现在投掷50次,问正反面出现的次数?
那我们肯定会说,最可能出现的情况是25次正面25次反面,26次正面24次反面也有很大可能,甚至30次正面20次反面也有可能。
但是如果是5次正面45次反面,这个可能性就非常非常小。
上面的方式,是已知硬币正常的结果,预测出现正反面的次数。

卡方检验恰好与此相反,是根据观察到的现象,即出现的正反面次数,来判断结果,即硬币是否正常。
还是以抛掷硬币为例,如果我们事先不知道硬币是否正常,抛50次硬币观察到的现象是5次正面45次正反面,这个时候可以断定硬币是不正常的。

4.卡方检验计算方法

说了上面这么多以后,正式给出卡方的计算方法:
χ2=∑(fo−fe)2fe\chi ^ 2 = \sum \frac{(f_o - f_e)^2 }{f_e}χ2=∑fe​(fo​−fe​)2​
其中,O表示observation,为观测到的频次。E表示Expectation,是期望得到的频次。
上述公式,分子代表了实际值与期望值的偏差,而分母则是标准化过程。因此卡方的值越小,表示观测值与期望值(理论值) 越接近,说明两个变量之间越符合卡方分布。而卡方分布的前提是变量之间相互独立,因此卡方值越小,越表示两个变量之间独立。

我们以经典的四格表为例,看看卡方检验的基本流程
1.建立假设检验,原假设一般都是变量之间相互独立。
2.计算期望频次。
3.代入卡方统计公式计算卡方值。
4.计算自由度。
5.查表,比较卡方值或者P值或者α\alphaα值。

选举一个具体实例来说明上述过程。
为了验证肺癌与吸烟的关系,我们假设得到如下数据

首先假设吸烟与肺癌两者之间没关系,我们计算期望值

然后代入卡方值计算公式:
χ2=∑(fo−fe)2fe\chi ^ 2 = \sum \frac{(f_o - f_e)^2 }{f_e}χ2=∑fe​(fo​−fe​)2​
χ2=(158−109)2/109+(169−218)2/218+(82−131)2/131+(311−262)2/262=60.53\chi ^ 2 = (158-109)^2/109 + (169-218)^2/218+(82-131)^2/131 + (311-262)^2/262=60.53χ2=(158−109)2/109+(169−218)2/218+(82−131)2/131+(311−262)2/262=60.53

而自由度的计算方法,可以简单抽象成(行数-1)(列数-1),所以四格表的自由度为1。

最后一步,查表。

通过上表可以看出来,自由度为1,显著性水平为0.05,当卡方值<3.84的时候,可以接受原假设,即变量之间没有相关性。卡方值越小,不相关的概率越大。现在卡方值远大于3.84,说明两者不相关的概率很小,即抽烟与肺癌有关。

5.P-value

P值,也就是常见到的 P-value。P 值是一种概率,指的是在 H0 假设为真的前提下,样本结果出现的概率。如果 P-value 很小,则说明在原假设为真的前提下,样本结果出现的概率很小,甚至很极端,这就反过来说明了原假设很大概率是错误的。通常,会设置一个显著性水平(significance level)α\alphaα与 P-value 进行比较。如果P−value<αP-value < \alphaP−value<α ,则说明在显著性水平 α\alphaα 下拒绝原假设。

6.四宫格卡方值计算公式

四宫格表的卡方值有特定计算公式
χ2=N∗(A∗D−B∗C)(A+C)(A+B)(B+D)(C+D)\chi^2 = \frac{N * (A*D - B*C)}{(A+C)(A+B)(B+D)(C+D)}χ2=(A+C)(A+B)(B+D)(C+D)N∗(A∗D−B∗C)​
其中,N=(A+B+C+D)N = (A+B+C+D)N=(A+B+C+D)
具体推导过程就是根据χ2\chi^2χ2的原始定义计算而来。
其中,第一个宫格的计算值为:
[A−(A+B)(A+C)(A+B+C+D)]2(A+B)(A+C)(A+B+C+D)\frac{\left[A - \frac{(A+B)(A+C)}{(A+B+C+D)}\right]^2}{\frac{(A+B)(A+C)}{(A+B+C+D)}}(A+B+C+D)(A+B)(A+C)​[A−(A+B+C+D)(A+B)(A+C)​]2​

四个宫格以此类推,分别计算相加,即可得到上面的公式。

卡方检验详解分析与实例相关推荐

  1. java线程的生命周期及wait(),notify(),notifyAll()的详解分析

    1.java线程的生命周期     线程是一个动态执行的过程,它也有一个从产生到死亡的过程. (1)生命周期的五种状态 新建(new Thread)     当创建Thread类的一个实例(对象)时, ...

  2. 详解分析MySQL8.0的内存消耗

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 目录 1.innodb_ ...

  3. php java集成_PHP和Java 集成开发详解分析 强强联合第1/4页

    PHP和Java 集成开发详解分析 强强联合第1/4页 更新时间:2008年11月14日 12:28:23   作者: 很久以前,有人从www上看到看到天空上一个很亮的亮点,它就是Java语言,与此同 ...

  4. oracle中minus作的应用,Oracle minus用法详解及应用实例

    Oracle minus用法详解及应用实例 Oracle minus用法 "minus"直接翻译为中文是"减"的意思,在Oracle中也是用来做减法操作的,只不 ...

  5. php小程序地图处理,微信小程序 地图map详解及简单实例

    微信小程序 地图map 微信小程序map 地图属性名类型默认值说明longitudeNumber中心经度 latitudeNumber中心纬度 scaleNumber1缩放级别 markersArra ...

  6. pythonfor循环案例教程_python开发之for循环操作实例详解,pythonfor实例详解

    python开发之for循环操作实例详解,pythonfor实例详解 本文实例讲述了python开发之for循环操作.分享给大家供大家参考,具体如下: 下面是我做的一些学习记录供大家参考: #基本的f ...

  7. java对文件的操作详解_Java 对 Properties 文件的操作详解及简单实例

    Java 对 Properties 文件的操作详解及简单实例 发布于 2020-8-7| 复制链接 摘记: Java 对 Properties 文件的操作简介在 Java 中,我们常用 java.ut ...

  8. mysql 实例复制_MYSQL教程MySQL 复制详解及简单实例

    <MysqL教程MysqL 复制详解及简单实例>要点: 本文介绍了MysqL教程MysqL 复制详解及简单实例,希望对您有用.如果有疑问,可以联系我们. MysqL 复制详解及简单实例 主 ...

  9. python与golang_Golang与python线程详解及简单实例

    Golang与python线程详解及简单实例 在GO中,开启15个线程,每个线程把全局变量遍历增加100000次,因此预测结果是 15*100000=1500000. var sum int var ...

  10. mysql 实例复制_MySQL 复制详解及简单实例

    MySQL 复制详解及简单实例 主从复制技术在MySQL中被广泛使用,主要用于同步一台服务器上的数据至多台从服务器,可以用于实现负载均衡,高可用和故障切换,以及提供备份等等.MySQL支持多种不同的复 ...

最新文章

  1. Python 中的*args和**kwargs
  2. OMEGA3-补充注意事项
  3. linux 关机 日志,centos7 异常关机了,怎么查看系统的异常日志?
  4. 秋叶一键重装系统连接服务器失败,如何解决远程桌面无法连接
  5. 朗读评价语言集锦_表扬朗读好的评语简短
  6. Material Design之RecyclerView的使用(一)
  7. 共阳极数码管显示c语言,基于74HC595单片机驱动数码管设计
  8. 小米球(Ngrok)实现内网穿透,让外网可以进行访问本地部署的 API
  9. 新华三杯考前突击---Day1---物联网技术篇
  10. 创新者的窘境 Teh Innovator‘s Dilemma
  11. ivitamin studio_151002 by vitamin studio
  12. 内存数据库及技术选型
  13. 全球十大管理咨询公司的排名
  14. 如何防止局域网病毒春风吹又生--之一
  15. ps去除图片中的文字、图层锁定不能解开问题
  16. 实验二、电阻变化时二极管的直流电压和交流电流的变化
  17. 微信企业付款到银行卡(微信转账)(Java完整版)
  18. 【一日一logo_day_35】chi
  19. python机器识别追踪_多目标追踪器:用OpenCV实现多目标追踪(C++/Python)
  20. SAP推出On-Demand创新软件 瞄准中型企业

热门文章

  1. java中控指纹仪_java 中控URU4500指纹仪开发
  2. python租房_【Python】租房经历总结—–我是如何2天找到合适租房的(房东直租)简单粗暴...
  3. MySQL的json查询之->、->>、json_extract、json_unquote
  4. 建模专题1:石墨烯-氧化石墨烯及各种纳米材料体系的构建方法
  5. 陪集分解的几个简单应用
  6. vscode 是干什么用的_vscode是干嘛用的
  7. qpython3l_qpython3例子
  8. Oracle 自带管理工具
  9. matlab实现拉格朗日插值法后的实验感想
  10. JAVA全栈工程师之路