用R语言绘制ROC曲线

1 roc曲线的意义
ROC曲线就是用来判断诊断的正确性,最理想的就是曲线下的面积为1,比较理想的状态就是曲线下的面积在0.8-0.9之间,0.5的话对实验结果没有什么影响。
如图:
在这里插入图片描述
2代码部分
install.packages(“pROC”)
install.packages(“ggplot2”)

library(pROC)
library(ggplot2)
#建立曲线
data(aSAH)
rocobj1<-roc(aSAH o u t c o m e , a S A H outcome,aSAH s100b)
rocobj2<-roc(aSAH o u t c o m e , a S A H outcome,aSAH wfns)
rocobj3<-roc(aSAH o u t c o m e , a S A H outcome,aSAH ndka)
#计算full AUC
auc(rocobj1)
auc(rocobj2)
auc(rocobj3)

#绘制曲线
plot(rocobj1)

#其他参数美化
plot(rocobj1,print.auc=TRUE,auc.polygon=TRUE,grid=c(0.1,0.2),grid.col=c(“green”,“red”),max.auc.polygon=TRUE,auc.polygon.col=“skyblue”,print.thres=TRUE)

#计算partial AUC选择关注一定范围数据

plot(rocobj1,print.auc=TRUE,auc.polygon=TRUE,partial.auc=c(0.8,0.4),partial.auc.focus=“sp”,grid=c(0.1,0.2),grid.col=c(“green”,“red”),max.auc.polygon=TRUE,auc.polygon.col=“skyblue”,print.thres=TRUE,reuse.auc=FALSE)

#比较两个曲线,pROC提供三种方法比较“delong”, “bootstrap”或“venkatraman”
roc.test(rocobj1,rocobj2,method = “bootstrap”)
#ggroc(功能仍在测试中)绘制Multiple curves
g3<-ggroc(list(s100b=rocobj,wfns=rocobj2,ndka=rocobj3))
g3

install.packages(“pROC”)
library(“pROC”)##roc
data(aSAH)
roc1<-roc(myData l a b e l , m y D a t a label,myData score)
roc2<-roc(myData2 l a b e l , m y D a t a 2 label,myData2 score)
polt(roc1,col=“blue”)
polt.roc(roc2,add=TRUE,col=“red”)

3 实验结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_29423387/article/details/87911526