专栏名称: 解螺旋
解螺旋——医生科研最好的帮手。无论你是科研零基础,抑或初窥门径,你都可以在解螺旋获得极大的提升,从而面对基金、论文、实验游刃有余。解螺旋课堂是所有热爱科研技能学习的医生聚集地,解螺旋会员是医生科研全方位的贴心助手,加入我们,体验改变。
目录
相关文章推荐
CIRS医械合规动态  ·  临床文献检索方法(中文文献),保姆级教程! ·  2 天前  
懒人医考  ·  确定!25年启用新大纲,新教材,变动大! ·  2 天前  
丁香园  ·  2025 年,可能是你离国自然最近的一年! ·  3 天前  
丁香园肿瘤时间  ·  同日!2 款帕妥珠单抗获批上市 ·  5 天前  
51好读  ›  专栏  ›  解螺旋

1+1大于2是怎么回事?来个相加交互模型看看

解螺旋  · 公众号  · 医学  · 2017-07-07 18:01

正文

科研经验 | 文献 | 实验 |  | SCI写作 | 国自然

作者:麦子

转载请注明:解螺旋·临床医生科研成长平台


在某些疾病有这样的现象,A和B两种危险因素都和疾病呈正相关,人们理所当然地想,同时暴露于A和B的人群的风险,肯定比仅暴露于A或仅暴露于B的人群要高。好像没毛病,但问题是有时候前者比后者高太多了,是不是略显诡异?

 

于是人们做出推测,A和B不是独立作用的。如果A作用于某条通路,B独立地作用于另一条通路,那么同时暴露于两个因素时,其风险在数学上可以解释为A+B或A×B。不幸的是,观察到的数据脱离了这个轨道,那只能认为,另外至少还有一条通路,需要A和B同时参与。所以当同时暴露于两个因素时,除了他们各管各的,还打开了其他的通路。

 

这就是交互作用,最常见的研究就是某个基因异常与某个环境因素的交互作用,还有基因-基因交互作用的研究。当我们有了怀疑,就可以从统计上做个交互分析来检验。

 

上边的A+B和A×B,指代统计学上的两种交互模型,一个是相加尺度交互模型,一个相乘尺度交互模形。分析危险因素时最常用的logistic回归,本质上是相乘模型。但近年来有不少学者提倡使用相加模型,因为相加模型的意义更明确。


Eur J Epidemiol. 2005;20(7):575-9.

 

如图,U表是未暴露,纵坐标表示风险,第二和第三根柱子分别是单独暴露于基因突变和吸烟时的风险,第四根柱子就是同时暴露于两因素时,风险竟然比叠加要高这么多。

 

如果想要通过logistic回归找到有统计学意义的危险因素,再检测它们在相加尺度上的交互作用,就需要经过一些变换。

  

需要计算的统计量

 

要知道两因素在相加尺度上是否发生了交互作用,就需要知道三个值:

 

交互作用相对超额危险度(Relative Excess Risk of Interaction,RERI)

归因比(Attributable Proportion,AP)

协同指数(Synergy Index,S)

 

如果没有发生交互作用,那么RERI和AP等于0,S等于1。更准确地说,是RERI和AP的置信区间包含0,S的置信区间包含1。反之则可认为发生了交互作用。

 

计算这三个值在不同的软件中有不同的方法,我当然还是要介绍最简便的R。

 

就用一份模拟的数据来演示吧:

 


Group是疾病分组,1为病例组,0为对照组;A因素,1为暴露,0为不暴露;B同理。可见按照暴露情况,可以把人群分为4类,即A0B0,A1B0,A0B1,A1B1。就是要比较这四类人与疾病风险的关系。

 

## 先从File→Import Dataset导入数据(本例中命名为Data),然后


library(Matrix)

library(survival)

library(epiR)

setwd('D://Interaction')


# 载入需要用到的包,设置工作路径

 

## 构造虚拟变量Dum,把两个因素整合成上面说的那四类


Data$Dum

Data$Dum[Data$A ==0 & Data$B ==0]

Data$Dum[Data$A ==1 & Data$B ==0]

Data$Dum[Data$A ==0 & Data$B ==1]

Data$Dum[Data$A ==1 & Data$B ==1]

Data$Dum


# 看起来厚厚一段其实很简单,在Data表中建立Dum变量,先设为NULL(空值),然后填数字。“[ ]”表示条件,“&”表示“且”,NULL之后的第一行就表示,当A=0,且B=0时,Dum赋值为0,后面依此类推。这样我们就有了一个Dum变量,共有0、1、2、3这四个值。

 

# 最后一句千万别漏了,是把Dum变量的类型转化为分类变量(factor)。

 

## 构建广义线性模型


Data.glm

summary(Data.glm)


# 这是先把我们想用的logistic回归推广到广义线性模型(generalized linear model, GLM)里,因为logistic是GLM的一个特例,而计算REPI等指标的计算本来就是适用于线性模型的。再通过Family参数选择binomial,将其特化成logistic模型。Data选择数据集。

 

