R语言应用interactionR包进行亚组相加交互作用分析
在统计分析中交互作用是指某因素的作用随其他因素水平变化而变化,两因素共同作用不等于两因素单独作用之和(相加交互作用)或之积(相乘交互作用)。相互作用的评估是尺度相关的:乘法或加法。乘法尺度上的相互作用意味着两次暴露的综合效应大于(或小于)两次暴露单独效应的乘积。加性尺度上的相互作用意味着两次暴露的综合效应大于(或小于)两次暴露单独效应的总和。
目前在大量文章中只报道了乘法交互效应,而加法交互效应报道得较少。有文献表明,单单只用乘法交互效应低估了疾病协同的危险性,从而低估了发病率。
Rothman指出 logistic 或 Cox 回归模型中乘积项无统计学意义,
并不表示两因素无相加交互作用,也不表示无生物学交互作用,并从理论上探讨了用于评价因素间是否有区别于相乘交互作用的相加交互作用,以及三个评价指标:相对超危险度比(the relative excess risk due tointeraction,RERI)、归因比(the attributable proportion
due to interaction,AP)和交互作用指数(the synergy in-dex,SI)的构造和计算方法。
以最简单的两因素两水平为例。假设两暴露因子分别为 A、B。1 表示因素存在,0 表示因素不存在,因变量为疾病的发生与否。logistic 回归模型得到的 OR 值,作为相对危险度(RR)的估计值,OR _A0B0 表示 A、B 都不存在时发病的 OR 值,分析时作为参照组;OR _A1B0 表示仅 A 存在、B 不存在时发病的 OR 值;OR _A0B1 表示 A不存在、仅 B 存在时发病的 OR 值;OR _A1B1 表示 A、B共同存在时发病的 OR 值。
Rothman 用于评价相加交互作用的三个指标公式如下:
RERI= OR _A1B1 - OR _A0B1 - OR _A1B0 +1;
AP = RERI / OR _A1B1 ;
SI= (OR _A1B1 - 1) / [(OR _A0B1 - 1) + (OR _A1B0 - 1)]
由此看出:RERI是A和B同时暴露的发病率减去单独A和B的危险度,得出的一个超出部分的危险度。AP就是超出部分的危险度占总危险度的比例。SI就是A和B同时暴露的发病率增加的危险度除以单独A和B的发病增加的危险度。(体会一下)。
下面咱们使用interactionR包进行分析,先导入R包和数据
library(interactionR)
bc<-read.csv("E:/r/test/jiaohu1.csv",sep=',',header=TRUE)
这是个很简单的数据,oc是结局变量,alc 和 smk是暴露因素。
先建立模型
model.glm <- glm(oc ~ alc * smk,family = binomial(link = "logit"),data = OCdata)
代码很简单,就一句代码
out <- interactionR(model.glm, exposure_names = c("alc", "smk"), ci.type = "mover", ci.level = 0.95, em = F, recode = F)
interactionR包可以直接生成一个做好的word表格,连做表格都帮你省了。
interactionR_table(out)
这个表格可以在RStudio 的目录(或者你设定的目录)下找到
怎么看这个表格呢,根据发病的方法比较OR,见下图
如果将“ci类型”设置为“mover,就会选择variance recovery这种方法
out <-interactionR(model.glm,exposure_names = c("alc", "smk"),ci.type = "mover", ci.level = 0.95,em = FALSE, recode = FALSE)interactionR_table(out)
两个方法结果都差不多哈。下面演示一个包含三个二元变量数据,outcome 是结局变量, exp1 和exp2是暴露变量
d<-read.csv("E:/r/test/jiaohu2.csv",sep=',',header=TRUE)
方法基本一样,就是CI这里取的是"delta",recode = TRUE。
model.prev <- glm(outcome ~ exp1 * exp2, family = binomial(link = "logit"), data = d)out1<-interactionR(model.prev,exposure_names = c("exp1", "exp2"),ci.type = "delta", ci.level = 0.95,em = FALSE, recode = TRUE
)interactionR_table(out1)
我们看到多了个Effect of exp1 within the strata of exp2这个指标,大概的意思是exp1在exp2这个分层的效应。具体详情请参看:Zou GY. On the Estimation of Additive Interaction by Use of the Four-by-two Table and Beyond. American Journal of Epidemiology 2008; 168:212-24.这篇文章。
OK,本期文章结束,公众号回复:相加交互作用数据,可以获得文中两个数据,想进一步了解看下参考文献也是很有帮助的。
参考文献:
- Zou GY. On the Estimation of Additive Interaction by Use of the Four-by-two Table and Beyond. American Journal of Epidemiology 2008; 168:212-24.
- [1]许敏锐,强德仁,周义红,等.应用R软件进行logistic回归模型的交互作用分析[J].中国卫生统计, 2017, 34(4):4.DOI:CNKI:SUN:ZGWT.0.2017-04-043.
- Rothman K, Greenland S (1998). Modern Epidemiology. Lippincott - Raven Philadelphia, USA.
- Knol, M.J., VanderWeele, T.J., Groenwold, R.H.H. et al. Estimating measures of interaction on an additive scale for preventive exposures. Eur J Epidemiol 26, 433–438 (2011). https://doi.org/10.1007/s10654-011-9554-9
相关文章:

