ROC曲线也叫受试者工作曲线,原来用在军事雷达中,后面广泛应用于医学统计中。ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的曲线。
ROC曲线主要应用于二分类结局,比如是否死亡,疾病诊断,肿瘤复发等等,可以用于自变量为连续变量的截点判定。

目前有部分SCI文章中使用了校正协变量的ROC曲线,后台有粉丝问校正协变量的ROC曲线怎么做,今天我们来演示一下,使用的是一个肾移植的数据(公众号回复:肾移植数据,可以获得该数据),我们先导入数据和R包看一下看

library(RISCA)
dataDIVAT3<-read.csv("E:/r/test/shenyizhi.csv",sep=',',header=TRUE)


这是一个4267 名法国肾移植受者的数据,ageR:接受肾移植患者年龄,sexeR:患者性别,year.tx:肾移植的时间,ante.diab:是否有糖尿病,pra:患者移植前的免疫反应(1 = 可检测,0 = 不可检测),ageD:捐献肾脏的捐献者的年龄,death.time;生存时间,death:死亡,结局变量
我们取一部分数据来分析,这样数据没有这么大,好分析一点

dataDIVAT3 <- dataDIVAT3[1:400,]

假设我们想知道患者年龄和死亡的ROC关系,我们先来个没有进行校正的ROC,confounders是混杂因素的意思,没有校正的时候这里填入1,precision是ROC曲线的步长,一般都是固定的

roc1 <- roc.binary(status="death", variable="ageR", confounders=~1,data=dataDIVAT3, precision=seq(0.1,0.9, by=0.1) )

绘图

plot(roc1, xlab="1-specificity", ylab="sensibility")


假设我们想对患者性别和捐献者年龄这两个指标进行校正,校正的思想主要是通过逆概率加权,生一个加权后的标准化年龄指标进行校准,先建立模型

lm1 <- lm(ageR ~ ageD + sexeR, data=dataDIVAT3[dataDIVAT3$death == 0,])

生成校正后的标准化年龄指标

dataDIVAT3$ageR_std <- (dataDIVAT3$ageR - (lm1$coef[1] + lm1$coef[2] *dataDIVAT3$ageD + lm1$coef[3] * dataDIVAT3$sexeR)) / sd(lm1$residuals)

生成ROC数据

roc2 <- roc.binary(status="death", variable="ageR_std",confounders=~bs(ageD, df=3) + sexeR, data=dataDIVAT3, precision=seq(0.1,0.9, by=0.1))

最后绘图

plot(roc2, col=2, pch=2, lty=2, type="b", xlab="1-specificity", ylab="sensibility")
lines(roc1, col=1, pch=1, type="b")
legend("bottomright", lty=1:2, lwd=1, pch=1:2, col=1:2,c(paste("Crude estimation, (AUC=", round(roc1$auc, 2), ")", sep=""),paste("Adjusted estimation, (AUC=", round(roc2$auc, 2), ")", sep="") ) )


可以看出,经过校正后,AUC面积和曲线变化并不大,说明说明校准因素影响很小,支持了原结论。

