临床决策曲线分析如何影响预测模型的使用和评价

news2025/1/12 15:47:42

目前,临床决策曲线分析(clinical decision curve analysis, DCA)在业界已经被超过1500文献使用,也被多个主流的临床杂志所推荐,更被写进了临床预测模型撰写标准(TRIPOD)中,但是许多预测模型的文章却仅仅把它当做另外一个模型评价的指标,显然是没有完全了解DCA对于预测模型的作用和意义。概括来说,DCA不仅为预测模型向临床应用的转化提供了一个接口,更反过来规范了预测模型的使用和评价。本文在此阐述DCA对于预测模型的重要作用和意义进行阐述,以期加深对着对DCA的理解并恰当应用。

1.临床决策曲线给预测模型划了一个“框”

  • 这个“框”就是决策阈值范围。DCA开创性地提出了代价-收益比(cost:benefit radio)的概念并使其与预测模型的决策阈值相关联。临床上,施加一项临床诊断或者治疗措施都有相反的两方面作用, 一方面是获益,一方面是代价,比如常用来作为例子的活检, 活检的收益是确诊疾病,代价是有创。如果某位医生认为活检确诊某种疾病的作用大的,而有创是小的,且大约是10倍的关系,那活检的代价-收益比就是1:9,代表了这位医生可以接受10位接受活检的患者中,有1位通过活检确诊了疾病(是益处),另外9位患者是阴性(仅是感受了活检的有创性,是代价)。这个比值就可以作为预测模型的决策阈值,即0.1,因为不同的医生心目中活检的代价-收益比是不一样的,所以决策阈值是一个范围更加合理, 比如0.05~0.2。这个“框”不简单,预测模型的使用和评价都要在这个“框内”。

2.预测模型的使用要在这个“框”内

  • 决策阈值范围的确定与疾病和治疗或诊断的手段有关,是纯粹的临床考量,和预测模型的表现毫无关系,且要求高于这个阈值范围上限的患者就一定要接受诊断或者治疗措施,而低于这个阈值范围的患者就不需要进行诊断或者治疗措施,所以预测模型的使用范围就是在这个阈值范围之内。为了能精确地划定这个“框”,专家推荐在构建预测模型之前明确预测模型应用的目的,即明确预测模型后续的诊断或治疗手段,因为对于不同的疾病,不同的检测治疗手段,其代价-收益比是不一样的,比如同样是活检,对于恶性程度一般的疾病其比值为1:10,而对于恶性程度较高的肿瘤,其比值可能为1:20。

3.进行预测模型的评价和模型之间的比较,也要在这个“框”内

  • 因为预测模型仅在这个“框”内起作用,所以对于评价一个预测模型是否合格或者两个模型哪个更加优秀,也要局限在在这个“框”内,超出这个框框的评价,无论是好还是坏,对于模型的临床应用都没有影响,所以也就没有价值。笔者在实际的数据分析中遇到这样一个情况,使用一个甲状腺癌远处转移的不平衡数据构建了一个预测模型,因为甲状腺癌远处转移的发病率极低,导致整体的校准度总是达不到要求,按照目前的对模型整体评价这样一个体系,这样的模型是不能进入下一步评价的,但是在临床决策曲线所规定的阈值范围内,预测模型的局部校准度是符合进入临床要求的。
    目前预测模型的评价指标体系,ROC曲线和校准曲线都可以做到局部评价。虽然局部的区分度和校准度评价体系有待于进一步发展并得到业内的认可,相信在总体评价的基础上增加局部评价会是未来预测模型评价的一种趋势,这里尝试罗列一些可能的局部评价指标及其R语言的实现:
  • 局部区分度:局部AUC(partial AUC),首先确定决策阈值的范围,然后在R语言包pROC中指定决策阈值范围即可实现partial AUC 的绘制和计算,具体操作是在其roc 函数中指定决策阈值对应的X轴(specificity)的范围(图2)。
  • 局部校准度:使用经典的R语言val.pro函数可以简单实现局部校准度的绘制,指定参数“lim”的范围与决策阈值范围相同即可(图1)。
  • 加权曲线下净收益面积:这是2016年Talluri等在净收益基础上提出的一个指标,目前并未广泛应用,也没有专门的R包来实现相关的计算,但是可以根据作者公布的公式来进行计算,计算公式为:
    W A − N B C = ∫ p t N B C ( p t ) d p t WA-NBC= \int_{pt}NBC(pt)dpt WANBC=ptNBC(pt)dpt
    公式是一个积分,下限是pt,上限无,其中NBC(pt)是特定模型的净收益曲线。实际计算中可以使用R包的integrate()函数来实现。
