多模型DCA曲线:如何展现和解读乳腺癌风险评估模型的多样性和鲁棒性?

一、引言

乳腺癌是女性常见的恶性肿瘤之一,对女性的身体健康和生命安全产生了重要影响。早期诊断和风险评估可以帮助医生和患者制定更好的治疗方案,并提高治愈率和生存率。因此,乳腺癌风险评估模型的研究和应用变得越来越重要。

在乳腺癌风险评估的研究中,评估模型的多样性和鲁棒性是一个重要的问题。目前存在的评估模型往往具有不同的结构和参数设置,可能会导致预测结果的差异。为了解决这个问题,本文引入多模型DCA曲线作为评估模型多样性和鲁棒性的方法。

在本文中,我们将介绍乳腺癌风险评估模型的现状和挑战,解释多模型DCA曲线的概念和应用,并展示多模型DCA曲线作为评估乳腺癌风险评估模型多样性和鲁棒性的方法的实际效果。通过本文的阐述,我们希望为乳腺癌风险评估模型的发展和应用提供一些新的思路和方法。

二、风险评估模型现状和挑战

2.1 乳腺癌风险评估模型

目前使用的乳腺癌风险评估模型主要包括以下几种:

  • Gail模型:Gail模型是最早被广泛应用的乳腺癌风险评估模型之一。它基于年龄、族群、家族史、生育历史等因素来评估个体患乳腺癌的风险。
  • Tyrer-Cuzick模型:Tyrer-Cuzick模型是另一种常用的乳腺癌风险评估模型,它综合考虑了更多因素,如个体的年龄、家族史、BRCA1/BRCA2突变等遗传因素,并可以根据个体的详细信息进行个性化风险评估。
  • BOADICEA模型:BOADICEA模型是一种基于家族史的乳腺癌风险评估模型,它专注于家族中存在突变的患者,并考虑了多代家族成员的信息,帮助识别高风险家族。
  • IBIS模型:IBIS模型是一种用于个体化乳腺癌风险评估的工具,它综合考虑了个体的危险因素,如年龄、体重、饮食习惯等,以及乳房密度等因素。

2.2 模型的多样性和鲁棒性

  • 模型多样性:不同的乳腺癌风险评估模型采用的变量和评估方法可能存在差异,导致结果的差异性。这使得选择适合特定人群或研究场景的模型变得具有挑战性。
  • 数据质量和可用性:乳腺癌风险评估模型需要大量的高质量数据用于训练和验证。然而,在某些地区或种族中,数据的可用性和质量可能存在限制,这对模型的开发和应用带来了挑战。
  • 预测精度和准确性:乳腺癌风险评估模型的预测精度和准确性是关键问题。虽然现有模型已经取得了一定的成功,但仍有改进的空间,特别是在提高敏感性和特异性方面。
  • 个体化风险评估:针对个体进行更准确的风险评估是一个重要的挑战。现有模型大多是基于人群统计数据开发的,缺乏个体特异性,因此如何将个体信息纳入模型,实现更加准确的个体化风险评估是需要解决的问题。

三、多模型DCA曲线简介

3.1 DCA曲线的概念和意义

「DCA曲线(Decision Curve Analysis)」 是一种评估预测模型临床应用价值的可视化工具。DCA曲线基于医学决策理论,将预测模型的预测结果与实际临床决策进行比较,评估模型在不同阈值下的准确性和利益。DCA曲线的横轴表示阈值范围,纵轴表示净利益(即真阳性率减去假阳性率),曲线上的点表示该阈值下模型的净利益。

3.2 多模型DCA曲线的概念

多模型DCA曲线指的是将多个预测模型的DCA曲线绘制在同一图表中,用于比较不同模型之间的优劣和多样性。通过比较不同模型在不同阈值下的净利益,可以评估模型的多样性和鲁棒性。多模型DCA曲线的绘制需要针对不同模型分别计算其预测结果、净利益、敏感性和特异性等参数。

3.3 多模型DCA曲线应用场景和优势

「多模型DCA曲线的应用场景包括:」


  • 「选择最佳模型」:当需要在多个预测模型之间选择最佳模型时,可以使用多模型DCA曲线比较它们在不同阈值下的净利益。在选择最佳模型时,应考虑模型的多样性和鲁棒性,以及实际临床应用的可行性。
  • 「评估模型改进」:在改进已有预测模型或开发新的预测模型时,可以使用多模型DCA曲线比较改进前后或不同模型之间的差异。通过比较净利益的差异,可以评估模型改进的效果和优势。
  • 「研究模型适用性」:在不同种族、性别、年龄或疾病状态等人群中应用预测模型时,可以使用多模型DCA曲线比较不同模型在不同人群中的适用性和准确性。

