R cox回归 ggDCA报错

news/发布时间2024/5/15 14:45:49
临床预测模型的决策曲线分析(DCA):基于ggDCA包
决策曲线分析法(decision curve analysis,DCA)是一种评估临床预测模型、诊断试验和分子标记物的简单方法。 我们在传统的诊断试验指标如:敏感性,特异性和ROC曲线下面积仅测量预测模型的诊断准确性,未能考虑特定模型的临床效用,而DCA的优势在于它将患者或决策者的偏好整合到分析中。这种理念的提出满足了临床决策的实际需要,在临床分析中的应用日益广泛。

前 言

本文介绍使用ggDCA包绘制多因素Cox回归模型的决策曲线分析(Decision curve analysis,DCA)。

ggDCA是目前能同时绘制Cox回归模型、logistic回归模型及广义线性模型的DCA曲线且其图形能用ggplot2美化。同时,该包还能计算DCA的曲线下面积、净获益及阈值概率的范围,如果把这些加入到文章中相信能增色不少!

1. 预测模型评估小结

2. ggDCA包的安装

3. Cox回归模型的DCA

4. 单个Cox模型多个时间点的DCA

5. 多个Cox回归模型的DCA比较

6. 多个模型在多个时间的DCA比较

7. DCA的曲线下面积(AUDC)

8. 其他回归模型的DCA

一、模型评估与比较小结

举例:某列线图(AUC/C-inde=0.8)预测某患者5年复发风险为70%。

1. 区分度 (Discrimination)

使用ROC曲线的曲线下面积(AUC)和C-index评估。

AUC/C-index=0.8,列线图对此结果的区分能力为80%,即有80%的把握确定复发率为70%。预测模型 | 6. 模型评估:ROC曲线-基于多因素Cox回归

2. 校准度 (Calibration)

使用校准图评估。

校准图用于解释列线图预测的70%复发率与实际复发率的接近程度,即准确性评估。详见:预测模型 | 5. 模型评估:校准曲线

3. 临床实用性

(Clinical usefulness)

使用决策曲线分析(DCA)评估。

多因素Cox回归的DCA曲线

#载入R包
ibrary(rms)
library(ggDCA)
library(survival)  #清理环境
rm(list = ls()) #2.载入数据,status=0为复发
aa<- read.csv('决策分析曲线.CSV')#使用cph()函数时运行
#即报错:adjustment values not defined here or with datadist.....时
bb<-datadist(aa)
options(datadist='bb')
数据点击:https://mp.weixin.qq.com/s/VO3GiBZcL_kAoHrr6_dPAw获取

1、构建多因素Cox回归模型

数据中status,0为感兴趣事件,因此status==0

model1<-coxph(Surv(time,status==0)~AGE+N+ER+LVI+Grade+RT,data=aa)

2、决策曲线分析 DCA

fig1<-dca(model1,new.data = NULL,times=60)
  1. 不写times=60,默认为times="median";
  2. 想看多个时间点DCA,times=c(36,48,60);
  3. 想看外部验证数据DCA曲线,载入外部数据后,new.data = NULLNULL变为外部数据名字。

3、DCA曲线绘制和美化

