R教程:教你绘制5种类型的诺莫图 (列线图) 您所在的位置:网站首页 列线图调整 R教程:教你绘制5种类型的诺莫图 (列线图)

R教程:教你绘制5种类型的诺莫图 (列线图)

2023-09-07 06:19| 来源: 网络整理| 查看: 265

0 分享至

用微信扫码二维码

分享至好友和朋友圈

作者:墨点星沟;审核:王九谊

在预测模型中,我们常能见到诺莫图 (Nomogram,也称列线图)的身影,其作为预测模型可视化的一个重要手段,使得预测模型更具可操作性和实用性。

目前,我们常用的诺莫图有如下5种类型:线段式的静态诺莫图、彩色条带式的静态诺莫图、基于regplot 的动态诺莫图、基于DynNom 的动态诺莫图和基于 shinyPredict 的动态诺莫图。

本文以诺莫图绘制的主要代码与过程演示为主,而有关诺莫图的简介,大家可以回顾医咖会的往期推文(教你用R 画列线图,形象展示预测模型的结果),这里便不作过多介绍。接下来,本文将以 logistic 预测模型为例,对不同类型诺莫图的 R 语言实现做一个汇总,给大家提供一套丰富多彩的诺莫图解决方案。

数据介绍

本次演示所用的案例数据来源于 SEER 数据库,研究目的是构建预测宫颈癌患者淋巴结转移的诺莫图,所涉及的变量有年龄 (Age)、组织学类型 (Hist_type)、组织学分级 (Hist_stage)、肿瘤数目 (Tumor_number)、肿瘤大小 (Tumor_size)、淋巴结转移 (Status) 等。

经过纳入排除,最终用于分析的观测行有 8749 行。鉴于样本量较大,我们采用了TRIPOD (Transparent reporting of a multivariable prediction model for individual prognosis or diagnosis,用于个体预后和诊断的多变量预测模型的透明报告)中给出的 Type 2a 方案进行预测模型的建立与验证。先按照 7:3 的比例,将数据集随机划分为训练集和验证集。训练集、验证集的数据概况如下:

建立预测模型

接着用训练集构建模型(预测因子筛选、多因素logistic模型构建),具体过程不在这里详述了。经过模型验证、评价及调整,最终得到的预测模型中包含了年龄、组织学类型、组织学分级、肿瘤数目这4 个变量。

由于构建线段式静态诺莫图的nomogram函数更易识别lrm函数构建的模型,因此这里先以lrm函数构建模型(注:下文所用的glm与lrm构建的二元logistic模型结果是一致的)。所构建的最佳logistic预测模型的概况如下所示:

绘制诺莫图

在得到最佳的预测模型后,我们便可以开始绘制预测模型的诺莫图。

1. 线段式静态诺莫图

线段式静态诺莫图是我们在文章中最常见到的,也是最常用的。因其用线段和对应的分值来形象地刻画结局发生概率,所以我们更习惯称之为列线图。

Figure 1. 线段式静态诺莫图

这里我们玩个小花样,向下延长Points轴的刻度,使得每个变量有一个粗略的Points参考,代码和图如下:

Figure 2. 改良版线段式静态诺莫

2.彩色条带式静态诺莫图

目前绘制该诺莫图的程序包(VRPM)已经无法直接通过install.package函数安装,但可以通过网站下载安装包后手工安装,下载安装步骤如下:

