高分SCI中几乎必备有交互效应分析表,通常为文章的表三或者表五,上一篇文章我们已经讲过怎么使用SPSS做出交互效应分析,今天我们R手把手实战做出下图这篇20分的文章的交互效应表。
我们先要看他是怎么分析的,他把血小板进行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)
假如我们研究的是乳腺癌各个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)#把变量加入表格
刚才是3分组的,再来一个2分组的
Age3<-cut(bc$age,breaks=c(0,40, 100),include.lowest=T,
labels = c(1,2))
df<-cbind(bc,age2)
然后通过函数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的子集
得出这个子集后就对他进行分析
先来个广义线性方程得个回归系数,
f1<-glm(status ~pr,family = binomial,)
summary(f1)
exp(confint(f1))
exp(coef(f1))
由此已经算出年龄0-40岁的亚组的OR,95%CI和P值,同理可以算出其他的组
现在我们来做2分组的交互效应
交互效应就不能拿子集了,要用原来的数据
f2<-glm(status ~pr+age3,family = binomial,data =df)
summary(f2)
求交互效应其实很简单,加入一个a*b就可以了,箭头所示就是交互的P值了
f3<-glm(status ~pr+age3+pr*age3,family = binomial,data =df)
调整模型就是在模型中加入其他变量就可以了,我这里就调整了er,其实做出来用到R的代码并不难,关键是你要思路清晰,明白它是怎么做出来的,