分类变量组间差异分析

2023-12-05 02:30

本文主要是介绍分类变量组间差异分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,频数表列联表

一维频数表
table <- table(data$low)
table
0   1 
130  59 
prop.table(table)#百分比0         1 
0.6878307 0.3121693 
二维频数表
table1 <- table(data$low,data$smoke)
table10  1
0 86 44
1 29 30
addmargins(table1)0   1 Sum
0    86  44 130
1    29  30  59
Sum 115  74 189
prop.table(table1,margin = 1)##行比例0         10 0.6615385 0.33846151 0.4915254 0.5084746prop.table(table1,margin = 2)##列比例0         10 0.7478261 0.59459461 0.2521739 0.4054054

2,独立性检验

t检验(连续变量)和卡方检验(分类变量)-CSDN博客

一文汇总卡方检验全部内容 - 知乎 (zhihu.com)

1,卡方检验

对于一般的列联表,可以使用函数chisq.test()进行 卡方检验。例如,要想知道母亲吸烟情况和新生儿低体重之间的关系是否独立,可以使用下面的命令:

mytable <-table(data$smoke,data$low)
mytable
chisq.test(mytable)Pearson's Chi-squared test with Yates' continuity correctiondata:  mytable
X-squared = 4.2359, df = 1, p-value = 0.03958

函数chisq:test()的参数correct用于设置是否进行连续性校正,默认为TRUE,故在输出中有说明“Pearson's Chi-squared test with Yates'continuity correction”。对于频数表中每个单元格的期望频数都比较大(大于5)的大样本,可以将这个参数设为FALSE,即不进行连续性校正。

期望频数表查看:

chisq.test(mytable)$expected0        10 79.10053 35.899471 50.89947 23.10053

每个单元格的期望频数都比较大,所以可以尝试将参数correct设为FALSE:

chisq.test(mytable,correct = F)Pearson's Chi-squared testdata:  mytable
X-squared = 4.9237, df = 1, p-value = 0.02649

不论是否进行连续性校正,母亲吸烟情况与新生儿低体重都存在显著的关联(p<0.05)。

2,Fisher精确概率检验

如果观察总记录数n小于40,或者频数表里的某个期望频数很小(小于1),则需要使用Fisher精确概率检验。函数fisher.test()可用于执行该检验。即使期望频数都较大,仍然可以尝试使用Fisher精确概率检验。

fisher.test(mytable)Fisher's Exact Test for Count Datadata:  mytable
p-value = 0.03618
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:1.028780 3.964904
sample estimates:
odds ratio 2.014137 

函数fisher.test()不仅可以运用于四格表,还可以运用于行列数大于2的列联表。

3,相对危险度与优势比
library(epiDisplay)
cs(data$smoke,data$low)
          Exposure
Outcome    Non-exposed Exposed TotalNegative 86          29      115  Positive 44          30      74   Total    130         59      189  Rne         Re      Rt   Risk     0.34        0.51    0.39 Estimate Lower95ci Upper95ciRisk difference (attributable risk)     0.17     0.02      0.31     Risk ratio                              1.5      1.02      2.21     Attr. frac. exp. -- (Re-Rne)/Re         0.33                        Attr. frac. pop. -- (Rt-Rne)/Rt*100 %   13.56                       Number needed to harm (NNH)             5.88     3.26      58.85    or 1/(risk difference)     
4,Cochran-Mantel-Haenszelx²检验

两个变量的关联有可能受到第三个变量的影响,因此我们有必要检验两个分类变量在调整(控制)第三个变量的情况下是否独立。Cochran-Mantel-Haenszel x²检验常用于探索变量间的混杂因素。其零假设是:两个分类变量在第三个变量的每一层都是条件独立的。函数mantelhaen.test()可以用来进行该检验。

mytable1 <-table(data$smoke,data$low,data$race)
mantelhaen.test(mytable1)Mantel-Haenszel chi-squared test with continuity correctiondata:  mytable1
Mantel-Haenszel X-squared = 8.3779, df = 1, p-value = 0.003798
alternative hypothesis: true common odds ratio is not equal to 1
95 percent confidence interval:1.490740 6.389949
sample estimates:
common odds ratio 3.086381 

参考:

1:R语言医学数据分析实战/赵军编著.--北京:人民邮电出版社,2020.8

这篇关于分类变量组间差异分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/455805

相关文章

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Python变量与数据类型全解析(最新整理)

《Python变量与数据类型全解析(最新整理)》文章介绍Python变量作为数据载体,命名需遵循字母数字下划线规则,不可数字开头,大小写敏感,避免关键字,本文给大家介绍Python变量与数据类型全解析... 目录1、变量变量命名规范python数据类型1、基本数据类型数值类型(Number):布尔类型(bo

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

一文全面详解Python变量作用域

《一文全面详解Python变量作用域》变量作用域是Python中非常重要的概念,它决定了在哪里可以访问变量,下面我将用通俗易懂的方式,结合代码示例和图表,带你全面了解Python变量作用域,需要的朋友... 目录一、什么是变量作用域?二、python的四种作用域作用域查找顺序图示三、各作用域详解1. 局部作