R语言应用interactionR包进行亚组相加交互作用分析
在统计分析中交互作用是指某因素的作用随其他因素水平变化而变化,两因素共同作用不等于两因素单独作用之和(相加交互作用)或之积(相乘交互作用)。相互作用的评估是尺度相关的:乘法或加法。乘法尺度上的相互作用意味着两次暴露的综合效应大于(…...
mysql 数据库面试题整理
Mysql 中 MyISAM 和 InnoDB 的区别 1、InnoDB 支持事务MyISAM 不支持 2、InnoDB 支持外键MyISAM 不支持 3、InnoDB 是聚集索引,MyISAM 是非聚集索引 4、InnoDB 不保存表的具体行数 5、InnoDB 最小的锁粒度是行锁,MyISAM是表锁 mysql中有就更新…...
LeetCode-435-无重叠区间
题目链接: 力扣435 -无重叠区间 解题思路:和之前的合并区间、汇总区间都比较相似, 先对二维数组排序,按照左边界升序;当 当前区间的左区间 < 前一个区间的右区间,说明有重叠,res1,还要更新当…...
记录深度学习常用指令(一)
一、创建Conda虚拟Python环境 conda create -n [仓库名字] python[版本]二、激活环境 conda activate [仓库名字]三、安装PyTorch PyTorch官方 GPU: conda install pytorch1.11.0 torchvision0.12.0 torchaudio0.11.0 cudatoolkit11.3 -c pytorchCPU࿱…...

Shell脚本练习——系统应用相关
显示系统信息 [rootwenzi data]#cat systemInfo.sh #/bin/bash RED"\E[1;31m" GREEN"\E[1;32m" END"\E[0m" echo -e "$GREEN----------------------Host systeminfo--------------------$END" echo -e "HOSTNAME: $REDho…...

同创永益入选首批“金融数字韧性与混沌工程实践试点机构”
8月16日下午,由北京国家金融科技认证中心、北京国家金融标准化研究院联合主办的“传递信任 服务发展”金融科技标准认证生态大会在太原成功举办。中国金融电子化集团有限公司党委书记、董事长周逢民,中国科学院院士冯登国,中国工商银行首席技…...

Hive 表注释乱码解决
文章目录 出现原因MySQL 字符集修改调整元数据库字符集测试 出现原因 一般 Hive 的元数据信息都存储在 MySQL 中,但 MySQL 数据库中的 character_set_server 和 character_set_database 参数,默认都为 latin1 字符集,这两个参数决定了服务器…...

【搭建私人图床】使用LightPicture开源搭建图片管理系统并远程访问
文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进,功能也越来越多,而手机…...

Ubuntu入门04——目录与文件
目录 1.显示当前工作目录 2.更改目录 3.创建工作目录 4.删除工作目录 5.移动文件或者文件夹 6.文件夹and文件查看命令 7. 回到根目录,回到上一级 8.删除工作目录 9.查看目录和文件 10.以树状图列出目录内容 11.文件查找 12.在数据库中查找文件或目录 1…...
深度学习中有哪些超参数,都有什么作用
深度学习中有许多超参数需要设置,它们会对模型的性能和训练过程产生重要影响。以下是一些常见的超参数及其作用: 学习率(Learning Rate):控制参数更新的步长。较小的学习率可以使模型收敛更稳定,但可能需要…...

centOS下载与安装
1 下载centOS镜像 The CentOS Project 选择阿里云的镜像 2 下载虚拟机 Vmware workstation VMware - Delivering a Digital Foundation For Businesses 1 下载安装 centOs是一个操作系统,操作硬件的。所以需要有机器,可以使用虚拟机。 2 创建新的虚…...
uniapp中mixins的使用
mixins 是一个 js 对象,它可以包含我们组件中JS部分的任意功能选项,如:data、components、methods、created、computed 等等。我们只要将公用的功能以对象的方式传入 mixins 选项中,当组件使用 mixins 对象时所有 mixins 对象都将…...

【JAVA基础——JAVA虚拟机JVM】
JVM 文章目录 JVM一.JVM结构1.1.JVM包含两个子系统和两个组件1.2.运行时数据区1.2.1.简介1.2.2.程序计数器1.2.3.虚拟机栈1.2.4.堆1.2.5.本地方法栈1.2.6.方法区(永久代实现)java8-1.2.7.元空间(Metaspace)1.2.8.JVM字节码执行引擎1.2.9.直接内存(Direct Memory)1.2.10.垃圾收集…...

RTSP/Onvif视频服务器EasyNVR安防视频平台服务器频繁重启的问题解决方案
EasyNVR平台优秀的视频能力在于通过RTSP/ONVIF协议,将前端接入设备的音视频资源进行采集,并转码成适合全平台、全终端分发的视频流格式,包括RTSP、RTMP、FLV、HLS、WebRTC等格式。平台可拓展性强、部署轻快,在安防监控领域有着广泛…...

SpringBoot初级开发--服务请求(GET/POST)所有参数的记录管理(8)
服务端在定位错误的时候,有时候要还原现场,这就要把当时的所有入参参数都能记录下来,GET还好说,基本NGINX都会记录。但是POST的请求参数基本不会被记录,这就需要我们通过一些小技巧来记录这些参数,放入日志…...

快速掌握STM32工程创建
STM32 工程创建-- 使用Keil uVision5 软件 晓理紫 1 准备库函数库 STM32F10x_StdPeriph_Lib_V3.5.0 VX 搜索“晓丽紫”关注回复STM32F10x即可下载 2、创建一个目录用来存放工程 STM32Study STM32Study/study1 存放本次工程目录 3、打开Keil uVision5 创建工程 4、选择型号(根据…...

如何利用开源工具搭建AI大模型底座
开源社区是技术发展的一个重要部分,对于AI大模型来说,也是如此。 我们在这篇文章中来尝试通过开源工具来构建AI大模型的底座,涉及到的技术包括: LangchainOpenAIFlowiseLocalAILlama 使用Langchain构建第一个对话应用 如果你使…...

算法笔记:二叉树
1 基本二叉树 二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常称为“左子节点”和“右子节点”。 二叉树的根是唯一没有父节点的节点,而所有其他节点都有一个父节点和零个或两个子节点。 1.1 基础术语 节点(Node&…...

1. 安装Zookeeper
1.下载 点击下载Zookeeper 单机版安装 安装Zookeeper前需要先安装jdk上传安装包rz解压安装包:tar -zxvf apache-zookeeper-3.6.0-bin.tar.gz -C /opt/app/zookeeper zookeeper目录结构:a. bin: 放置运行脚本和工具脚本b. conf: zookeeper 默认读取配置的目录,里面会有…...
warning: ignoring unsupported character ‘问题修复
rivers/net/wireless/aic8800/Kconfig:1⚠️ ignoring unsupported character 问题修复: 有一次编译内核,看到有下面的warning: jianjian:~/share/kylin/rk-kernel-5.10$ make menuconfigUPD scripts/kconfig/mconf-cfgHOSTCC scripts/…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

Linux操作系统共享Windows操作系统的文件
目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...