R语言:卡方检验

χ2检验(Chi-Square Test)是一种用于检验分类变量之间是否存在相关性的统计方法。χ2检验的原理基于观察到的频数与期望频数之间的偏差来判断分类变量之间是否存在显著的关联。

χ2检验的原理可以概括为以下几个步骤:

建立假设: 首先,需要建立零假设(H0)和备择假设(H1)。在χ2检验中,零假设通常是假设两个分类变量之间没有关联,备择假设则是它们之间存在关联。

计算期望频数: 根据观察到的数据计算期望频数。期望频数是基于零假设下的预期频数,它告诉我们如果零假设成立,我们期望在每个组中看到多少观察值。

计算χ2统计量 :根据观察频数和期望频数计算χ2统计量。χ2统计量衡量了观察值与期望值之间的偏差程度,它的计算公式为:χ2 = Σ [(观察频数 - 期望频数)^2 / 期望频数]。
确定显著性水平: 选择显著性水平(通常为0.05),用来评估χ2统计量的显著性。

比较χ2统计量与临界值:根据自由度和显著性水平查找χ2分布表,找到临界值。将计算得到的χ2统计量与临界值进行比较。

做出决策: 如果计算得到的χ2统计量大于临界值,则拒绝零假设,认为分类变量之间存在关联;如果小于临界值,则接受零假设,认为分类变量之间没有关联。

通过以上步骤,χ2检验可以帮助我们判断分类变量之间是否存在关联,并评估这种关联的显著性。

这个意思是根据给定的数据,对比了男性和女性病例的阳性率,并进行了χ2检验来评估两者之间的差异是否具有统计学意义。

例子:

男性病例总数为 7,866,其中阳性病例数为 342,阳性率为 4.35%。

女性病例总数为 6,038,其中阳性病例数为 310,阳性率为 5.13%。

进行χ2检验后得到的结果是:

χ2值为 4.726。

P值为 0.030。

在这种情况下,通过对比两个性别的阳性率并进行χ2检验,发现两个性别之间的差异具有统计学意义。也就是说,男性和女性病例的阳性率之间的差异不太可能是由随机因素引起的,而可能存在有意义的关联或差异。

需要注意的是,P值(显著性水平)小于0.05,这意味着我们可以以95%的置信度拒绝零假设,即男性和女性病例的阳性率之间存在显著差异。

使用R语言实现卡方检验

复制代码
> table(MP2064_year_jijie$性别,MP2064_year_jijie$检测结果)
    
     阳性 阴性
  男 1507 1126
  女 1429  971

我们看到这个数据男性阳性人数为1507,阴性为1126,女性阳性为1429,阴性为971,我们使用卡方检验看一看阳性率是否在性别上存在差异。

复制代码
> chisq.test(table(MP2064_year_jijie$性别,MP2064_year_jijie$检测结果))

	Pearson's Chi-squared test with Yates' continuity correction

data:  table(MP2064_year_jijie$性别, MP2064_year_jijie$检测结果)
X-squared = 2.6543, df = 1, p-value = 0.1033

我们看到,χ2=2.6543,自由度为1,p=0.1033>0.05,所以可以认为阳性率在性别上的分布没有差异。

复制代码
> table(cil_jiahuanzhehao_xiuyear$性别,cil_jiahuanzhehao_xiuyear$检测结果)
    
     阳性 阴性
  男 3148 2963
  女 2912 2402
复制代码
> chisq.test(table(cil_jiahuanzhehao_xiuyear$性别,cil_jiahuanzhehao_xiuyear$检测结果))

	Pearson's Chi-squared test with Yates' continuity correction

data:  table(cil_jiahuanzhehao_xiuyear$性别, cil_jiahuanzhehao_xiuyear$检测结果)
X-squared = 12.183, df = 1, p-value = 0.0004823

换一组数据,就有了差异。

相关推荐
czhc11400756634 天前
LINUX913 shell:set ip [lindex $argv 0],\r,send_user,spawn ssh root@ip “cat “
tcp/ip·r语言·ssh
zhangfeng11334 天前
win7 R 4.4.0和RStudio1.25的版本兼容性以及系统区域设置有关 导致Plots绘图面板被禁用,但是单独页面显示
开发语言·人工智能·r语言·生物信息
zhangfeng11334 天前
在 R 语言里,`$` 只有一个作用 按名字提取“列表型”对象里的单个元素 对象 $ 名字
开发语言·windows·r语言
高-老师4 天前
R语言生物群落(生态)数据统计分析与绘图实践技术应用
开发语言·r语言·生物群落
WangYan20225 天前
R语言:数据读取与重构、试验设计(RCB/BIB/正交/析因)、ggplot2高级绘图与统计检验(t检验/方差分析/PCA/聚类)
r语言·ggplot2·dplyr
zhangfeng11335 天前
错误于make.names(vnames, unique = TRUE): invalid multibyte string 9 使用 R 语言进行数据处理时
开发语言·r语言·生物信息
zhangfeng11336 天前
R geo 然后读取数据的时候 make.names(vnames, unique = TRUE): invalid multibyte string 9
开发语言·chrome·r语言·生物信息
梦想的初衷~7 天前
R语言生物群落数据分析全流程:从数据清洗到混合模型与结构方程
机器学习·r语言·生态·环境
没有梦想的咸鱼185-1037-16639 天前
基于R语言机器学习方法在生态经济学领域中的实践技术应用
开发语言·机器学习·数据分析·r语言
zhangfeng11339 天前
R 语法高亮为什么没有,是需要安装专用的编辑软件,R语言自带的R-gui 功能还是比较简单
开发语言·r语言