登录
首页 >  数据库 >  MySQL

统计科学之卡方检验讲解

来源:SegmentFault

时间:2023-02-24 21:20:21 434浏览 收藏

怎么入门数据库编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《统计科学之卡方检验讲解》,涉及到MySQL、算法、数据库、python、网页爬虫,有需要的可以收藏一下

我们前面讲过方差分析,方差分析的应用场景是什么样子的呢?不记得同学可以翻回去看看。当我们要比较两组或者多组均值有没有显著性差异的时候,我们可以用方差分析。请注意,这里面我们提到是两组或者多组之间的均值比较时,我们用方差分析,想一下什么类型的数据可以求均值呢?是不是只有数值类型的数据才可以求均值。也就是所谓的连续型变量。那如果我们要比较两组或者多组之间的分类型变量之间是否有显著性差异呢?这个时候就不可以使用方差分析了,就需要使用专门用于分类变量比较的卡方检验。

接下来我们具体看一下卡方分析是怎么做的。

现在某个研究机构为了验证一下吸烟与肺病的关系,通过抽样调查得到如下数据:

image

我们先假设是否吸烟与是否患肺病之间是没有必然联系的,也就是不管是否患肺病的群体中吸烟者比例都应该等于合计中吸烟者比例,即33%。我们来看一下,如果各组的吸烟者比例都为33%的时候,各组的人数分布情况是什么样的。我们通过上表可以看出肺病患者里面的吸烟比例为48%,明显高于非肺病患者中的吸烟比例20%。可是这能直接说明两者之间有显著性差异吗?我们需要来验证一下到底显著不显著呢?那具体该怎么验证呢?

image

通过对比前面的两个表,我们可以发现各组的人数都不太一样,造成不太一样的原因主要有两个,一个就是抽样误差导致的,另一个就是我们的假设是错误的,也就是各组之间的数据本来就是有差异的。那我们怎么来判断到底是哪种错误呢?这个时候就需要引入卡方检验了。

image

Ai为实际频数(出现的次数),Ti为理论频数。

我们把第一个表中各组的值称为实际频数,把第二个表中各组的值称为理论频数。卡方检验的值用来反映理论频数和实际频数的差异大小。理论频数和实际频数差别越大(分子越大),卡方检验值越大;反之,卡方检验值越小。

如果只是由于抽样误差造成的实际频数和理论频数的差异,那卡方检验的值应该很小,因为我们相信我们的抽样还是比较合理的,所以误差不会特别大;如果卡方检验值太大,就不太能够用误差来解释,只能说明原假设不成立,即各组之间的数据本来就有差异。

我们在上面的描述中用到了两个词,卡方值很小或太大,什么样的卡方值算很小,什么样的卡方值算太大呢?这个时候就需要引入我们的卡方分布了,如下图所示,就和Z检验中的正态分布一样。

image

上图中的n为自由度,不同自由度对应的卡方分布是不一样的。而自由度又与特征维度有关,自由度 = (行数-1)*(列数-1),我们上面的例子是两行两列的数据,所以最后自由度为1。我们知道了自由度以后,就可以通过卡方分布的临界值表去找到这个自由度对应的不同边界值以及P值。

通过下图可以看出,当自由度为1时,临界值3.84对应的P值为0.05,也就是当卡方值的大于3.84时,右侧面积小于0.05,可以认为是小概率事件,不可能发生。

image

卡方分布的临界值表:

https://wenku.baidu.com/view/...

我们计算前面提到的两个表的卡方值:

image

计算出来的卡方值60.53远远大于3.84,所以可以认为我们的原假设是不成立的,即是否患肺病与是否吸烟是有关系的。

今天带大家了解了MySQL、算法、数据库、python、网页爬虫的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表