小果带你绘制ROC曲线评估生存预测能力

ROC(Receiver Operating Characteristic)曲线是一种用于评估分类模型性能的工具。在生存分析中,ROC曲线用于评估基于预测因子(例如基因表达)对生存或事件发生的预测能力。评估分类模型性能:ROC曲线提供了一种直观的方式来评估分类模型的性能,特别是在不同阈值下的性能变化。曲线越接近左上角,模型的性能越好。比较不同模型:通过比较不同模型的ROC曲线,可以判断哪个模型更适合于给定的预测任务。曲线下面积(Area Under the ROC Curve,AUC)是一个常用的指标,表示ROC曲线下的面积,范围在0到1之间。AUC值越接近1,模型的性能越好。选择最佳阈值,可视化模型性能:ROC曲线直观地展示了模型在不同阈值下的分类性能,可以用于向他人或研究报告中展示模型的性能。ROC曲线是一种广泛应用于分类模型性能评估的工具,特别在生存分析中用于评估预测因子对生存或事件发生的预测能力。它提供了一个综合的评估分类模型性能的指标(AUC),同时可帮助选择最佳分类阈值。

#install.packages(“survival”)

#install.packages(“survminer”)

#install.packages(“timeROC”)

安装所需的R包,

分别是survival、survminer和timeROC。如果您之前已经安装了这些包,可以跳过这些代码。

#引用包

library(survival)

library(survminer)

library(timeROC)

加载所需的R包,以便在代码中使用相应的函数和功能

inputFile=”expTime.txt”

指定了输入文件的文件名和路径。在这个例子中,输入文件被假设为名为expTime.txt的文件

setwd(“C:\\biowolf\\Gene\\12.ROC”)

设置R的工作目录,即代码执行期间的默认文件夹。在这个例子中,工作目录被设置为C:\\biowolf\\Gene\\12.ROC

rt=read.table(inputFile, header=T, sep=”\t”, check.names=F, row.names=1)

gene=colnames(rt)[3]

使用read.table函数从指定的输入文件中读取数据,并将数据存储在名为rt的数据框中。

header = TRUE表示第一行包含列名,sep = “\t”表示使用制表符作为列之间的分隔符,

check.names = FALSE表示不检查列名的有效性,row.names = 1表示使用第一列作为行名。

colnames(rt)[3]将第三列的列名存储在变量gene中。

ROC_rt=timeROC(T=rt$futime, delta=rt$fustat,

marker=rt[,gene], cause=1,

weighting=’aalen’,

times=c(1,3,5), ROC=TRUE)

使用timeROC函数执行生存分析,并计算在不同时间点的AUC值。

T = rt$futime表示事件发生时间(生存时间)的向量,delta = rt$fustat表示事件状态(生存/死亡)的向量,

marker = rt[, gene]表示用于预测生存的标记变量(基因表达)的向量,

cause = 1表示将其视为单一事件(例如,死亡),weighting = ‘aalen’表示使用Aalen的加权方法,

times = c(1, 3, 5)表示计算1、3和5年的AUC值,ROC = TRUE表示计算ROC曲线。

pdf(file=”ROC.pdf”, width=5, height=5)

用pdf函数创建一个输出设备,将后续的图形输出保存为PDF文件。

file = “ROC.pdf”指定了输出文件的名称,width = 5, height = 5指定了输出图形的宽度和高度。

plot(ROC_rt,time=1,col=’green’,title=FALSE,lwd=2)

用plot函数分别绘制了在1、3和5年时间点的ROC曲线。col参数指定了曲线的颜色,

add = TRUE表示将曲线添加到同一图中,title = FALSE表示不显示标题,lwd = 2表示曲线的线宽。

plot(ROC_rt,time=3,col=’blue’,add=TRUE,title=FALSE,lwd=2)

plot(ROC_rt,time=5,col=’red’,add=TRUE,title=FALSE,lwd=2)

legend(‘bottomright’,

c(paste0(‘AUC at 1 years: ‘,sprintf(“%.03f”,ROC_rt$AUC[1])),

paste0(‘AUC at 3 years: ‘,sprintf(“%.03f”,ROC_rt$AUC[2])),

paste0(‘AUC at 5 years: ‘,sprintf(“%.03f”,ROC_rt$AUC[3]))),

col=c(“green”,’blue’,’red’),lwd=2,bty = ‘n’)

legend函数用于添加图例,显示每个时间点的AUC值。’bottomright’指定了图例的位置,

paste0函数用于将AUC值和文本连接在一起,sprintf函数用于格式化AUC值的显示,

col参数指定了图例文本的颜色,lwd = 2表示图例中线的线宽,bty = ‘n’表示不绘制图例的边框。

dev.off()

关闭了PDF设备,完成了图形的保存

下期将为你带来更多R语言的骚操作技巧,以下推荐的是一个多功能的生信平台。

云生信平台链接:http://www.biocloudservice.com/home.html。

云生信平台链接:http://www.biocloudservice.com/home.html。