R语言绘制校正协变量后的ROC曲线

article/2025/11/10 19:19:23

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面积和曲线变化并不大,说明说明校准因素影响很小,支持了原结论。


http://chatgpt.dhexx.cn/article/o3CNymWZ.shtml

相关文章

倾向值分析(协变量选择)

Hirano 和 Imbens 基于预设的临界t值来设定预测变量的方法 逻辑回归&#xff1a;逻辑回归虽然带有回归字样&#xff0c;但是逻辑回归属于分类算法。逻辑回归可以进行多分类操作&#xff0c;但由逻辑回归算法本身性质决定其更常用于二分类。 a.逻辑回归公式如下&#xff1a; 其…

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

使用aPCoA包实现校正协变量的主坐标分析&#xff08;aPCoA&#xff09;以排除混杂协变量的影响 主坐标分析&#xff08;PCoA&#xff09;广泛用于生态学和微生物学等领域&#xff0c;以描述样本之间的差异&#xff0c;例如群落的beta多样性等。然而混杂的协变量可能会使与感兴趣…

多变量时间序列、预训练模型和协变量

darts官方地址 GitHub&#xff1a;https://github.com/unit8co/darts文档&#xff1a;https://unit8co.github.io/darts/index.html 本笔记可作为以下内容的教程&#xff1a; 在多个时间序列上训练单个模型使用预训练模型来获得训练期间看不到的任何时间序列的预测训练和使用…

协变量偏移_恶意软件分类的协变量偏移

协变量偏移 介绍 (Introduction) Covariate shift in the data-generating distribution lowers the usefulness of generalization error as a measure of model performance. By unpacking the definitions, the previous sentence translates to “high accuracy on the dis…

matlab 去除协变量,求助协变量调整

花了一个礼拜的时间重新学习了一下协方差&#xff0c;回归&#xff0c;感觉自己的理解很多都是不对的。 协方差分析是方差分析线性回归&#xff0c;但它要求很多&#xff0c;比如至少有两个分组(一个分组就是线性回归了)&#xff0c;协变量要是连续变量自变量和因变量要有线性关…

自变量/解释变量/因变量/响应变量/协变量等变量相关概念探析

概念探析 一般科学实验主要涉及以下三种变量&#xff1a; 自变量/独立变量&#xff08;independent variable&#xff09;&#xff1a;自变量是指在实验中由实验者操作的变量&#xff0c;它被认为不会受其他变量的影响&#xff08;即独立性&#xff09;。 因变量&#xff08…

爬虫-猫眼电影票房

背景 最近也不知道咋了&#xff0c;一直遇到 字体反爬手段&#xff0c;起点中文网&#xff0c;抖音等等吧&#xff0c;猫眼我一直想搞&#xff0c;只是没有精力了&#xff0c;前面搞了2个了&#xff0c;不差这一个。搞完这个&#xff0c;不在搞字体反爬了。 目标网站 猫眼票房…

python爬虫实例——中国电影票房

刚好最近在做一个关于中国电影市场的分析&#xff0c;所以这篇实例就诞生啦&#xff01;&#xff01;&#xff01; 一、观察网页 我所爬取的网站是&#xff1a;中国票房——年度票房。 网址甩出来&#xff1a;http://www.cbooo.cn/year?year2019 我们需要的数据是从2015年到…

python爬虫实战——猫眼电影案例

python爬虫实战——猫眼电影案例 背景 笔者上一篇文章《基于猫眼票房数据的可视化分析》中爬取了猫眼实时票房数据&#xff0c;用于展示近三年电影票房概况。由于数据中缺少导演/演员/编剧阵容等信息&#xff0c;所以爬取猫眼电影数据进行补充。关于爬虫的教学内容&#xff0c…

猫眼app产品分析和原型绘制

本项目为学习产品知识和技能过程中的一个小结&#xff0c;针对猫眼电影app的简单产品分析&#xff0c;顺便巩固xmind和axure技能。 项目名称 &#xff1a;猫眼电影app 产品背景&#xff1a;中国电影市场近10年&#xff08;2009年-2019年&#xff09;由高速增长阶段过渡到低速增…