#NBC(pt),需要提供一个数据框df_pred,包含了df_pred$.pred_1是预测的概率,conf_mat是混淆矩阵函数,df_pred$outcome是实际标签。
NBC<-function(pt,df=df_pred){
	y_pred_label=df$.pred_1>pt#ture or false
	df$y_pred_label<-ifelse(y_pred_label=='FALSE',0,1)%>%factor(levels=c(0,1))
	cm<-conf_mat(df,outcome,y_pred_label)%>%tidy()
	tp=cm$value[4]
	fp=cm$value[3]
	n = length(df$outcome)
	net_benefit = (tp / n) - (fp / n) * (pt / (1 - pt))
	return (net_benefit)#这里计算的是演示的NB值,如果想计算标准化的NB值,需要除以发病率(prevalence)
}
#WA-NBC,使用的积分函数,下限0.01,上限0.3
WA_NBC=stats::integrate(NBC,0.01,0.3)
WA_NBC

总之,DCA对于临床预测模型的意义不仅仅是提供了一个评价的指标,而是划定了一个模型使用和评价的范围,从根本上更新了对预测模型使用和评价的传统认知。

图1
图2

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV实例(七)汽车检测

OpenCV实例&#xff08;七&#xff09;汽车检测 1.概述2.代码实例3.代码功能 作者&#xff1a;Xiou 1.概述 对于图像和视频检测中的目标类型并没有具体限制&#xff0c;但是&#xff0c;为了使结果的准确度在可接受范围内&#xff0c;需要一个足够大的数据集&#xff0c;包括…

mongodb数据库索引介绍与优化选择

数据库开发系列 文章目录 数据库开发系列前言一、基础篇二、提高篇总结 前言 一、基础篇 MongoDB 索引 索引通常能够极大的提高查询的效率&#xff0c;如果没有索引&#xff0c;MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。 这种扫描全集合的查…

broadcast自动扩展/合并与分割/基本运算

文章目录 一、broadcastKey ideamatch from last dim 二、合并catstack 三、拆分split&#xff1a; 四、基本运算matmulAn examplematmulpowerexp logapproximationclamp 五、统计属性总结 一、broadcast Key idea ▪ Insert 1 dim ahead ▪ Expand dims with size 1 to same…

测试概念篇

目录 调试和测试的区别软件测试的概念软件测试和软件开发的区别优秀的测试人员应该具什么素质为什么要做测试软件的生命周期什么是Bug什么是需求测试用例是什么产品的生命周期软件测试贯穿于软件的整个生命&#xff0c;如如何贯穿&#xff1f;开发模型瀑布模型&#xff08;面向…

【java】反射基础

