美文网首页R语言写不出来啊!
R语言多因素cox回归构建预测模型

R语言多因素cox回归构建预测模型

作者: 不会生信哟 | 来源:发表于2022-11-09 09:36 被阅读0次

    杀杀

    (第一步不作赘述,一般会使用单因素cox或者寻找差异基因等方法,筛选与生存相关的分子,准备进行下一步的模型构建)

    本篇举例是筛选了12个单因素cox与生存显著相关的分子(p和adj.p皆小于0.05,以构建模型,并达到显著区分生存的效果

    1. 准备用于cox的矩阵,包含:一列生存时间,一列生存状态,其余12列为纳入多因素cox的12个分子的表达,行名为样本名。


      示例数据
    2. 做多因素cox。
    multi_Cox <- coxph(Surv(RFS_time_Months, RFS_Status) ~ ., data = Data_tnbc)
    
    1. 逐步回归,采用前向/后向/双向的规则去除冗余或无法使预测效能更佳的因素。
    step_Cox <- step(multi_Cox ,direction = "backward") ##参数还有forward和both
    cox_summary <- summary(step_Cox )
    
    1. 使用入选的因素来构建模型,为每个样本进行风险打分,并根据中位风险打分将样本分为高低风险。
    riskScore=predict(step_Cox ,type = "risk",newdata = Data_tnbc)
    coxGene=row.names(cox_summary$coefficients)
    coxGene=gsub("`","",coxGene)
    outCol=c("funtime","funstat",coxGene)
    risk=as.vector(ifelse(riskScore>median(na.omit(riskScore)),"high","low"))
    
    1. 将新生成的高低风险label加入第一步的矩阵的新一列,并用cox或者生存分析检验其风险和生存差异。
    Data_tnbc$risklabel_new <- risk
    cox_new <- coxph(Surv(RFS_time_Months, RFS_Status) ~ risk, data =Data_tnbc)
    cox_new
    surv_TTP<-survfit(Surv(RFS_time_Months, RFS_Status) ~ risk, data =Data_tnbc)
    ggsurvplot(surv_TTP,
                pval = TRUE, #计算并显示组间差异的显著性
                conf.int = F, #是否显示置信区间,这里没显示
                risk.table = F, #风险表格,显示对应的患者数量
                xlim = c(0, 120),#x轴范围,这里是120个月的意思
                break.time.by = 24,  #x轴间隔,每24个月显示一格
                xlab = "RFS_time_Months",  #x轴的label
                ylab = "Survival Proportion",#y轴的label
                legend.title = TitleNames,
                main = "Survival curves",
                submain = title)
    

    以上是基础的cox模型训练,可以通过输入不同的因素/增减因素,来训练模型达到最佳效果

    相关文章

      网友评论

        本文标题:R语言多因素cox回归构建预测模型

        本文链接:https://www.haomeiwen.com/subject/xajigrtx.html