ggplot(dca1,       model.names="模型1",linetype =F, #线型lwd = 1.2)   #线粗

2.png


4. 美化

library(ggprism)
ggplot(dca1,linetype =F,lwd = 1.2)+#使用直线坐标系    theme_classic()+  #使用prism主题theme_prism(base_size =17)+#图例放在上方theme(legend.position="top")+#x轴范围并加入小刻度scale_x_continuous(limits = c(0, 1),guide = "prism_minor") +#y轴范围并加入小刻度scale_y_continuous(limits = c(-0.01, 0.2),guide = "prism_minor")+#颜色scale_colour_prism(         palette = "candy_bright",name = "Cylinders",label = c("模型1", "ALL", "None"))+#图形标题labs(title = "5年DCA基于ggDCA包")

3.png


更多细节点击查看原文:https://t.1yb.co/nAm1

四、单个模型多个时间点的DCA

只需修改一下times=c(36,48,60)和图例名称即可

#第1步建模同上
#第2步同上,只需改时间即可
dca1<-dca(model1,new.data = NULL,times=c(36,48,60))
#第3步改标签
ggplot(dca1,linetype =F,lwd = 1.2)+theme_classic()+  theme_prism(base_size =15)+theme(legend.position=c(0.7,0.7))+scale_x_continuous(limits = c(0, 1),guide = "prism_minor") +scale_y_continuous(limits = c(-0.01, 0.15),guide = "prism_minor")+scale_colour_prism(palette = "candy_bright",name = "Cylinders",label = c("3年DCA","4年DCA","5年DCA", "ALL-3年", "ALL-4年","ALL-5年","None"))+labs(title = "3-5年DCA")

五、多个模型DCA比较

#再建两个模型
model2 <- coxph(Surv(time,status==0)~AGE+N+ER+PR+Grade,data=aa)
model3 <- coxph(Surv(time,status==0)~AGE+N+ER+LVI,data=aa)
#三模型DCA分析
#只需指明模型名字和时间即可,跟1个模型一样其实
dca2<- dca(model1,model2,model3,times=60)

#绘图,跟单模型一样的代码
ggplot(dca2,linetype =F,lwd = 1.2)+theme_classic()+  theme_prism(base_size =17)+theme(legend.position=c(0.8,0.6))+scale_x_continuous(limits = c(0, 1),guide = "prism_minor") +scale_y_continuous(limits = c(-0.01, 0.15),guide = "prism_minor")+scale_colour_prism(palette = "candy_bright",name = "Cylinders",label = c("模型1", "模型2", "模型3","ALL","None"))+labs(title = "三模型DCA比较")

六、多模型多时间点DCA比较

#只需修改一下时间和标题
dca2<- dca(model1,model2,model3,times=c(36,48,60))ggplot(dca2,linetype =F,lwd = 1.2)+theme_classic()+  theme_prism(base_size =17)+theme(legend.position=c(0.9,0.6))+scale_x_continuous(limits = c(0, 1),guide = "prism_minor") +scale_y_continuous(limits = c(-0.01, 0.15),guide = "prism_minor")+scale_colour_prism(palette = "candy_bright",name = "Cylinders",label = c("模型1", "模型2", "模型3","ALL","None"))+labs(title = "三个模型3-5年DCA比较")

七、曲线下面积及净获益范围

类似ROC曲线的曲线下面积,DCA曲线也有曲线下面积: Area under Decision Curve (AUDC)。

代码非常简单:AUDC(x)x=dca()函数的名称。

净获益范围:rFP.p100(x)

model1<-cph(Surv(time,status==0)~AGE+N+ER+LVI+Grade+RT,data=aa)
dca1<-dca(model1,times=60)
AUDC(dca1)#运行结果
#   model1        All       None 
#0.06035219 0.01139759 0.00000000
rFP.p100(dca1)#也可以直接输入dca1
dca1

基于这个数据框,我们可以比较各个模型在各个时间点的阈值概率范围,最大最小净获益。

在我读过的文章里,这些数据很少被报道。

这项结果也是ggDCA包的一大特色。

这些数据将使我们的文章更具亮点和说服力。

八、其他回归模型的DCA曲线

ggDCA包可以绘制coxph()和cph()Cox回归模型, lrm()逻辑回归模型以及glm()广义线型模型的DCA曲线。

其原理与Cox回归模型一样,建模---dca()分析---绘图

只不过,其他模型不需要加入时间变量。

这里使用逻辑回归模型简单举例

bb<-datadist(aa)
options(datadist='bb')
#建模
m1<- lrm(status~AGE+N+LVI+Grade,data = aa)
m2<- lrm(status~AGE,data = aa)
#dca分析
d<-dca(m1,m2 )
#绘图
ggplot(d)+theme_classic()+  theme_prism(base_size =17)+theme(legend.position=c(0.25,0.3))+scale_x_continuous(limits = c(0.2, 1),guide = "prism_minor") +scale_y_continuous(limits = c(-0.05, 0.8),guide = "prism_minor")+scale_colour_prism(palette = "candy_bright",name = "Cylinders",label = c("lrm模型1", "lrm模型2","ALL","None")

小结

基于ggDCA包的可以为我们绘制各种类型的DCA曲线。在文章中可使用的结果可以有:

1、基于DCA分析,模型1比模型2有着更好的临床实用性,在相同的阈值概率下触发医疗干预时,使用模型1作为指导可以使患者有更多的净获益。----DCA图形看到的 ;

2、此外,模型1比模型2有着更广的阈值概率范围+结果----基于dca(x)结果;

3、不同时间点的模型比较可以看模型的在不同时间其临床实用性的变化情况。

在读过的文章中,常常只汇报了第1条结果,但是,现在我们可以通过ggDCA包挖掘更多的结果以此增加一下文章的亮点了。

ggDCA包参考手册:

https://cran.r-project.org/web/packages/ggDCA/index.html

https://mp.weixin.qq.com/s?__biz=Mzg2MjU2NDQwMg==&mid=100010922&idx=1&sn=eae80cc7ab9e3fd2d66864609520921b&chksm=4e0752f77970dbe170cf969ab9baaf1dbbca8953ff4c2502e54595db5cffec4dc17f76267226#rd

错误1 

Error in model.frame.default(formula = Surv(time, event) ~ data + new_model_by_liang_guo,  :
  参数'data'的种类(list)不对

这个错误来源于

model_Liang_Guo <- coxph(Surv(time, event)~data$new_model_by_liang_guo,data=data)
summary(model_Liang_Guo)

去掉datas$  即可

ggDCA的包报错

由于survival包版本问题,从CRAN安装的ggDCA会报错(如上图)。

因此,要从作者的github上下载ggDCA

ggDCA安装

#1.安装devtools
install.packages("devtools")
#2.从github安装ggDCA
devtools::install_github('yikeshu0611/ggDCA')#注:若是devtools::install_github('yikeshu0611/ggDCA')也报错,可先运行:
options(unzip ='internal')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/JMqT/4479.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

关于电脑功耗与电费消耗的问题,你了解多少?

一台电脑24小时运行需要多少电量&#xff1f; 大家好&#xff0c;我是一名拥有多年维修经验的上门维修师傅。 今天我就来回答大家关于电脑24小时运行需要多少电量的问题。 电脑功耗及用电量 首先我们来看看电脑的功耗情况。 普通台式电脑的功耗通常在300瓦左右&#xff0c;即…

相机图像质量研究(23)常见问题总结:CMOS期间对成像的影响--紫晕

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

Linux-基础命令(黑马学习笔记)

Linux的目录结构 Linux的目录结构 Linux的目录结构是一个树形结构 Windows系统可以拥有多个盘符&#xff0c;如C盘、D盘、E盘 Linux没有盘符这个概念&#xff0c;只有一个根目录 /&#xff0c;所有文件都在它下面 Linux路径的描述方式 ● 在Linux系统中&#xff0c;路径之…

【微服务生态】Dubbo

文章目录 一、概述二、Dubbo环境搭建-docker版三、Dubbo配置四、高可用4.1 zookeeper宕机与dubbo直连4.2 负载均衡 五、服务限流、服务降级、服务容错六、Dubbo 对比 OpenFeign 一、概述 Dubbo 是一款高性能、轻量级的开源Java RPC框架&#xff0c;它提供了三大核心能力&#…

记录一些mac电脑重装mysql和pgsql的坑

为什么要重装,是想在mac电脑 创建data目录…同事误操作,导致电脑重启不了.然后重装系统后,.就连不上数据库了.mysql和pgsql两个都连不上.网上也查了很多资料.实在不行,.就重装了… 重装mysql. 1.官网下载 https://www.mysql.com/downloads/ 滑到最下面 选择 选择对应的芯片版本…

消息队列-RabbitMQ:延迟队列、rabbitmq 插件方式实现延迟队列、整合SpringBoot

十六、延迟队列 1、延迟队列概念 延时队列内部是有序的&#xff0c;最重要的特性就体现在它的延时属性上&#xff0c;延时队列中的元素是希望在指定时间到了以后或之前取出和处理&#xff0c;简单来说&#xff0c;延时队列就是用来存放需要在指定时间被处理的元素的队列。 延…

浏览器---浏览器/http相关面试题

1.localStorage和sessionStorage 共同点&#xff1a;二者都是以key-value的键值对方式存储在浏览器端&#xff0c;大小大概在5M。 区别&#xff1a; &#xff08;1&#xff09;数据有效期不同&#xff1a;sessionStorage仅在当前浏览器窗口关闭之前有效&#xff1b;localStorag…

相机图像质量研究(39)常见问题总结:编解码对成像的影响--运动模糊

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

【前端素材】推荐优质后台管理系统Space平台模板(附源码)

一、需求分析 综上所述&#xff0c;后台管理系统在多个层次上提供了丰富的功能和细致的管理手段&#xff0c;帮助管理员轻松管理和控制系统的各个方面。其灵活性和可扩展性使得后台管理系统成为各种网站、应用程序和系统不可或缺的管理工具。 当我们从多个层次来详细分析后台…

大功率厚膜电阻器制造 – 优化性能?

通过优化工业大功率电阻器制造工艺&#xff0c;制造商可以提高电阻器的性能和可靠性、容差、额定电压、TCR、稳定性和额定功率。 在本文中&#xff0c;我们将介绍工业功率电阻器的制造过程。我们讨论了材料选择和生产技术及其对性能的潜在影响。 完美的电阻器 在其整个使用寿…

IDA使用-2023CICSN华中赛区pwn题逆向为例

文章目录 相关字节标识导入函数和导出函数找程序入口函数选项设置重命名CISCN2023华中赛区分区赛AWDIDA源码main 构造结构体sub_141B() 打开局部变量类型的视图增加变量类型重新定义变量类型再次设置变量类型并重新定义再次设置变量类型并重新定义再次设置变量类型并重新定义 设…

合纵连横 – 以 Flink 和 Amazon MSK 构建 Amazon DocumentDB 之间的实时数据同步

在大数据时代&#xff0c;实时数据同步已经有很多地方应用&#xff0c;包括从在线数据库构建实时数据仓库&#xff0c;跨区域数据复制。行业落地场景众多&#xff0c;例如&#xff0c;电商 GMV 数据实时统计&#xff0c;用户行为分析&#xff0c;广告投放效果实时追踪&#xff…

鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统

在现代化的工程项目管理中&#xff0c;一套功能全面、操作便捷的系统至关重要。本文将介绍一个基于Spring Cloud和Spring Boot技术的Java版工程项目管理系统&#xff0c;结合Vue和ElementUI实现前后端分离。该系统涵盖了项目管理、合同管理、预警管理、竣工管理、质量管理等多个…

qt波位图

1&#xff0c;QPainter 绘制&#xff0c;先绘制这一堆蓝色的东西, 2&#xff0c;在用定时器&#xff1a;QTimer&#xff0c;配合绘制棕色的圆。用到取余&#xff0c;取整 #pragma once#include <QWidget> #include <QPaintEvent>#include <QTimer>QT_BEGIN_…

TYPE-C接口桌面显示器:视频与充电的双重革新

在现代科技的浪潮中&#xff0c;TYPE-C接口桌面显示器崭露头角&#xff0c;它不仅仅是一台显示器&#xff0c;更是充电与视频传输的完美融合。这种新型的显示器&#xff0c;凭借其TYPE-C接口&#xff0c;实现了从DC电源到PD协议充电的华丽转身&#xff0c;为众多设备如笔记本电…

RocketMQ-架构与设计

RocketMQ架构与设计 一、简介二、框架概述1.设计特点 三、架构图1.Producer2.Consumer3.NameServer4.BrokerServer 四、基本特性1.消息顺序性1.1 全局顺序1.2 分区顺序 2.消息回溯3.消息重投4.消息重试5.延迟队列&#xff08;定时消息&#xff09;6.重试队列7.死信队列8.消息语…

vue 手势解锁功能

效果 实现 <script setup lang"ts"> const canvasRef ref<HTMLCanvasElement>() const ctx ref<CanvasRenderingContext2D | null>(null) const width px2px(600) const height px2px(700) const radius ref(px2px(50))const init () > …

探究全链路压力测试的含义与重要性

全链路压力测试是指对整个应用系统的各个环节或组件进行压力测试&#xff0c;以模拟实际生产环境中的用户负载和流量&#xff0c;评估系统在高负载条件下的性能表现。 1. 全链路压力测试的含义 全链路压力测试涉及系统的所有组件和环节&#xff0c;包括前端用户界面、应用服务器…

深入探索STM32的存储选项:片内RAM、片内Flash与SDRAM

博客&#xff1a;深入探索STM32的存储选项&#xff1a;片内RAM、片内Flash与SDRAM 在嵌入式系统设计中&#xff0c;存储管理是一个至关重要的方面&#xff0c;尤其是对于基于STM32这类强大的微控制器来说。STM32系列微控制器因其高性能、低功耗以及灵活的存储选项而广受欢迎。本…

MFC 皮肤库配置

1.创建MFC 对话框 2.添加皮肤资源 添加资源 添加头文件 关闭SDL检测 添加静态库文件 修改字符集 添加头文件 将皮肤中的ssk文件加载到初始化实例中 > 运行即可
推荐文章