分类变量组间差异分析

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

相关文章

Java 接口定义变量的示例代码

《Java接口定义变量的示例代码》文章介绍了Java接口中的变量和方法,接口中的变量必须是publicstaticfinal的,用于定义常量,而方法默认是publicabstract的,必须由实现类... 在 Java 中,接口是一种抽象类型,用于定义类必须实现的方法。接口可以包含常量和方法,但不能包含实例

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

C++ scoped_ptr 和 unique_ptr对比分析

《C++scoped_ptr和unique_ptr对比分析》本文介绍了C++中的`scoped_ptr`和`unique_ptr`,详细比较了它们的特性、使用场景以及现代C++推荐的使用`uni... 目录1. scoped_ptr基本特性主要特点2. unique_ptr基本用法3. 主要区别对比4. u

Nginx内置变量应用场景分析

《Nginx内置变量应用场景分析》Nginx内置变量速查表,涵盖请求URI、客户端信息、服务器信息、文件路径、响应与性能等类别,这篇文章给大家介绍Nginx内置变量应用场景分析,感兴趣的朋友跟随小编一... 目录1. Nginx 内置变量速查表2. 核心变量详解与应用场景3. 实际应用举例4. 注意事项Ng

Java多种文件复制方式以及效率对比分析

《Java多种文件复制方式以及效率对比分析》本文总结了Java复制文件的多种方式,包括传统的字节流、字符流、NIO系列、第三方包中的FileUtils等,并提供了不同方式的效率比较,同时,还介绍了遍历... 目录1 背景2 概述3 遍历3.1listFiles()3.2list()3.3org.codeha

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

Python之变量命名规则详解

《Python之变量命名规则详解》Python变量命名需遵守语法规范(字母开头、不使用关键字),遵循三要(自解释、明确功能)和三不要(避免缩写、语法错误、滥用下划线)原则,确保代码易读易维护... 目录1. 硬性规则2. “三要” 原则2.1. 要体现变量的 “实际作用”,拒绝 “无意义命名”2.2. 要让