一文详解 如何用 R 语言进行卡方检验。 您所在的位置:网站首页 单样本卡方检验例题 一文详解 如何用 R 语言进行卡方检验。

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

2024-07-07 01:45| 来源: 网络整理| 查看: 265

本文主要介绍如何用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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有