近期在写一些东西,需要画出ROC曲线并且需要对多个ROC曲线进行对比,因为与统计有关,所以用到deLong test来进行评估而不是简单的使用AUC值进行对比。
绘制ROC曲线
利用R语言绘制ROC曲线是非常容易的事情,提前导入好pROC包和ggplot2包,只需要三行代码:
1、读取数据
data<-read.csv('test.csv',header = FALSE),参数header设为FALSE即csv中没有列属性
2、计算ROC
roc<-roc(data$V1,data$V2)
3、绘制
plot(roc,col='#D35400',print.auc=TRUE,print.thres=TRUE,print.auc.x=0.4,print.auc.y=0.1,cex.lab=2,cex.axis=2,print.auc.cex=2,print.thres.cex=1.5)
参数 col是颜色,print.auc 显示AUC值, print.thres 显示曲线上的阈值点,print.auc.x和print.auc.y是对应于显示AUC值在fig中的位置,cex是控制显示内容字体的尺寸。
如果需要再一个fig里面画出多条ROC曲线,只需在接下来的plot()函数中添加参数add=TRUE。
deLong's test
这个是一种AUC显著性检验的方法,通过计算不同ROC曲线AUC值的方差和协方差进行显著性检验得到P值,一般来说P值低于0.05时,对比两个ROC曲线的AUC值才具备统计意义。
在R语言中,roc.test(roc_1,roc_2,method = 'delong')即可计算两个ROC曲线的P值