R语言,ROC曲线,deLong test

近期在写一些东西,需要画出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值

csv数据示例如下图所示

第一列为二分类的类型标签(GT),第二列为模型预测值(0~1)


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容