R语言应用interactionR包进行亚组相加交互作用分析

这篇具有很好参考价值的文章主要介绍了R语言应用interactionR包进行亚组相加交互作用分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在统计分析中交互作用是指某因素的作用随其他因素水平变化而变化,两因素共同作用不等于两因素单独作用之和(相加交互作用)或之积(相乘交互作用)。相互作用的评估是尺度相关的:乘法或加法。乘法尺度上的相互作用意味着两次暴露的综合效应大于(或小于)两次暴露单独效应的乘积。加性尺度上的相互作用意味着两次暴露的综合效应大于(或小于)两次暴露单独效应的总和。
目前在大量文章中只报道了乘法交互效应,而加法交互效应报道得较少。有文献表明,单单只用乘法交互效应低估了疾病协同的危险性,从而低估了发病率。
R语言应用interactionR包进行亚组相加交互作用分析,R语言,r语言,开发语言
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)

R语言应用interactionR包进行亚组相加交互作用分析,R语言,r语言,开发语言
这是个很简单的数据,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)

R语言应用interactionR包进行亚组相加交互作用分析,R语言,r语言,开发语言
这个表格可以在RStudio 的目录(或者你设定的目录)下找到

R语言应用interactionR包进行亚组相加交互作用分析,R语言,r语言,开发语言
怎么看这个表格呢,根据发病的方法比较OR,见下图

R语言应用interactionR包进行亚组相加交互作用分析,R语言,r语言,开发语言
如果将“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)

R语言应用interactionR包进行亚组相加交互作用分析,R语言,r语言,开发语言
两个方法结果都差不多哈。下面演示一个包含三个二元变量数据,outcome 是结局变量, exp1 和exp2是暴露变量

d<-read.csv("E:/r/test/jiaohu2.csv",sep=',',header=TRUE)

R语言应用interactionR包进行亚组相加交互作用分析,R语言,r语言,开发语言
方法基本一样,就是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)

R语言应用interactionR包进行亚组相加交互作用分析,R语言,r语言,开发语言
我们看到多了个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,本期文章结束,公众号回复:相加交互作用数据,可以获得文中两个数据,想进一步了解看下参考文献也是很有帮助的。

参考文献:文章来源地址https://www.toymoban.com/news/detail-701072.html

  1. 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.
  2. [1]许敏锐,强德仁,周义红,等.应用R软件进行logistic回归模型的交互作用分析[J].中国卫生统计, 2017, 34(4):4.DOI:CNKI:SUN:ZGWT.0.2017-04-043.
  3. Rothman K, Greenland S (1998). Modern Epidemiology. Lippincott - Raven Philadelphia, USA.
  4. 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包进行亚组相加交互作用分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Web3.js与OKX Web3钱包进行交互:实现去中心化应用的无缝连接

    随着Web3.0技术的不断发展,越来越多的开发者开始探索如何利用去中心化钱包与区块链网络进行交互。在这篇文章中,我们将深入探讨如何通过Web3.js库来连接和操作OKX Web3钱包,以实现对加密货币、NFT以及链上智能合约的管理和交易。 Web3.js 是一个由以太坊社区开发的核心

    2024年02月19日
    浏览(49)
  • 鸿蒙HarmonyOS应用开发之使用Node-API实现跨语言交互开发流程

    使用Node-API实现跨语言交互,首先需要按照Node-API的机制实现模块的注册和加载等相关动作。 ArkTS/JS侧 :实现C++方法的调用。代码比较简单,import一个对应的so库后,即可调用C++方法。 Native侧 :.cpp文件,实现模块的注册。需要提供注册lib库的名称,并在注册回调方法中定义接

    2024年04月26日
    浏览(48)
  • 简单C语言两数相加

        在C语言中,相加两数是一个基本的要求,但其实也有复杂操作,比如 高精度加法 ,或者 链表相加 (还要考虑进位),都是比较难的,那么今天我们来聊一聊简单的problem a+b;     先发代码 如上便是两数之和的代码,但是大家有没有想过,如果是两个超长整数相加,那么

    2024年02月07日
    浏览(40)
  • 力扣---两数相加(c语言版)

    🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇简介::记录一个力扣写了好久的一个问题 金句分享: ✨在心里种花,人生才不会荒芜!✨ 题目名称:两数相加(题目来源于力扣) [传送门] 此题被 进位 问题困扰良久,所以注意

    2023年04月10日
    浏览(34)
  • LeetCode | 两数相加 C语言

    Problem: 2. 两数相加 主要是一一相加和逆序的方式存储 先说逆序储存,看下图 我们先声明出指针p和指针q,还有指针head(主要用于return上而已),然后进行一系列操作,之后,p = q,之后的操作就是对q进行,至于p,只做一个动作,p = q 至于相加嘛!好说,将对应的两个数加起

    2024年02月22日
    浏览(45)
  • 三元组操作(相加)——稀疏矩阵(c语言)

     运行环境:TDM-GCC 三元组用来存储 稀疏矩阵 比较节省空间,因为稀疏矩阵大部分都是零元素,而三元组只记录非零元素。 这里两个相加的矩阵有着同样的 i行 j列。 运行结果:         行数:3 列数:4  元素个数:4         --------------------         第0 行  第1 列  1    

    2024年02月05日
    浏览(50)
  • 使用了Python语言和Flask框架。创建一个区块链网络,允许用户通过HTTP请求进行交互,如包括创建区块链、挖矿、验证区块链等功能。

    目录 大概来说: 二、代码注释 1.添加交易方法(add_transaction函数) 2.添加新的节点(add_node 函数) 3、替换链的方法(replace_chain函数) 总结 定义了一个名为Blockchain的类,用于构建区块链。 在Blockchain类中,定义了创建区块、获取上一个区块、工作量证明、哈希计算、验证区

    2024年04月25日
    浏览(38)
  • 2235.两整数相加:19种语言解法(力扣全解法)

    力扣题目链接:https://leetcode.cn/problems/add-two-integers/ 给你两个整数  num1 和 num2 ,返回这两个整数的和。   示例 1: 示例 2:   提示: -100 = num1, num2 = 100 时间复杂度 O ( 1 ) O(1) O ( 1 ) 空间复杂度 O ( 1 ) O(1) O ( 1 ) AC代码 C++ C Python Python2 Java C# Javascript Ruby Swift Go Scala Kotlin Rust PHP

    2024年02月12日
    浏览(38)
  • 值得收藏 | 脑机交互作用研究

    神经损伤和疾病对许多人的生活产生了巨大的影响,导致了许多运动障碍和日常任务无法独立完成。皮质假体系统通过脑机接口(BCI)接收一个动作命令来执行所需的位置,从而使得经历神经损伤的人能够实现部分功能恢复。BCI技术可以在侵入性、时间和空间记录分辨率以及

    2024年02月07日
    浏览(37)
  • Stream两个Map的value值进行相加/相减,并将合并数据集赋值给新Map

    最近做项目遇到,需要把两个Map中的value值进行相加或相减,循环遍历方法太麻烦,有时候数据量大的时候,还会超时。因此使用java8中Stream的Merge方法来处理上述问题,使用如下: 结果截图: 从结果图中可以看出,两个map进行相加或者相减是可以看出,key值相同的进行valu

    2024年02月14日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包