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

简介: 多模型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(0, 0.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曲线还可以用于评估模型改进和研究模型适用性等方面,具有较强的实用性和广泛的应用前景。

目录
相关文章
|
机器学习/深度学习 监控 算法
信用风险评估评分卡建模方法及原理| 学习笔记
快速学习信用风险评估评分卡建模方法及原理。
信用风险评估评分卡建模方法及原理| 学习笔记
|
4月前
|
监控 测试技术
在模型训练中,如何衡量和平衡通用性和特定任务需求的重要性?
在模型训练中,如何衡量和平衡通用性和特定任务需求的重要性?
|
4月前
评估与预测
【8月更文挑战第21天】评估与预测。
35 1
|
7月前
|
机器学习/深度学习
【机器学习】噪声数据对贝叶斯模型有什么样的影响?
【5月更文挑战第10天】【机器学习】噪声数据对贝叶斯模型有什么样的影响?
|
7月前
|
编解码 人工智能 自然语言处理
扩散模型的多元化应用:药物发现、文本生成、时间序列预测等
AlphaFold3是DeepMind的蛋白质结构预测软件,它引入扩散模型以提升预测准确性。扩散模型通过逐步添加和去除噪声来理解和生成数据,应用广泛,包括图像、音频、文本和时间序列数据的处理。在图像领域,它们擅长合成、编辑和超分辨率;在文本处理中,扩散模型在代码合成和问答任务中表现出色;在音频和视频生成方面也有重要应用;同时,它们在时间序列预测和增强模型鲁棒性方面也展现出潜力。随着技术发展,扩散模型将在更多领域发挥作用。
255 0
|
6月前
|
机器学习/深度学习 数据采集 数据可视化
基于聚类和回归分析方法探究蓝莓产量影响因素与预测模型研究
k均值聚类模型多元线性回归模型随机森林模型在数据分析项目中,选择合适的模型是至关重要的。本项目中,我们采用了三种不同的模型来分析蓝莓的生长条件和产量,以确保从不同角度全面理解数据。一、K均值聚类模型K均值聚类模型是一种无监督学习方法,用于根据数据的相似性将样本分成不同的组。在这个项目中,我们使用K均值聚类模型来识别具有相似特征的蓝莓品种。通过聚类分析,我们将蓝莓分为4个类别,每个类别代表了不同的生长条件和产量特性。这种分类有助于我们理解在不同环境条件下,哪些因素对蓝莓产量有显著影响。
|
7月前
|
机器学习/深度学习 传感器 自然语言处理
时间序列预测的零样本学习是未来还是炒作:TimeGPT和TiDE的综合比较
最近时间序列预测预测领域的最新进展受到了各个领域(包括文本、图像和语音)成功开发基础模型的影响,例如文本(如ChatGPT)、文本到图像(如Midjourney)和文本到语音(如Eleven Labs)。这些模型的广泛采用导致了像TimeGPT[1]这样的模型的出现,这些模型利用了类似于它们在文本、图像和语音方面获得成功的方法和架构。
131 1
|
7月前
R语言Lee-Carter模型对年死亡率建模预测预期寿命
R语言Lee-Carter模型对年死亡率建模预测预期寿命
|
7月前
|
定位技术 计算机视觉 Windows
生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
|
7月前
|
定位技术 计算机视觉 Windows
R语言生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
R语言生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
下一篇
DataWorks