多模型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月前
|
编解码 算法 数据挖掘
【数据挖掘】聚类趋势估计、簇数确定、质量测定等评估方法详解(图文解释 超详细)
【数据挖掘】聚类趋势估计、簇数确定、质量测定等评估方法详解(图文解释 超详细)
51 0
|
8月前
|
机器学习/深度学习 数据采集 算法
机器学习-模型拟合:如何使用逻辑回归精准预测临床诊断结果?
本文旨在介绍逻辑回归模型在临床诊断结果预测中的应用,并探讨相关需求和挑战。首先,将详细介绍逻辑回归模型的原理和特点,以及其在机器学习中的地位和应用范围。接着,将阐述临床诊断结果预测的重要性和现实需求,以及逻辑回归模型如何满足这些需求。
252 0
|
机器学习/深度学习 监控 算法
信用风险评估评分卡建模方法及原理| 学习笔记
快速学习信用风险评估评分卡建模方法及原理。
954 0
信用风险评估评分卡建模方法及原理| 学习笔记
|
存储 算法 数据库
一起聊聊图像质量和美学评估的数据集
图像质量和美学评估是计算机视觉领域中热点的研究问题,并且极具应用前景,可与众多实际应用深度结合。评价一张图片,主要从两个方向,一个是图像的质量,如像素、清晰度、有无噪声等,一个是图像的感觉,也就是美学,如构图、颜色、内容主体等。通过这两个方面就可以评价一张图片的好坏,通过计算机视觉算法,可以为图片自动评分,得分高的图片被认为较好,可以用于推荐和搜索等应用场景。本文主要聊聊一些关于图像质量和美学评估
10474 1
|
2天前
|
机器学习/深度学习 算法 Python
R语言VaR市场风险计算方法与回测、用LOGIT逻辑回归、PROBIT模型信用风险与分类模型
R语言VaR市场风险计算方法与回测、用LOGIT逻辑回归、PROBIT模型信用风险与分类模型
|
8天前
|
定位技术 计算机视觉 Windows
生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
21 0
|
10天前
|
定位技术 计算机视觉 Windows
R语言生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
R语言生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
18 0
|
9天前
|
存储 资源调度 数据可视化
R语言STAN贝叶斯线性回归模型分析气候变化影响北半球海冰范围和可视化检查模型收敛性
R语言STAN贝叶斯线性回归模型分析气候变化影响北半球海冰范围和可视化检查模型收敛性
32 7
|
4月前
|
机器学习/深度学习 人工智能 算法
社交网络分析4(上):社交网络链路预测分析、Logistic回归模型、LLSLP方法(LightGBM 堆叠链路预测)、正则化方法、多重共线性
社交网络分析4(上):社交网络链路预测分析、Logistic回归模型、LLSLP方法(LightGBM 堆叠链路预测)、正则化方法、多重共线性
302 0
社交网络分析4(上):社交网络链路预测分析、Logistic回归模型、LLSLP方法(LightGBM 堆叠链路预测)、正则化方法、多重共线性
|
1月前
|
机器学习/深度学习 传感器 自然语言处理
时间序列预测的零样本学习是未来还是炒作:TimeGPT和TiDE的综合比较
最近时间序列预测预测领域的最新进展受到了各个领域(包括文本、图像和语音)成功开发基础模型的影响,例如文本(如ChatGPT)、文本到图像(如Midjourney)和文本到语音(如Eleven Labs)。这些模型的广泛采用导致了像TimeGPT[1]这样的模型的出现,这些模型利用了类似于它们在文本、图像和语音方面获得成功的方法和架构。
38 1