「多模型DCA曲线的优势包括:」


  • 「比较直观」:多模型DCA曲线通过可视化方式直观显示了不同模型在不同阈值下的净利益,使得比较不同模型的优劣更加容易理解。
  • 「综合评估」:多模型DCA曲线综合考虑了不同模型的敏感性、特异性和预测准确性等指标,使得评估结果更全面和准确。
  • 「个性化评估」:多模型DCA曲线可以根据不同人群、不同阈值和不同决策目标进行个性化评估,具有较大的灵活性和适用性。

四、实例展示

  • 「数据集准备」
library(survival)
head(gbsg)

结果展示:

   pid age meno size grade nodes pgr er hormon rfstime status
1  132  49    0   18     2     2   0  0      0    1838      0
2 1575  55    1   20     3    16   0  0      0     403      1
3 1140  56    1   40     3     3   0  0      0    1603      0
4  769  45    0   25     3     1   0  4      0     177      0
5  130  65    1   30     2     5   0 36      1    1855      0
6 1642  48    0   52     2    11   0  0      0     842      1
  • 「示例数据集介绍」
> str(gbsg)
'data.frame':   686 obs. of  10 variables:
 $ age    : int  49 55 56 45 65 48 48 37 67 45 ...
 $ meno   : int  0 1 1 0 1 0 0 0 1 0 ...
 $ size   : int  18 20 40 25 30 52 21 20 20 30 ...
 $ grade  : int  2 3 3 3 2 2 3 2 2 2 ...
 $ nodes  : int  2 16 3 1 5 11 8 9 1 1 ...
 $ pgr    : int  0 0 0 0 0 0 0 0 0 0 ...
 $ er     : int  0 0 0 4 36 0 0 0 0 0 ...
 $ hormon : int  0 0 0 0 1 0 0 1 1 0 ...
 $ rfstime: int  1838 403 1603 177 1855 842 293 42 564 1093 ...
 $ status : Factor w/ 2 levels "0","1"1 2 1 1 1 2 2 1 2 2 ...

age:患者年龄
meno:更年期状态(0表示未更年期,1表示已更年期)
size:肿瘤大小
grade:肿瘤分级
nodes:受累淋巴结数量
pgr:孕激素受体表达水平
er:雌激素受体表达水平
hormon:激素治疗(0表示否,1表示是)
rfstime:复发或死亡时间(以天为单位)
status:事件状态(0表示被截尾,1表示事件发生)
  • 「划分训练集和测试集」
# 划分训练集和测试集
set.seed(123)
data <- gbsg[,c(-1)]
data$status <- as.factor(data$status)
  • 「加载依赖库」
install.packages("tidymodels")
install.packages("discrim")
library(tidymodels)
library(discrim)

  • 「训练机器学习模型」
# 设置recipe 
rec <- recipe(status~.,data)   

