dxy logo
首页丁香园病例库全部版块
搜索
登录

相加交互作用(logistic回归)的可视化:基于R

发布于 2021-03-09 · 浏览 3139 · IP 江苏江苏
这个帖子发布于 4 年零 54 天前,其中的信息可能已发生改变或有所发展。

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

img

通常我们可以通过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。这段代码以图片展示,文字版的显示会很乱。

img
img
img


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)

img
img

从输出的结果我们可以看到与之前的那篇帖子得到的结果基本一致,有兴趣的也可以用Anderson的excel验证一下。尊重数据,助力科研,我们在路上!

相加交互作用的可视化:基于R.docx (38.2 KB)
data.xlsx (36.5 KB)

最后编辑于 2021-03-09 · 浏览 3139

6 40 13

全部讨论0

默认最新
avatar
6
分享帖子
share-weibo分享到微博
share-weibo分享到微信
认证
返回顶部