R语言绘制校正协变量后的ROC曲线
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曲线相关推荐
- 使用aPCoA包实现校正协变量的主坐标分析(aPCoA)以排除混杂协变量的影响
使用aPCoA包实现校正协变量的主坐标分析(aPCoA)以排除混杂协变量的影响 主坐标分析(PCoA)广泛用于生态学和微生物学等领域,以描述样本之间的差异,例如群落的beta多样性等.然而混杂的协变量 ...
- r语言绘制精美pcoa图_R语言绘制交互式热图
热图 通过热图可以简单地聚合大量数据,并使用一种渐进的色带来优雅地表现,最终效果一般优于离散点的直接显示,可以很直观地展现空间数据的疏密程度或频率高低.但也由于很直观,热图在数据表现的准确性并不能保证 ...
- r语言绘制雷达图_用r绘制雷达蜘蛛图
r语言绘制雷达图 I've tried several different types of NBA analytical articles within my readership who are ...
- R语言绘制陕西省地图并标出几家医院的位置
最近师姐问,能不能把几家医院的位置在陕西省地图上标注出来.今天查了一下资料,整合几位大佬的代码,整理出了用R语言绘制陕西省地图,并标注医院的方法.话不多说,上干活. 第一步,调用地图:我调用了百度地图 ...
- R语言——绘制直方图
R语言--绘制直方图 R语言安装 Rstidio安装 开始绘制直方图 安装ggplot2包 准备数据 读取绘图数据 调用包 开始绘图 完毕 最近做项目,需要对实验数据绘制直方图,excel绘制之后发现 ...
- 如何使用R语言绘制生存曲线图
在预后研究中,生存曲线是常见的图片之一,目的是描述各组中患者的生存情况.好的生存曲线图不仅可以令读者.编辑和审稿专家眼前一亮,也能为论文增色不少. 接下来跟大家分享如何用R语言绘制生存曲线图. 第一步 ...
- R语言绘制热图实践(一)pheatmap包
目录 前言 pheatmap包 pheatmap简介 常用参数介绍 使用 安装 绘制样本间相关系数图(简单使用) 差异表达基因热图(进阶使用) 如何查看pheatmap的聚类结果 pheatmap总结 ...
- R语言绘制不一样的条形图
绘制条形图的方法有很多,这里介绍如果用R语言绘制一个不一样的条形图 准备数据,这里为了方便,我们使用已经存在于gcookbook包中的一个数据集 首先需要调用该包,如果该包不存在,可以使用下面的方式安 ...
- R语言绘制生存曲线图
R语言绘制生存曲线图 KMunicate是支持按照Morris等人的KMunicate研究推荐的方式生成Kaplan-Meier图. 1958年,Edward L. Kaplan 和Paul Meie ...
- R语言绘制Bump Chart
R语言绘制Bump Chart的小示例 # install.packages("tidyverse") # install.packages("ggbump") ...
最新文章
- python deque双端队列的神奇用法
- 数学建模之图像处理---颜色建模
- [WCF 4.0新特性] 默认终结点
- 学会了这些技术,你离BAT大厂不远了
- 怎样在linux卸载java,卸载linux自带java,linux自带java
- altium导出钻孔文件_[Altium Designer 学习]怎样输出Gerber文件和钻孔文件
- Java 数组插入元素
- GIT上传下载报错:[You do not have permission to pull from the repository]的解决方案!
- 会声会影背景轨中的所有效果和素材导出为html5格式导入不,如何解决会声会影导入导出的格式问题?...
- C++之---class 的三种访问修饰符( public、private、protected )
- ActiveMQ(4) ActiveMQ JDBC 持久化 Mysql 数据库
- 易语言之今日头条新闻收集源码
- 常用的java开发框架_Java开发中常用框架
- 动态分级存储特性-SmartTier
- 2022春季数据结构期中考试总结
- python爬取58同城租房信息_分页爬取58同城租房信息.py
- 多肽TAT接枝/功能肽RGDC修饰荧光碳量子点/碳量子点修饰多肽LyP-1的制备研究
- x264参数与代码对应
- 1154.一年中的第几天
- 简易数字电压表设计 单片机 仿真 ADC0809