相加交互作用(logistic回归)的可视化:基于R
很久之前写了一篇题目为二元logistic模型中分类自变量的相加交互作用:基于R,其中提到了相加交互作用:通过epiR程序包可以得到判断相加交互作用的相对超危险度比(RERI)、归因比(AP)和交互作用指数(SI)。最近看到很多朋友在问二元logistic回归中二分类变量间相加交互作用的可视化,即如下图这样。

通常我们可以通过Anderson等人编制的Excel来绘制这张图,今天用R语言来实现这一过程。所用的自定义函数来自参考文献(许敏锐, 强德仁, 周义红,等. 应用R软件进行logistic回归模型的交互作用分析[J]. 中国卫生统计, 2017, 034(004):670-672,675.),我在图片的颜色上做了一个小的调整,让输出的图片为彩色图。
1.读入数据
##加载数据
library(openxlsx)
inter<-read.xlsx("data.xlsx",sheet =1)
2.构建自定义函数
这个是最主要的部分,每一步都有注释。有兴趣的可以慢慢的梳理一下这一段。其中“构建交互作用的 OR 值矩阵”这部分的A和B,是简单代指,大家作图时要根据自己数据的变量名进行命名。另外,这段自定义函数也同时给出了RERI、AP和SI。这段代码以图片展示,文字版的显示会很乱。



3.设置哑变量
设置哑变量时,大家也要根据自己的变量名称来修改A和B,或者以其他的方式命名。
## 设置哑变量
inter$A_B<-ifelse(inter$A=='0'&inter$B =='0','A0B0',
ifelse(inter$A =='0'&inter$B== '1','A0B1',
ifelse(inter$A=='1'&inter$B=='0','A1B0','A1B1')))
4.构建模型,并给出结果和图片
##以A_B构建 logistic 回归模型( 注意: 模型中 A_B 变量在前,调整变量在后)
Iglm <- glm (Disease~A_B,family = binomial,data = inter)
##输出结果和图
interact (Iglm)


从输出的结果我们可以看到与之前的那篇帖子得到的结果基本一致,有兴趣的也可以用Anderson的excel验证一下。尊重数据,助力科研,我们在路上!
最后编辑于 2021-03-09 · 浏览 3139