Python爬虫实战+数据分析+数据可视化(猫眼电影)

一、爬虫部分 爬虫说明&#xff1a; 1、本爬虫是以面向对象的方式进行代码架构的 2、本爬虫爬取的数据存入到MongoDB数据库中 3、爬虫代码中有详细注释 代码展示 import re import timefrom pymongo import MongoClient import requests from lxml import html from urllib …

python爬虫基础案例——爬取猫眼电影并保存数据到excel

好久没更新博文了&#xff0c;最近忙于学习scrapy框架和微信小程序开发&#xff0c;今天看到一个自己之前写的但是中途放弃的爬虫小案例——爬取猫眼电影TOP100榜的相关数据&#xff0c;现在将它写好并分享给大家。 爬虫的套路就是通过url发送请求&#xff0c;获取数据&#x…

采集电影票房实时数据

网址&#xff1a;aHR0cDovL3BmLmZlLnN0Lm1hb3lhbi5jb20vZGFzaGJvYXJk 抓包分析 根据数据包可以发现&#xff0c;该网站在发送了ajax请求的同时又请求了一份woff文件&#xff0c;基本上可以确定这里使用了字体文件加密的方式了。 分析请求参数 不难看出&#xff0c;只有timestam…

【Python爬虫】猫眼电影榜单Top100

这是一个入门级的Python爬虫&#xff0c;结构易于理解。本文对编写此爬虫的全过程进行了讲述。希望对大家的Python爬虫学习有所帮助。 一、目标 爬取猫眼电影榜单Top100&#xff0c;将数据存入Excel文件中&#xff0c;并利用pyecharts库进行数据可视化得到.html文件和.png文件…

python爬虫阶段性总结和项目实操——爬取猫眼票房Top100

本博客通过爬取猫眼票房Top100来简要复习一下网页的HTML获取&#xff08;requests库&#xff09;解析&#xff08;Beautiful Soup库&#xff09;和数据保存&#xff08;csv库&#xff09;以及总结一下爬取过程中遇到的问题和解决方法 运行结果如下 1.获取网页源代码 def get_…

猫眼产品分析

一、前言 本文试图通过对猫眼电影的版本迭代历程分析、用户分析、功能分析、运营分析以及数据表现来回答以下几个问题&#xff1a; &#xff08;1&#xff09;猫眼电影的产品定位&#xff1f; &#xff08;2&#xff09;猫眼电影产品设计及运营中有哪些亮点和策略&#xff1f…

详解用爬虫批量抓取猫眼电影票房数据

"大数据"是一个体量特别大&#xff0c;数据类别特别大的数据集&#xff0c;并且这样的数据集无法用传统数据库工具对其内容进行抓取、管理和处理。 "大数据"首先是指数据体量(volumes)大&#xff0c;指代大型数据集&#xff0c;一般在10TB规模左右&#xf…

基于Python的电影票房爬取与可视化系统的设计与实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

猫眼 — 破解数字反爬获取实时票房

From&#xff1a;https://zhuanlan.zhihu.com/p/33112359 js分析 猫_眼_电_影 字体文件 font-face&#xff1a;https://www.cnblogs.com/my8100/p/js_maoyandianying.html 解析某电影和某招聘网站的web-font自定义字体&#xff1a;https://www.jianshu.com/p/5400bbc8b634 Font…

猫眼电影票房爬取到MySQL中_爬取猫眼电影top100,request、beautifulsoup运用

这是第三篇爬虫实战&#xff0c;运用request请求&#xff0c;beautifulsoup解析&#xff0c;mysql储存。 如果你正在学习爬虫&#xff0c;本文是比较好的选择&#xff0c;建议在学习的时候打开猫眼电影top100进行标签的选择&#xff0c;具体分析步骤就省略啦&#xff0c;具体的…