R语言绘制校正协变量后的ROC曲线相关推荐

  1. 使用aPCoA包实现校正协变量的主坐标分析(aPCoA)以排除混杂协变量的影响

    使用aPCoA包实现校正协变量的主坐标分析(aPCoA)以排除混杂协变量的影响 主坐标分析(PCoA)广泛用于生态学和微生物学等领域,以描述样本之间的差异,例如群落的beta多样性等.然而混杂的协变量 ...

  2. r语言绘制精美pcoa图_R语言绘制交互式热图

    热图 通过热图可以简单地聚合大量数据,并使用一种渐进的色带来优雅地表现,最终效果一般优于离散点的直接显示,可以很直观地展现空间数据的疏密程度或频率高低.但也由于很直观,热图在数据表现的准确性并不能保证 ...

  3. r语言绘制雷达图_用r绘制雷达蜘蛛图

    r语言绘制雷达图 I've tried several different types of NBA analytical articles within my readership who are ...

  4. R语言绘制陕西省地图并标出几家医院的位置

    最近师姐问,能不能把几家医院的位置在陕西省地图上标注出来.今天查了一下资料,整合几位大佬的代码,整理出了用R语言绘制陕西省地图,并标注医院的方法.话不多说,上干活. 第一步,调用地图:我调用了百度地图 ...

  5. R语言——绘制直方图

    R语言--绘制直方图 R语言安装 Rstidio安装 开始绘制直方图 安装ggplot2包 准备数据 读取绘图数据 调用包 开始绘图 完毕 最近做项目,需要对实验数据绘制直方图,excel绘制之后发现 ...

  6. 如何使用R语言绘制生存曲线图

    在预后研究中,生存曲线是常见的图片之一,目的是描述各组中患者的生存情况.好的生存曲线图不仅可以令读者.编辑和审稿专家眼前一亮,也能为论文增色不少. 接下来跟大家分享如何用R语言绘制生存曲线图. 第一步 ...

  7. R语言绘制热图实践(一)pheatmap包

    目录 前言 pheatmap包 pheatmap简介 常用参数介绍 使用 安装 绘制样本间相关系数图(简单使用) 差异表达基因热图(进阶使用) 如何查看pheatmap的聚类结果 pheatmap总结 ...

  8. R语言绘制不一样的条形图

    绘制条形图的方法有很多,这里介绍如果用R语言绘制一个不一样的条形图 准备数据,这里为了方便,我们使用已经存在于gcookbook包中的一个数据集 首先需要调用该包,如果该包不存在,可以使用下面的方式安 ...

  9. R语言绘制生存曲线图

    R语言绘制生存曲线图 KMunicate是支持按照Morris等人的KMunicate研究推荐的方式生成Kaplan-Meier图. 1958年,Edward L. Kaplan 和Paul Meie ...

  10. R语言绘制Bump Chart

    R语言绘制Bump Chart的小示例 # install.packages("tidyverse") # install.packages("ggbump") ...

最新文章

  1. python deque双端队列的神奇用法
  2. 数学建模之图像处理---颜色建模
  3. [WCF 4.0新特性] 默认终结点
  4. 学会了这些技术,你离BAT大厂不远了
  5. 怎样在linux卸载java,卸载linux自带java,linux自带java
  6. altium导出钻孔文件_[Altium Designer 学习]怎样输出Gerber文件和钻孔文件
  7. Java 数组插入元素
  8. GIT上传下载报错:[You do not have permission to pull from the repository]的解决方案!
  9. 会声会影背景轨中的所有效果和素材导出为html5格式导入不,如何解决会声会影导入导出的格式问题?...
  10. C++之---class 的三种访问修饰符( public、private、protected )
  11. ActiveMQ(4) ActiveMQ JDBC 持久化 Mysql 数据库
  12. 易语言之今日头条新闻收集源码
  13. 常用的java开发框架_Java开发中常用框架
  14. 动态分级存储特性-SmartTier
  15. 2022春季数据结构期中考试总结
  16. python爬取58同城租房信息_分页爬取58同城租房信息.py
  17. 多肽TAT接枝/功能肽RGDC修饰荧光碳量子点/碳量子点修饰多肽LyP-1的制备研究
  18. x264参数与代码对应
  19. 1154.一年中的第几天
  20. 简易数字电压表设计 单片机 仿真 ADC0809

热门文章

  1. sql server windows nt 64bit 内存占用过高
  2. javaweb_表单设计
  3. 根据城市首字母进行分类,区分多音字,获取城市首字母
  4. 大数据之 Kafka API 从入门到放弃 (第四章)
  5. python中返回上一步操作的快捷键_在计算机中返回上一步的快捷键
  6. 使用Clustal进行多序列比对
  7. 2021年最新程序员培训机构排名,学习前避坑必看
  8. 学生使用腾讯云搭建个人网站
  9. atk-hc05 蓝牙
  10. C# 插入、删除Excel分页符