一文详解 如何用 R 语言进行卡方检验。

本文主要介绍如何用R语言进行 卡方检验,将按以下顺序进行介绍。
在这里插入图片描述

一、卡方检验基本概念

1、基本原理:卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时,卡方值就为0,表明理论值完全符合。
注意:卡方检验针对分类变量。
2、常见用途:检验两个变量之间是否有关系,比如机器学习中的特征选择,以及医学领域(这块我不了解~~)。
3、计算公式:
3.1通用公式:
在这里插入图片描述
observed:观察频数
expected:理论频数
3.2四格卡方值快速计算公式(又叫拟合度公式):
在这里插入图片描述
4 自由度:简称df(degree of freedom),指的是计算某一统计量时,取值不受限制的个数。
5、适用条件:
1、四格卡方表中的理论频数都应大于5,且n>40
2、当n>40,但理论频数大于 1 且小于5时,此时计算卡方值的通用公式需要进行校正,或者用fisher精确检验,在R语言中的函数为fisher.test()。
6、校正后的卡方值计算公式:
在这里插入图片描述
二、例题计算

假设我们现在有这样一份原始数据:(乱造的)
在这里插入图片描述
我们想探究一下感冒与喝牛奶之间是否有关联,接下来,我们将原始数据转换为四格卡方值,因为两个变量都只有两个值(是与否),所以就是四格卡方检验,当然可能您要检验的其他两个变量之间有其他的特征值,比如有变量天气(晴天,雨天,阴天,下雪)与变量出门(是,否),那这个时候就成了4*2格卡方检验,好了,简单的提一下,不扯远了~,那么经过统计转换后的四格卡方数据如下:
在这里插入图片描述
更一般的格式是这样的:

在这里插入图片描述
好了,现在的数据处理已经完了,接下来就该进行假设检验了,
让我们再回顾一下临界值法假设检验的步骤吧:
1 、给出原假设,备择假设
2 、找统计量,此时需要知道统计量的分布。
3、在给定显著性水平下,求出临界值,构造拒绝域。
4、求出观察值
5、将临界值与观察值进行比较,得出假设检验的结论。
好了,接下来就将问题代入到假设检验的步骤中吧。
小提示:卡方分布为右侧单边检验,如下,这就是一个卡方分布的概率密度函数。在这里插入图片描述
好了,现在正式开始临界值法 假设检验,先说下原理吧。
临界值法假设检验原理:在给定显著性水平α 和统计量的概率密度函数的条件下,我们可以求得拒绝域的临界值,如果我们计算出统计量的观察值落入了拒绝域内,即我们拒绝原假设,否则我们就接受原假设。
现在正式开始 ^ ^
STEP1:原假设:感冒与喝牛奶没有关系 (通常是我们希望推翻的假设,故又称零假设)
备择假设:感冒与喝牛奶有关系。
STEP2:找统计量,此时的统计量就是我们的卡方值计算公式,分布就是卡方分布。统计量:
在这里插入图片描述
STEP3:给定显著性水平α=0.05,此时自由度df=(行数–1)*(列数–1)=1
切勿认为,四格卡方数据中,行数=列数=3
现在,在卡方分布的条件下,我们就可以计算出拒绝域的临界值了:
我用R语言来求:
在这里插入图片描述
上面已经提到过,卡方检验为右侧单边检验,所以拒绝域就是K=[3.8414,∞] (临界值我取了个大概为3.8414)
STEP4:求观察值
求观察值这里,需要细讲一下,我们现在已知观察频数表,重要的是如何求得理论频数表,
在这里插入图片描述

