高分SCI中几乎必备有交互效应分析表,通常为文章的表三或者表五,上一篇文章我们已经讲过怎么使用SPSS做出交互效应分析,今天我们R手把手实战做出下图这篇20分的文章的交互效应表。

r语言交互作用怎么分析 r语言交互作用图_bc


我们先要看他是怎么分析的,他把血小板进行4分组和2分组后,在进行血小板和叶酸的交互作用分析,从各个层面分析了血小板对叶酸的影响,所以别人能发高分不是没有原因的。在模型中,他还使用了调整模型和未调整模型进行比较,支持自己的证据力度。我们还是沿用上次的数据来进行分析

把数据导入并查看数据

library(foreign)
 library(survival)
 bc <- read.spss(“E:/r/Breast cancer survival agec.sav”,
 use.value.labels=F, to.data.frame=T)
 bc <- na.omit(bc)
 head(bc)

r语言交互作用怎么分析 r语言交互作用图_bc_02


假如我们研究的是乳腺癌各个pr(孕激素受体状态)和死亡的关系,我们想知道pr(孕激素受体状态)和年龄是否产生交互作用。

先使用CUT函数进行分割

age2<-cut(bc$age,breaks=c(0,40,60,100),include.lowest=T,
labels = c(1,2,3))#把age划分为0-20,20-60,60到100这样3个区间
dd<-cbind(bc,age2)#把变量加入表格

r语言交互作用怎么分析 r语言交互作用图_数据_03

刚才是3分组的,再来一个2分组的

Age3<-cut(bc$age,breaks=c(0,40, 100),include.lowest=T,
          labels = c(1,2))
df<-cbind(bc,age2)

r语言交互作用怎么分析 r语言交互作用图_数据_04

然后通过函数subset和if函数设定子集,每个分类变量都要设定一个子集
我们先来做3分类变量的age2,它的3个标签是,1,2,3,简单设置一下
目前age2是因子变量,我们把它转换成数字的

n.age2<-as.numeric(as.character(df$age2))
df<-cbind(df,n.age2)

然后再对它取其中是1的子集

agec1<-subset(df,df$n.age2<=1) #就是age2中取1的子集

r语言交互作用怎么分析 r语言交互作用图_bc_05


得出这个子集后就对他进行分析

先来个广义线性方程得个回归系数,

f1<-glm(status ~pr,family = binomial,)
summary(f1)

r语言交互作用怎么分析 r语言交互作用图_数据_06


计算OR和95%CI

exp(confint(f1))
exp(coef(f1))

r语言交互作用怎么分析 r语言交互作用图_r语言交互作用怎么分析_07


由此已经算出年龄0-40岁的亚组的OR,95%CI和P值,同理可以算出其他的组

现在我们来做2分组的交互效应

交互效应就不能拿子集了,要用原来的数据

f2<-glm(status ~pr+age3,family = binomial,data =df)
summary(f2)

r语言交互作用怎么分析 r语言交互作用图_数据库_08


求交互效应其实很简单,加入一个a*b就可以了,箭头所示就是交互的P值了

f3<-glm(status ~pr+age3+pr*age3,family = binomial,data =df)

r语言交互作用怎么分析 r语言交互作用图_类变量_09


调整模型就是在模型中加入其他变量就可以了,我这里就调整了er,其实做出来用到R的代码并不难,关键是你要思路清晰,明白它是怎么做出来的,

r语言交互作用怎么分析 r语言交互作用图_数据库_10