下载安装包(下载链接https://cran.r-project.org/src/contrib/Archive/VRPM/) →打开Rstudio→点击菜单栏中的Tools→在弹窗的Install from中选择“Package Archive File (.zip; .tar; .gz)”→点击Browse,选择压缩包→点击Install。

同时这里给大家提供一个网盘链接:

(链接:https://pan.baidu.com/s/1W0V7Rp-byBXY6cE6Ssh2Og , 提取码:p6yw)

与线段式静态诺莫图不同的是,该彩色诺莫图绘制成功后,会直接保存在工作路径文件夹中,不在Rstudio中显示。图中各条带的颜色为渐变色,有 5 种颜色方案备选。另外,对于不同的诺莫图绘制函数,其所识别的建模函数会有所差别,大家可以根据其帮助文档具体选择lrm或glm,这里建模使用的是glm函数。彩色诺莫图见Figure 3,代码及过程如下:

Figure 3. 彩色条带式静态诺莫图

简单地介绍一下彩色诺莫图的使用,和列线图的用法基本一致,右侧的Color Legend对应的是每个变量的各亚组/不同数值对应的score,四个变量的score相加对应最下面的Score,也就是total score,同时最下面的total score有相对应的Probability。

(注:Color legend对应的是每个变量不同亚组对应的score,比如年龄90岁对应3分,Histology stage的4对应3分。这里颜色为渐变色,取值比较粗糙;相比线段式的列线图,或许只是花哨一点,计算起来,可操作性可能要差一些。下面的概率坐标轴有自己的渐变色,不参考color legend)

3. 线段式动态诺莫图

该诺莫图也可以称为交互式列线图,当在 regplot 函数中将 clickable 设置为 TRUE(clickable = T ) 后,我们就可以在图上点击选择每个变量的不同亚组或不同数值,来看不同特征患者对应的淋巴结转移风险,实现交互功能。另外,还可以选择不同的显示风格(见Figure 4)。代码及过程如下:

Figure 4. 线段式动态诺莫图

在Rstudio中,我们可以点选不同特征,以查看不同特征患者发生结局事件的概率;但以静态图片导出后,显示的是某一患者的特征及对应的结局发生概率,不便宜查看其他特征的患者。而后面要讲到的动态诺莫图与此不同,既可以脱离Rstudio,也可以点选不同特征,实用性和可操作性极强。

4. 基于DynNom的动态诺莫图

这款诺莫图与静态诺莫图(列线图)不同,已基本不具有列线图的样式(线段);加之是基于shiny开发的网页,因此将其称之为“预测概率网页计算器”或许更加合适。如果说以上介绍的三种诺莫图是纸笔时代的产物,那么下面将要介绍的两种诺莫图应是网络时代的选择。

运行完第 6 步这一句,会在工作目录文件夹内出现一个新的文件夹(DynNomapp),内含ui.R、server.R、global.R、functions.R、data.Rdata和 README.txt 等文件;关掉 Rstudio,打开 ui.R 或 server.R,点击右上角的 Run APP,你会得到一个右上角有 Publish 的 Dynamic nomogram (Figure 5);

此时,可以通过点击 Publish 上传上述文件,也可以运行如下语句:rsconnect::deployApp(appName = “Dynamic_nomogram”); 接下来的就是等待……部署完成后会弹出一个网页。本次演示所生成的网页动态诺莫图见链接 (https://ww-msdatastudio.shinyapps.io/Dynamic_nomogram/),截图见Figure 6。

这种诺莫图的使用比较简单,完成网页部署后,通过网址进入后,只需要在相应的变量选项里进行选择,然后点击Predict即会给出相应特征患者的结局发生概率及其95%置信区间。

基于shiny的动态诺莫图,其高级之处也是其最难实现之处:部署到网页上,大家可以按照上述步骤,耐下心来慢慢梳理一遍。另外,这里有两点要特别提醒大家:①建模数据集的名字不能为 data, 否则会报错;②每次使用完后,要记得点击左下方的Quit,否则下次再打开时可能会报错。

Figure 6. 网页版动态诺莫图

(注:这里需要提醒大家:DynNom生成的在线计算器,有个bug,如果前一个使用者结束使用,不点quit,下一个使用者会报错)

5. 基于shinyPredict的动态诺莫图

和基于 DynNom 的诺莫图一样,均需要部署到 shinyapp 中,但 shinyPredict 的功能要比 DynNom 强大一些,不仅可以显示多个模型的诺莫图,还可以更改诺莫图的主题。这里新建立了一个模型 LR3,让 LR3 与 LR2 一起显示在该动态诺莫图中。

运行完第 3 步,会在指定的文件路径中生成 3 个文件,打开名为 app 的文件,点击右上角的 Run app 即可生成该诺莫图,之后的事情就是上传到 shinyapp 生成网页版诺莫图(同样需要先注册shinyapp,然后与Rstudio关联),截图见Figure 7。

Figure 7. 基于shinyPredict的动态诺莫图

(注:基于shinyPredict的诺莫图,由于不适当的使用了选择框,导致使用者可以在一个预测变量里选择两个数值,甚至不选,导致变量值的输入不具唯一性,需要模型使用者额外注意。作为模型开发者,最好可以在shinyPredict提供的诺莫图的基础上,自己进行进一步的优化。)

结束语

以上便是 5 种诺莫图的绘制过程与主要代码,希望能给各位提供些许帮助,其中的更多细节还需要大家在实践中具体学习和摸索。下期将以Cox比例风险模型为例绘制诺莫图。

最后,在这里谈一点个人的认识,对于一个完整的诺莫图绘制或预测模型开发过程,应是先通过训练集建立、验证集验证/评价以及后续的模型调整(增减变量、替换变量、改变已纳入变量类型等)等步骤构建出一个最优的预测模型,然后再将预测模型转化为诺莫图。

从上述步骤我们不难看出,我们所做的验证、评价、调整均是针对预测模型的,而不是针对诺莫图的,诺莫图只是预测模型的一种展现形式;因此在很多文章或推文中提到的对诺莫图的验证、评价等说法,个人认为是值得商榷的。

医咖会面向医生个人、医院/单位、企业提供各种科研服务,包括研究设计、统计分析、EDC系统、科研培训等,详情查看:医咖会可为你提供这些科研服务,助你解决各种科研难题!。快加小咖微信(xys2019ykh)或扫描以下二维码加小咖微信咨询吧。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

/阅读下一篇/ 返回网易首页 下载网易新闻客户端


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有