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。