手把手教你R语言基于pROC包绘制多条ROC曲线

ROC曲线也叫受试者工作曲线,原来用在军事雷达中,后面广泛应用于医学统计中。ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的曲线。
ROC曲线主要应用于二分类结局,比如是否死亡,疾病诊断,肿瘤复发等等,可以用于自变量为连续变量的截点判定。
在这里插入图片描述
可以做ROC曲线的软件很多,如SPSS,R语言,Stata, SAS等等,既往我们已经介绍了使用SPSS制作ROC曲线,今天我们来介绍怎么使用R语言绘制多条ROC曲线,继续使用我们的肺炎数据(公众号回复:肺炎,可以获得数据),我们先导入包和数据

library(pROC)
bc<-read.csv("E:/r/test/feiyan.csv",sep=',',header=TRUE)
names(bc)

在这里插入图片描述
在这里插入图片描述
数据fy为二分类结局变量,其余4个均是炎症指标,都是连续变量,假设我们想知道炎症指标TNF和肺炎发生关系的ROC曲线

roc1<- roc(bc$fy, bc$TNF)
plot(roc1)

在这里插入图片描述
这样一个最简单的ROC曲线就画好了,假设我们想让它光滑一点,并且修改曲线额颜色

plot(smooth(roc1),col="red")

在这里插入图片描述
我们还可以更改Y轴的样式,做成类似SPSS那种

plot(roc1,col="red",legacy.axes=T)##更改Y轴格式

在这里插入图片描述
还可以进一步修改,增加AUC和95%CI

plot(roc1,col="red",legacy.axes=T,print.auc=TRUE)##显示AUC面积
plot(roc1,col="red",legacy.axes=T,print.auc=TRUE,print.thres=TRUE)##添加截点和95%CI

在这里插入图片描述
进一步修改,增加曲线面积
p

lot(roc1, print.auc=TRUE, auc.polygon=TRUE, grid=c(0.1, 0.2),
     grid.col=c("green", "red"), max.auc.polygon=TRUE,
     auc.polygon.col="lightblue", print.thres=TRUE)

在这里插入图片描述
还可以其他方式的截点

par(mfrow=c(1,2))##分屏显示
plot(roc1, print.thres="best", print.thres.best.method="youden")
plot(roc1, print.thres="best", print.thres.best.method="closest.topleft")

在这里插入图片描述
下面我们来绘制多个ROC曲线,先增加3个ROC

roc2<- roc(bc$fy, bc$IL6)
roc3<- roc(bc$fy, bc$sTREM1)
roc4<- roc(bc$fy, bc$PCT)

逐步添加曲线

plot(roc1,col="red",legacy.axes=T)
plot(roc2, add=TRUE, col="blue")
plot(roc3, add=TRUE, col="green")
plot(roc4, add=TRUE, col="black")

在这里插入图片描述
添加图例

legend("bottomright", legend=c("roc1","roc2","roc3","roc4"),col=c("red","blue","green","black"),lty=1)

在这里插入图片描述
我们先求出每个曲线的AUC

round(auc(roc1),3)##AUC
round(ci(roc1),3)##95%CI
round(auc(roc2),3)##AUC
round(ci(roc2),3)##95%CI
round(auc(roc3),3)##AUC
round(ci(roc3),3)##95%CI
round(auc(roc4),3)##AUC
round(ci(roc4),3)##95%CI

在这里插入图片描述
进一步修改图例

legend("bottomright", legend=c("roc1-auc0.637","roc2-auc0.657","roc3-auc0.774","roc4-auc0.872"),
       col=c("red","blue","green","black"),lty=1)

在这里插入图片描述
这样,一个符合论文发表的ROC曲线就做好了,很容易把,假设我们想知道TNF和PCT的曲线面积有无统计学差异,等于说对2个指标进行诊断效能的比较

roc.test(roc1,roc4)

在这里插入图片描述
结果显示PCT诊断肺炎效能优于TNF,结果有统计学意义。
更多精彩文章请关注公众号:零基础说科研
在这里插入图片描述

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天桥下的卖艺者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值