# 用summary()函数查看模型的一些特征,在输出的一堆结果中,注意这个表:

 


刚才的Dum变量有0、1、2、3这四个变量,现在以0为参照,列出了其他三个值的参数。其实你只需要记住三个Dum在表中的位置就行了,即第2、3、4行。

 

## 计算相加模型指标


epi.interaction(model = Data.glm, coeff = c(2,3,4), type = "RERI", conf.level = 0.95)

epi.interaction(model = Data.glm, coeff = c(2,3,4), type = "APAB", conf.level = 0.95)

epi.interaction(model = Data.glm, coeff = c(2,3,4), type = "S", conf.level = 0.95)


# model选择刚才建好的广义线性模型,coeff就是三个Dum在Coefficients表中的位置,type指定需要计算的统计量,conf.level指定置信区间。



然后就得到了三个结果:



Est是估计值,lower和upper是置信区间的两端,在报告上就写成“RERI: 3.56, 95% CI: 0.47–6.65。”后两个类推。

 

可见RERI的和AP都为正值,置信区间都不包含0,而S>1,置信区间不包含1,说明在相加尺度上,二者发生了交互作用,且为协同作用。(如果RERP和AP小于0,S小于1,则为拮抗作用)。

 

注意事项和基本原理

 

要注意的地方主要是下结论时。首先明确一点,这个“交互作用”是指统计学上的交互作用,不能直接说它们具有生物学意义上的交互作用。因为统计模型又不止一种,你会看到有些研究中,相乘模型有统计学意义,相加模型没有统计学意义,或者相乘模型为拮抗作用,相加模型为协同作用。所以这才有了谁更合理的争论。

 

所以只能说,“A因素和B因素在相加尺度上具有交互作用”,可以推测有生物学交互,而不能直接写“具有生物交互作用”。同样,没检测到统计学上的交互作用,也不能说明没有生物学交互作用,因为生物学是复(keng)杂(die)的。所以,你就有了申请下一个课题的理由。

 

接下来,我们简单看一下那些统计学家用公式堆积起来的战场(非战斗人员请迅速撤离)。

 

刚才把人群按暴露情况分为四组了是吧,他们的相对危险度(Relative Risk)也一样编码,记作RR00,RR10,RR01,RR11。

 

如果没有相加交互作用,那么RR11 - RR00=(RR10 - RR00) + (RR01 - RR00) —— (1)

 

因为未暴露于我们研究的两个因素时也有人发病,所以RR00其实代表研究之外的其他因素,或说其他通路,它们在A1B1、A1B0和A0B1三种情况下,都是暴露的,你来或不来,我就在这里,所以要减去它们的干扰。

 

于是把公式整理一下得到:RR11-RR10-RR01+RR00=0。因为RR=暴露组累积患病率/对照组累积患病率,所以可以认为RR00=1,代进去,就得于了RERI公式:

 

RERI = RR11-RR10-RR01+1 —— (2)

 

知道为什么RERI要跟0对比了吧。RERI偏离0,说明前方有敌情,另一条需要A和B通时参与的通路打开,使得患病风险超过了模型的预测。从名字看就知道RERI是指超过的部分。

 

另外两个指标AP和S,有些文献中都不报。也来看一下吧:

 

AP=RERI/RR11,显然是指同时暴露于两因素时,超过的部分占总体的比例。所以它也是跟0比较。

 

S=(RR11-1)/[(RR10-1)+(RR01-1)],这个要稍微推导一下。回到刚才RERI的原始公式(1),把RR00=1代入,得到:RR11 - 1 = (RR10 – 1) + (RR01 -1),一比不就是S=1了嘛,所以S要跟1对比。

 

相乘模型也类似,不过把(1)公式中的+号变×号,-号变÷号,于是:

 

RR11/RR00 = (RR10/RR00) × (RR01/RR00),则RR11×RR00 = RR10 × RR01,所以相乘模型是用RR11/RR10 · RR01 —— (3) 与1比较,大于1为协同,小于1为拮抗。

 

设想一下,如果(3)大于1时,即RR11 > RR10 · RR01,两因素是协同作用,套到RERI公式中仍然是协同作用。

 

可是(3)小于1时,即RR11 < RR10 · RR01,RERI那边的情况就不一定了,协同、拮抗、无交互作用三种情况都可能发生。

 

参考资料:

1.Interaction: A word with two meanings creates confusion

2.Calculating measures of biological interaction

3.流行病学研究中相加和相乘尺度交互作用的分析

4.Logistic回归模型中交互作用的分析及评价

5.Epi Vignettes: Interaction and effect modification - Neal D. Goldstein, PhD, MBI

6.https://www.rdocumentation.org/packages/epiR/versions/0.9-82/topics/epi.interaction


投稿邮箱: [email protected]

合作微信:helixlife6