R语言基于ggplot绘制多条ROC曲线

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

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

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

roc1<- roc(bc$fy, bc$TNF)
g<-ggroc(roc1)
g

在这里插入图片描述
一个最简单的图形就出来啦,我们继续对它进行修改

g + theme_minimal() + ggtitle("输入标题") + 
  geom_segment(aes(x = 1, xend = 0, y = 0, yend = 1), color="red", 
               linetype=6)###设置对角线,主要设置起点和终点的X,Y坐标

在这里插入图片描述
对Y轴坐标进行更改

gl <- ggroc(roc1, legacy.axes = TRUE)
gl

在这里插入图片描述

gl + xlab("1-灵敏度") + ylab("敏感性") + 
  geom_segment(aes(x = 0, xend = 1, y = 0, yend = 1), color="darkgrey", linetype="dashed")

在这里插入图片描述
绘制多条ROC曲线,先生成多个ROC

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

绘制图形

g2 <- ggroc(list(TNF=roc1, IL6=roc2, sTREM1=roc3,PCT=roc4))
g2

在这里插入图片描述
也可以这样绘制,也是一样的图形

roc.list <- roc(fy ~ TNF + IL6 + sTREM1+PCT, data = bc)
g.list <- ggroc(roc.list)
g.list

在这里插入图片描述
可以修改线条颜色和线型

g5 <- ggroc(roc.list, aes=c("linetype", "color"))
g5

在这里插入图片描述
添加对角线

g5+annotate(geom = "segment", x = 1, y = 0, xend =0, yend = 1)

在这里插入图片描述
可以选择自己喜欢的线条形式,这样一个用于论文发表的ROC曲线就做好了

g2+annotate(geom = "segment", x = 1, y = 0, xend =0, yend = 1)+
        scale_fill_discrete(labels=c("TNF ", "IL6 ", "sTREM1", "PCT"))

在这里插入图片描述
更多精彩文章请关注公众号:零基础说科研
在这里插入图片描述

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天桥下的卖艺者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值