Class类 import java.io.*; import java.util.Scanner;public class Main {public static void main(String[] args) throws ClassNotFoundException {Class<String> clazz String.class; //使用class关键字&#xff0c;通过类名获取Class<?> clazz2 Class.f…

SpringBoot源码学习系列——运行流程分析

前文SpringBoot源码学习系列——构造流程分析对SpringApplication的实例化流程进行了介绍&#xff0c;完成了基本配置文件的加载及初始化&#xff0c;本文对其run方法进行介绍&#xff0c;看看Spring Boot是如何启动运行的。 run方法核心流程 可以看到&#xff0c;SpringAppli…

主机串口—虚拟机串口—linux系统串口之间的关系(实现主机和虚拟机之间的串口通信)

目录 1、准备工具 2、实现机理 3、实现过程 4、虚拟机串口 —— Linux系统串口文件 1、准备工具 VSPD&#xff1a;作用是在主机上创建虚拟串口 VSPD 下载&#xff1a;VSDP 汉化版下载VSPD 配置教程&#xff1a;VSPD虚拟串口工具实用工具–小白入门篇 | 码农家园 串口调…

MES功能设计规格书

软件功能结构 项目实施方案 概述 按总体规划&#xff0c;MES项目分三个阶段实施&#xff0c;第一阶段先在终端电器制造部和控制电器制造部进行试点实施。 第一阶段目标 建立基本的MES系统框架&#xff0c;提供工厂建模等基础功能。将目前的Excel生产排程纳入到系统管理&…

wps宏编辑器API关于msgbox和inputbox的使用说明

WPS宏编辑器API参考关于函数列举了3个&#xff1a;DoEvents、InputBox和MsgBox&#xff0c;其中DoEvents有点不好理解&#xff0c;应该在什么场景下使用也缺乏官网指导说明&#xff0c;因此本文重点讲述InputBox和MsgBox的使用说明。 1、DoEvents 处理进程的消息队列中的消息…

AI菜鸡浅谈ChatGpt

最近最火的话题可能就是Chatgpt &#xff0c;这个对话机器人横空出世&#xff0c;大大突破了人类之前对AI 对话机器人的认知和预期&#xff0c;上次这样的颠覆认知的突破还是7年前的阿法狗&#xff0c;但是这一次Chatgpt 带来的革命可能要更深远。我从以下几个方面来谈一下我对…

Centos7.6集群部署海豚调度3.1.5

目录 前置准备工作&#xff08;所有机器&#xff09;主机规划数据库规划用户规划目录规划配置/etc/hostsjdk安装进程树分析配置ssh免密部署zookeeper启动zookeeper下载DolphinScheduler 二进制包修改install_env.sh配置修改dolphinscheduler_env.sh配置文件 安装&#xff08;ty…

virtualbox 安装centos

在virtualbox安装centos时&#xff0c;遇到了一些问题&#xff0c;此处记录下&#xff0c;希望可以帮助一些小伙伴。 一、下载centos 进入官网下载地址&#xff1a;Download (centos.org) 然后选择阿里云镜像地址&#xff1a;centos-7.9.2009-isos-x86_64安装包下载_开源镜像…

TensorFlow版本与其他库的版本之间问题

使用TensorFlow的版本不一样&#xff0c;对应的库的版本也需不一样&#xff0c;这个有许多需要注意的地方。 比如Keras库&#xff0c; 当我使用tensorflow2.1.0版本时&#xff0c;安装Keras2.10.0这个库会导致运行报错&#xff0c; 那么就需要降低其版本到与之匹配&#xff…

AQS 和CAS详解

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;JDBC事务 Hibernate事务 EJB事务详解 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你…

初识Linux篇

初识Linux篇 Linux环境的搭建1.什么是Linux2.Linux环境的安装云服务器Linux安装 总结 Linux环境的搭建 &#x1f60a;首先&#xff0c;在学习Linux之前&#xff0c;先了解一下Linux&#x1f60a; 1.什么是Linux Linux是一种操作系统软件&#xff0c;就像手机中的安卓&#xff…

Vue中的导航守卫

router官网-导航守卫 导航守卫常用的主要有三种&#xff1a;全局前置守卫(beforeEach)、路由独享守卫(beforeEnter)、组件内守卫(beforeRouteEnter) 路由独享守卫 在路由配置上直接定义 beforeEnter 守卫 <body> <div id"app"><h1>欢迎使用路由&l…

在没有魔法的情况下,如果让ChatGPT帮我们写代码

ChatGPT写代码 ✋ChatGPT 是一个基于人工智能的自然语言处理模型&#xff0c;可以帮助程序员更高效地、更自然地与计算机交互。ChatGPT 可以解决程序员在日常开发中遇到的各种问题&#xff0c;例如语法错误、API 使用、代码实现、架构设计等等。 &#x1f4a5;通过与 ChatGPT…

操作系统1(什么是操作系统、程序和编译器)

1.什么是操作系统&#xff1f; 1.什么是操作系统&#xff1f; 对单一计算机硬件系统做出抽象、支撑程序执行的软件系统。通过“虚拟化”硬件资源为程序运行提供服务的软件。 操作系统可以访问任何硬件资源。 2.什么是程序&#xff1f; 程序就是一个状态机。 程序计算sysc…

面了十几家公司测试岗,我终于悟了,面试无非就是这些题

测试岗的面试其实都是大同小异的&#xff0c;这里我收集整理了185道高频面试题&#xff0c;希望对在找工作或者准备跳槽的各位小伙伴有所帮助&#xff01; 一. 测试基础 1.如何制定测试计划 参考答案&#xff1a; 测试计划包括测试目标、测试范围、测试环境的说明、测试类型…

SpringBoot 实现多个子域共享 cookie

SpringBoot 实现多个子域共享 cookie 项目信息cookie 共享需求如何实现 环境配置配置域SpringBoot 配置 https 访问 后端代码验证验证后端解析 cookie 项目信息 使用SpringBoot web框架&#xff0c;版本号 2.7.10 <dependency><groupId>org.springframework.boot&…