R语言统计分析——独立性检验

参考资料:R语言实战【第2版】

R语言提供了多种检验类别型变量独立性的方法。

1、卡方独立性检验

我们可以使用chisq.test()函数对二维表的行变量和列变量进行卡方独立性检验。

R 复制代码
# 导入vcd包
library(vcd)
# 创建联列表
mytable<-xtabs(~Treatment+Improved,data=Arthritis)
# 查看列联表
mytable
# 卡方检验
chisq.test(mytable)

结果解读:卡方值为13.055,对应的p值为0.001463,小于0.05,说明治疗方案和改善水平之间存在显著的相关关系。对于本例而言,如果联列表中有一个单元格的数值小于5,则卡方值的计算需要进行矫正。

2、Fisher精确检验

我们可以使用fisher.test()函数进行Fisher精确检验。Fisher精确检验的原假设是:边界固定的列联表中行和列是相互独立的。其调用格式为:fisher.test(mytable),其中mytable是一个二维列联表。示例如下:

R 复制代码
# 创建列联表
mytable<-xtabs(~Treatment+Improved,data=Arthritis)
# 查看列联表
mytable
# Fisher精确检验
fisher.test(mytable)

值得注意的是:这里的fisher.test()函数可以在任意行列数大于等于2的联列表上使用,但不能用于2×2的列联表。

3、Cochran-Mantel-Haenszel检验

mantelhaen.test()函数可用来进行Cochran-Mantel-Haenszel卡方检验,其原假设是,两个名义变量在第三个变量的每一层中都是条件独立的。下列大妈可以检验治疗情况和改善情况在性别的每一水平下是否独立。此检验假设不存在三阶交互作用(即治疗情况×改善情况×性别)。

R 复制代码
# 创建三维的联列表
mytable<-xtabs(~Treatment+Improved+Sex,data=Arthritis)
# Cochran-Mantel-Haenszel检验
mantelhaen.test(mytable)

结果表明,患者接受的治疗方案与得到的改善情况在性别的每一水平下并不独立。

4、相关性的度量

如果在独立性检验中拒绝了原假设(即相互独立),那么我们的兴趣点就会转向用以衡量相关性强弱的相关性度量。vcd包中的assocstats()函数可以用来计算二维列联表的phi系数、列联系数和Cramer's V系数。

R 复制代码
# 加载vcd包
library(vcd)
# 创建联列表
mytable<-xtabs(~Treatment+Improved,data=Arthritis)
# 联列表相关性分析
assocstats(mytable)

总体来说,较大的值意味着较强的相关性。vcd包也提供了kappa()函数,可以计算混淆矩阵的Cohen's kappa值以及加权的kappa值(举例说明,混淆矩阵可以表示两位判断者对于一系列对象进行分类所得结果的一致程度)。

相关推荐
天桥下的卖艺者2 天前
chrals.CTI函数升级版发布,增加了CTI衍生的脂肪指数提取
数据库·r语言
小师兄吃牛肉3 天前
什么是R语言?如何快速学习R语言
开发语言·学习·r语言
喆星时瑜4 天前
Win10/11 安装 R 与 RStudio 详细图文教程
开发语言·r语言·安装
喆星时瑜4 天前
R语言基础语法入门
开发语言·r语言
喆星时瑜4 天前
R语言向量语法的详细教程
开发语言·r语言
临床数据科学和人工智能兴趣组6 天前
在R语言中, 使用 as.factor() 函数转换数值型变量
开发语言·r语言
babe小鑫16 天前
信息与计算科学专业应届生面试 怎么证明自己能解决业务问题
学习·r语言·excel
深兰科技17 天前
深兰科技受邀参与第二届中国(南宁)—东盟人工智能场景应用对接会,深化AI国际合作
人工智能·qt·r语言·scala·symfony·智能机器人·深兰科技
赵钰老师18 天前
基于ArcGIS Pro、R、INVEST等多技术融合下生态系统服务权衡与协同动态分析
python·arcgis·数据分析·r语言
User_芊芊君子22 天前
RStudio 鸿蒙 PC 适配全记录:以 Qt 原生工作区承载嵌入式 R
qt·r语言·harmonyos