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值(举例说明,混淆矩阵可以表示两位判断者对于一系列对象进行分类所得结果的一致程度)。

相关推荐
czliutz2 天前
R语言gm玩音乐示例代码Rmarkdown
开发语言·r语言
LASDAaaa12313 天前
【计算机视觉】基于Mask R-CNN的自动扶梯缺陷检测方法实现
计算机视觉·r语言·cnn
没有梦想的咸鱼185-1037-16633 天前
AI大模型支持下的:R-Meta分析核心技术:从热点挖掘到高级模型、助力高效科研与论文发表
开发语言·人工智能·机器学习·chatgpt·数据分析·r语言·ai写作
2501_941333103 天前
表格结构识别与内容解析——基于Cascade R-CNN的表格行、列、单元格自动检测与分类_1
分类·r语言·cnn
云州牧3 天前
Mastering Shiny 08 User feedback
r语言
淮北4944 天前
科研绘图工具R语言
开发语言·r语言
余醉 | dtminer5 天前
R语言常见新手问题
开发语言·r语言
佳哥的技术分享5 天前
Function<T, R> 中 apply,compose, andThen 方法总结
java·学习·r语言
2501_942191776 天前
纺织品微观缺陷检测与分类:基于Faster R-CNN的改进模型实现与性能优化_1
分类·r语言·cnn
TDengine (老段)6 天前
TDengine R 语言连接器进阶指南
大数据·开发语言·数据库·r语言·时序数据库·tdengine·涛思数据