交互作用我们在前面已经说过,就不具体说了。在SCI论文中可以起到画龙点睛,并能进一步挖掘数据之间的亚组关系,进行数据挖掘也非常实用,交互项的可视化能把交互数据之间的关系明白的展示出来,在实际论文中绝对是加分项,废话不多说,我们实操一下。
我们这次使用的是人流后导致不孕的数据集,我们先导入看一下
library(rms)
bc<-read.csv("E:/r/test/buyunzheng.csv",sep=',',header=TRUE)
数据有8个指标,最后两个是PSM匹配结果,我们不用理他,其余六个为:
Education:教育程度,age:年龄,parity产次,induced:人流次数,case:是否不孕,这是结局指标,spontaneous:自然流产次数。
有一些变量是分类变量,我们需要把它转换一下
bc$education<-ifelse(bc$education=="0-5yrs",0,ifelse(bc$education=="6-11yrs",1,2))
bc$spontaneous<-as.factor(bc$spontaneous)
bc$case<-as.factor(bc$case)
bc$induced<-as.factor(bc$induced)
bc$education<-as.factor(bc$education)
建立模型,假如我们想知道流产(包括人流和自然流产)和年龄这两个指标是不是存在交互影响
f1<- glm(case ~ age + education + parity + induced+spontaneous+age*induced*spontaneous,
family = binomial(link = logit), data = bc)
summary(f1)
我们看到自然流产和年龄之间可能存在交互
我们导入R可视化包visreg
library("visreg")
library("visreg")
plot(visreg(f1,xvar = "age",by="spontaneous",plot=F),xlab="age",ylab="predict",
overlay = T,partial = F,rug=F,,line=list(lty=1:6))
legend("topleft",
c("没有流产","流产1次","流产2次以上"),
lty=c(1,1,1),
col=c("red","green","blue"),
lwd=c(2,1,1),
bty="n")
由此我们可知,随着年龄增长,自然流产2次以上的患者不孕的概率比没有自然流产的患者明显增高。
更多精彩文章请关注公众号:零基础说科研