xgb_mod <- boost_tree() %>%           
  set_engine("xgboost") %>%           
  set_mode("classification"
           
dt_mod <- decision_tree() %>%           
  set_engine("rpart") %>%           
  set_mode("classification"
           
logistic_mod <-          
  logistic_reg() %>%          
  set_engine('glm')          
          
nnet_mod <-          
  mlp() %>%          
  set_engine('nnet') %>%          
  set_mode('classification')          
      
rf_mod <-          
  rand_forest() %>%          
  set_engine('ranger') %>%          
  set_mode('classification')          
          
svm_mod <-          
  svm_rbf() %>%          
  set_engine('kernlab') %>%          
  set_mode('classification')


wf <- workflow_set(preproc=list(rec),          
                   models=list(xgb=xgb_mod, 
                        dt=dt_mod,          
                        log= logistic_mod, 
                        nnet=nnet_mod,          
                        rf=rf_mod,          
                        svm=svm_mod))


folds <- bootstraps(data,10)          
ctr <- control_resamples(save_pred = TRUE)  

wf_res <- wf %>%workflow_map("fit_resamples",resamples=folds,  control=ctr)
  • 「绘制单个模型的DCA曲线」

绘制的DCA曲线依次为XGBoost、decision_tree、Logistic、nnet、randomForest和SVM。


library(dcurves)          
p <- collect_predictions(wf_res) %>%           
  group_by(wflow_id) %>%          
  group_map(~dca(data=.x,status~.pred_1))
# XGBoost
p[[1]]

# decision_tree
p[[2]]

这里只贴XGBoost和decision_tree,对应的指标是12,剩下的就是3456了,如果想看的话可以自己打印出来。

  • 「绘制组合DCA曲线」

dca_data <- collect_predictions(wf_res) %>%     
  group_by(model) %>%           
  select(status,.pred_1) %>%           
  tidyr::pivot_wider(          
    names_from = model,          
    values_from = .pred_1) %>%           
  unnest()
  
dca(data = dca_data,status~.) %>%          
  as_tibble() %>%           
  ggplot(aes(x = threshold,           
             y = net_benefit,           
             color = label)) +          
  geom_line(lwd=1) +          
  coord_cartesian(ylim = c(00.3)) +          
  scale_x_continuous(          
    labels = scales::percent_format(accuracy = 1)) +          
  labs(x = "Threshold Probability",           
       y = "Net Benefit", color = "") +          
  theme_bw()+          
  theme(legend.position = c(0.85,0.6))

五、总结

综上所述,多模型DCA曲线是一种评估乳腺癌风险评估模型多样性和鲁棒性的有效方法。通过比较不同模型在不同阈值下的净利益,可以评估模型的优劣和多样性,并选择最佳模型用于临床应用。同时,多模型DCA曲线还可以用于评估模型改进和研究模型适用性等方面,具有较强的实用性和广泛的应用前景。

如果想知道如何解读DCA曲线,请关注+点赞+私信我。

*「未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容。版权所有,侵权必究。」

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【已解决】打印PDF文件,如何跳过不需要的页面?

打印PDF文件的时候&#xff0c;有时候我们只需要打印其中的几页&#xff0c;并不需要全部打印&#xff0c;那如何在打印时跳过那些不需要的页面呢&#xff1f;不清楚的小伙伴一起来看看吧&#xff01; 如果你是通过网页打开PDF文件&#xff0c;那么可以在页面中找到并点击“打…

页面间动画之放大缩小视图

目录 1、Exchange类型的共享元素转场 2、Static类型的共享元素转场 3、场景示例 在不同页面间&#xff0c;有使用相同的元素&#xff08;例如同一幅图&#xff09;的场景&#xff0c;可以使用共享元素转场动画衔接。为了突出不同页面间相同元素的关联性&#xff0c;可为它们…

【webstorm中通过附加方式打开一个项目,这个项目本身有git,但是却看不到git的解决方法】

1、如图所示 设置-》版本控制-》未注册的根&#xff0c;选中后&#xff0c;再点加号&#xff0c;就可以了 2、如图所示 版本控制-》直接点加号-》选中项目路径&#xff0c;vcs选择git&#xff0c;点击确定就可以了

算法分析与设计 第一次课外作业

算法分析与设计 第一次课外作业 文章目录 算法分析与设计 第一次课外作业一. 单选题&#xff08;共8题&#xff0c;80分&#xff09;二. 判断题&#xff08;共2题&#xff0c;20分&#xff09; 一. 单选题&#xff08;共8题&#xff0c;80分&#xff09; (单选题)以下叙述中错误…

阶段五-JavaWeb综合练习-学生管理系统

一.项目说明 1.前台 (用户使用) 前端,后端 2.后台 (管理员使用) 前端,后端 3.该项目为后台管理系统 项目开发流程: 1.需求分析 1.1 登录功能 用户访问登录页面输入用户名和密码,并且输入验证码。全部输入正确后点击登录&#xff0c;登录成功跳转主页面&#xff1b;登录…

三、HTML元素

一、HTML元素 HTML 文档由 HTML 元素定义。 *开始标签常被称为起始标签&#xff08;opening tag&#xff09;&#xff0c;结束标签常称为闭合标签&#xff08;closing tag&#xff09;。 二、HTML 元素语法 HTML 元素以开始标签起始。HTML 元素以结束标签终止。元素的内容是…

常见安全概念澄清,Java小白入门(八)

认证 认证 (Identification) 是验证当前用户的身份。 常见的认证技术&#xff1a; 身份证用户名和密码用户手机&#xff1a;手机短信、手机二维码扫描、手势密码用户的电子邮箱用户的生物学特征&#xff1a;指纹、语音、眼睛虹膜 授权 授权 (Authorization) 指赋予用户系统…

【OpenCV】在MacOS上源码编译OpenCV

在MacOS上源码编译OpenCV 1. 下载项目源码2. 创建CMake编译文件3. 编译安装4. 案例测试5. 总结 前言 在做视觉任务时&#xff0c;我们经常会用到开源视觉库OpenCV&#xff0c;OpenCV是一个基于Apache2.0许可&#xff08;开源&#xff09;发行的跨平台计算机视觉和机器学习软件…

【docker实战】安装tomcat并连接mysql数据库

本节用docker来安装tomcat&#xff0c;并用这个tomcat连接我们上一节安装好的mysql数据库 一、拉取镜像 我们安装8.5.69版本 先搜索一下 [rootlocalhost ~]# docker search tomcat NAME DESCRIPTION …

CRLF注入与检测

一、CRLF介绍 CRLF是CR和LF两个字符的拼接&#xff0c;它们 分别代表”回车换行”&#xff08;\r\n&#xff09;。十六进制编码分别为0x0d和0x0a&#xff0c;URL编码为%0D和%0A。CR和LF组合在一起即CRLF命令&#xff0c;它表示键盘上的"Enter"键&#xff0c;许多应用…

如何避免LLM的“幻觉”(Hallucination)

生成式大语言模型&#xff08;LLM&#xff09;可以针对各种用户的 prompt 生成高度流畅的回复。然而&#xff0c;大模型倾向于产生幻觉或做出非事实陈述&#xff0c;这可能会损害用户的信任。 大语言模型的长而详细的输出看起来很有说服力&#xff0c;但是这些输出很有可能是虚…

postman设置下载文件大小限制

问题 本地写了一个下载文件的接口&#xff0c;调用postman测试的时候&#xff0c;小文件可以&#xff0c;但时大文件就会报错&#xff0c;postman提示&#xff1a; 解决方案 点击postman的设置按钮&#xff0c;点击【Settings】&#xff0c;在打开的弹窗中选择【General】Tab…

【Spark精讲】记一个SparkSQL引擎层面的优化:SortMergeJoinExec

SparkSQL的Join执行流程 如下图所示&#xff0c;在分析不同类型的Join具体执行之前&#xff0c;先介绍Join执行的基本框架&#xff0c;框架中的一些概念和定义是在不同的SQL场景中使用的。 在Spark SQL中Join的实现都基于一个基本的流程&#xff0c;根据角色的不同&#xff0…

解析大语言模型LLM的幻觉问题:消除错觉、提高认知

文章目录 前言一、幻觉介绍二、幻觉产生的原因三、幻觉的现象四、幻觉的分类五、幻觉解决方案六、幻觉待解决问题后记 前言 在人类的感知和认知过程中&#xff0c;幻觉一直是一个被广泛讨论和研究的问题。幻觉指的是一种虚假的感知或认知经验&#xff0c;使我们看到、听到或感…

如何选择适合你的跨境电商源码?10大要点全解析

跨境电商源码是开展跨境电商业务的关键工具&#xff0c;它直接关系到电商网站的功能性和性能表现。如何选择适合自己的跨境电商源码成为了许多网商关注的焦点。本文将从多个维度全面解析如何选择适合你的跨境电商源码&#xff0c;为你的跨境电商之路提供有力支持。 关键点一&a…

大数据应用安全策略包括什么

大数据应用安全策略是为了保障大数据应用中的数据安全而采取的一系列措施&#xff0c;其重要性不容小觑。以下是大数据应用安全策略所包含的主要内容&#xff1a; 一、数据加密与安全存储 数据加密&#xff1a;对于敏感数据&#xff0c;应采用加密技术进行保护&#xff0c;包括…

【代数学作业4-汇总版】范数与迹

【代数学作业4】范数与迹 写在最前面1. 极小多项式1. 对 α \alpha α 的极小多项式2. 对 α 1 \alpha 1 α1 的极小多项式3. 对 α 2 α 1 \alpha^2 \alpha 1 α2α1 的极小多项式 2. 范数 N N N3. 数域 K K K 的范数 N K N_K NK​4. 迹 T T T5. 数域 K K K 的迹…

基于电商场景的高并发RocketMQ实战-促销活动推送至用户完整流程、Spring结合RocketMQ的生产者消费者使用

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff09;&#xff0c;发送【资料】可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景、中间件系列…

Redis - 挖矿病毒 db0 库 backup 反复出现解决方案

问题描述 腾讯云的服务器&#xff0c;使用 Docker 部署了 Redis 之后&#xff0c;发现 DB0 中总是出现 4 条 key&#xff0c;分别是 backup01backup02backup03backup04 而自己每次存入 db0 中的数据过一会就会被无缘无故删除掉。 原因分析 挖矿病毒 解决方案 在启动的时候…