老师您好,我用您线下课给的TCGA生存分析cox模型代码时,在外部验证时,外部验证的数据集整体表达水平偏高,会不会导致risk值整体偏高,那么cut_value怎么去确定呢?进而分为高低风险组呢?

我看到有的文章使用的表达之经过Zscore,我想问下老师您对这样的方法有了解嘛?谢谢老师!

请先 登录 后评论

2 个回答

小朱大夫
# 8. 基于ROC 构建风险模型
#  Cut-off 值进行优化,选择最优分组阈值
############################################################
# 在训练数据上检验模型
multi_model_risk_values <- predict(Multi_cox2,train[,multi_sign_gene],type="risk")  #根据模型计算每一个样品的风险值
new_exprSet <- train[,c('bcr_patient_barcode','time','status')]   #生存数据
new_exprSet$multi_model_risk_values <- multi_model_risk_values       #增加一列风险值
new_exprSet <- new_exprSet[!is.na(new_exprSet$time),]  #去除生存时间为NA的样品
# ROC 优化,确定划分高风险,低风险阈值
cutoff =1000   #设置中位生存期预测的ROC
pdf(file = "ROC_result.pdf",height = 10,width = 10)
ROC_opt= survivalROC(Stime=new_exprSet$time,
                     status=new_exprSet$status,
                     marker = new_exprSet$multi_model_risk_values,
                     predict.time = cutoff,method="KM")
plot(ROC_opt$FP, ROC_opt$TP, type="l", xlim=c(0,1), ylim=c(0,1),
     xlab=paste( "FPR", "\n", "AUC = ",round(ROC_opt$AUC,3)),
     ylab="TPR",col="blue")
abline(0,1)
min_index <- with(ROC_opt, which.min(1-TP+ FP))  # FPR最小,TPR最大
cut_value = ROC_opt$cut.values[min_index]   #划分阈值
with(ROC_opt, points(FP[min_index], TP[min_index], cex=2, col="red" ))
with(ROC_opt, text(FP[min_index], TP[min_index]*1.05,round(cut_value,3),col="red"))
dev.off()
这是您在有道笔记上的代码,cut_value = ROC_opt$cut.values[min_index]   #划分阈值,  所以我需要外部验证的时候,我用boxplot看了一下表达量,发现外部验证数据集的表达量要稍微高点,所以我想问这个cut_value要去怎么确定呢?
如果还是用之前的cut_value的话,外部验证集的risk value普遍比训练集的要高。麻烦老师了!

请先 登录 后评论
omicsgene - 生物信息
擅长:重测序,遗传进化,转录组,GWAS

cox分析原理及结果阶段见:https://www.omicsclass.com/article/1138

请先 登录 后评论