欢迎光临散文网 会员登陆 & 注册

非癌症也能看风险,R语言单因素logistic回归

2022-12-21 16:55 作者:小云爱生信  | 我要投稿

尔云间  一个专门做科研的团队

原创 小果 生信果 

小云今天接触到了非癌症的分析,癌症分析有癌症分析的方法,非癌症也有非癌症的分析方法,小云找了个代码,可以做非癌症的单因素分析,我们一起来看看吧。

代码如下:

data=read.table("D:/非酒精脂肪肝与肝癌/诊断模型/单因素.txt",header = T,row.names = 1,sep "\t") #读取数据

#这里说一下读取的数据,第一列为样本名,第二列为分组,一般是二分组,也就是患病与正常。后面的各列就是各基因的表达量

View(data) #查看数据

library(gtsummary) #启动程序包

glm1<- glm(group==1~UBE2T,

            family = binomial,

            data = data)

res<-tbl_regression(glm1, 

                     exponentiate=T)

#先来计算一个基因试一下


Res

#查看结果

 

#这就是结果了,我们可以看到,这里的P值是0.005,说明这个基因和我们的分组是密切相关的,OR就是风险率,这里的风险率是4.34,而范围是1.59-12.6.

Uni_glm_model=function(x){ #写循环函数

  FML=as.formula(paste0("group==1~",x)) #构筑分析

  glm1<- glm(FML,family = binomial,data = data) #单因素分析

  glm2=summary(glm1) #处理分析结果

  OR=round(exp(coef(glm1)),2) #提取风险率

  SE=glm2$coefficients[,2]

  CI5=round(exp(coef(glm1)-1.96*SE),2) #计算风险率范围

  CI95=round(exp(coef(glm1)+1.96*SE),2)

  CI=paste0(CI5,"-",CI95)

  P=round(glm2$coefficients[,4],4) #提取P值,保留4位小数

  Uni_glm_model <- data.frame("characteristics"=x,

                              "OR"=OR,

                              "CI"=CI,

                              "p"=P)[-1,]

  return(Uni_glm_model)

}


variable.names=colnames(data)[c(2:26)] #把要分析的基因放进去

Uni_glm=lapply(variable.names,Uni_glm_model) #应用函数

library(plyr) #启动程序包

Uni_glm=ldply(Uni_glm,data.frame) #整理成数据框

 

最后得到的结果就是这样的,有了这些数据,我们就可以去画森林图了。


好了,小伙伴们,今天的主要内容就是这些了,小云觉得这个分析方法还是挺实用的,小伙伴们有什么需要分享和讨论的都可以来找小云啊,小云非常高兴和大家交流。


非癌症也能看风险,R语言单因素logistic回归的评论 (共 条)

分享到微博请遵守国家法律