现在我们再回头看我们的原假设:感冒与喝牛奶没有关系
在这个假设下,我们可以根据观察频数表求得感冒率:感冒人数 / 总人数=110/220=0.5,即感冒率就是0.5
那么,现在我们就开始填充上面的理论频数表:
1、先填充理论频数表中的喝牛奶这一行:
根据观察频数表我们知道现在喝牛奶的有120个人,感冒率为0.5,则理论频数表中的’a?’=120 × 感冒率=120*0.5=60,同理,不感冒率为1-0.5,则‘b?’=喝牛奶人数 ×不感冒率=120 ×(1-0.5)=60
2、再填充理论频数表中的不喝牛奶这一行:
不喝牛奶的有100人,感冒率为0.5,则‘c?’=100×0.5=50
同理,‘d?’=不喝牛奶人数 × 不感冒率=100×(1-0.5)=50
至此,我们的理论频数表就填充完成了,如下:
在这里插入图片描述
注意:当理论频数表中有理论值小于5时,则应该使用校正后的卡方值计算公式,公式已经写在上面。
可以尝试用R语言来检验一下是否计算正确:
在这里插入图片描述
可以看到,我们的计算结果正确。
现在我们开始计算观察值,也就是前面我们提到的卡方值通用公式计算:
在这里插入图片描述
当然,对于四格卡方检验,我们也可以拟合度公式来快速求出卡方值。

STEP5:可以很明显看出观察值89.83>3.8414,即我们的观察值落入了拒绝域内,我们就拒绝原假设,接受备择假设,即感冒与喝牛奶有关系。。

三、用R语言来进行卡方检验。
3.1、卡方检验的函数:
首先来看下R语言中进行卡方检验的公式:
在这里插入图片描述
特别需要注意一下这个参数correct,它默认的就是TRUE,即进行卡方值修正,也就是上面我们说的那个校正公式。
在这里插入图片描述
你看,现在的卡方值怎么为87.285,但是我们用通用公式计算的不是89.83多吗?,现在我把参数correct设置为F:
在这里插入图片描述
可以看到,现在卡方值和我们原来用通用公式计算的相同了,且P-value<2.2e-16,远小于我们的显著性水平α=0.05,即我们拒绝原假设。
3.2 P值检验法、
好了,既然说到用R来进行卡方检验了,就再提一下另外一种假设检验方法,即P值检验法,它的假设检验步骤如下:
1、给出原假设,备择假设。
2、给出统计量,需要已知该统计量的分布。
3、根据样本,求出该统计量的观察值,依据观察值与该统计量的分布函数,我们可以求出拒绝原假设的最小的显著性水平P。
4、比较P与给定的显著性水平α,若P<=α,则在显著性水平α下拒绝原假设,否则,接受原假设。
而我们用R语言进行假设检验,通常都是P值法假设检验,其实临界值法假设检验和P值法假设检验,二者是殊途同归。
从已求得的卡方观察值为89.3,那么拒绝原假设的最小的显著性水平P是多少呢?下面我将用卡方分布的分位数函数来求出P值:
在这里插入图片描述
我们可以看到,P值约为2.5985e-21,而chisq.test给出的P值应该是压缩了一些。
好了,以上就是这篇文章的全部内容了,本文基本纯手打,如果有错误,还请各位大佬指出,非常感谢!如果有帮助到您,欢迎点赞、收藏 ^ ^
参考:
https://www.jianshu.com/p/bb0bd72bc428

  • 41
    点赞
  • 179
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在R语言进行卡方检验的方法有多种。一种常见的方法是使用chisq.test()函数。该函数可以计算卡方值和p值。根据引用中的内容,可以使用以下步骤进行卡方检验: 1. 给出原假设和备择假设。 2. 使用chisq.test()函数计算卡方值和p值。默认情况下,该函数会进行卡方值的修正,但你可以通过设置参数correct为FALSE来使用通用公式计算卡方值。 3. 根据给定的显著性水平α,比较p值和α。如果p值小于等于α,则拒绝原假设,否则接受原假设。 需要注意的是,根据引用中提供的信息,chisq.test()函数给出的p值可能会有所压缩。你可以使用卡方分布的分位数函数来获得更准确的p值。 总结起来,使用R语言进行卡方检验的一般步骤如下: 1. 设置原假设和备择假设。 2. 使用chisq.test()函数计算卡方值和p值。 3. 比较p值和给定的显著性水平α,判断是否拒绝原假设。 请注意,这只是一种常见的方法,实际上还有其他方法可以使用R语言进行卡方检验。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [R语言_卡方检验](https://blog.csdn.net/fanlei_lianjia/article/details/78225231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [一文详解 如何用 R 语言进行卡方检验。](https://blog.csdn.net/weixin_44298740/article/details/107225872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [desktop_逻辑回归_R语言卡方检验_疾病模型_卡方检验_metaCCA_](https://download.csdn.net/download/weixin_42668301/26272989)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值