主讲老师第五十八课:Nomogram 图的绘制
接下来,我们来看看如何将风险评分结合临床病理特征,构建临床预测模型。在日常的临床工作以及研究中,对于某个疾病,无论是肿瘤研究,还是非肿瘤研究,我们常听到患者 提出这样的问题,“我的检查结果是这样的,那么最终患病的概率有多少,生存情况又是怎样的呢?” 当然,生信分析,作为医学研究的三大主线之一,亦是如此。最终的结局无外乎两种,一是发病率是多少,二是预后生存情况如何,当我们通过数据挖掘,或者模型构建,发现了一种新的Biomarker,或者风险模型,除了通过 ROC 曲线或者生存分析评估其对疾病进展或者预后的独立预测能力以外,另一种很重要的手段就是该分子变量与其他已有的临床病理特征结合,综合预测患病率或生存率模型的重要能力。如果我们能提前预测病人病情的进展情况,那么有时候将会做出不同的临床决定,使整个过程更偏向个性化治疗。 Nomogram 图,又称为列线图(Nomogram.zip),基于多因素分析的结果,将多个预测指标进行整合,根据一定的比例分配,以图形的形式将各个变量之间对结局预测之间相互关系进行可视化展示。下面,我们一起来学习一下基于Logistic 回归和 Cox 回归分析的列线图的绘制过程,分别对应着非肿瘤研究和肿瘤研究内容。下面,我们一起来看下列线图的绘制过程。
一、基于 Logstic 回归的列线图
1.引用 R 包
2.读取文件
在该数据集中,主要包含了年龄(Age),性别(Gender),BMI 值,教育水平(Education),饮酒史(Alcohol)5 个自变量以及 1 个结局变量(Status),是不是是否贴合临床研究或者非肿瘤的数据,预测患病与否
3.设置变量参数
首先,根据分组情况,对所有的变量添加标签。
随后,使用 datadist()函数将数据打包
4.构建 Logstic 模型
接下来,我们需要对这些数据进行拟合,得到一个新的模型首先,利用 lrm()函数对模型进行线性拟合在模型中,纳入所有的变量构建了 Logistic 模型,结果展示了每个变量在模型中的系数以及 P 值,而且模型的 C 指数为 0.839,展示出模型良好的预测能力。到此,模型构建好了,我们需要对模型进行可视化展示
5.构建 Nomogram 及可视化
使用 nomogram() 函数构建模型。
解释一下如何看图,每个指标往上都对应了一个 Points,通过将一个患者的每个指标对应的 Points 相加,将计算得到的总和与 Total points 相对应,获得不同患者的患病可能性,并且可以提前对高危的患者进行针对性的干预。做完了是否患病,然后我们来看看患病后能存活多久。
二、基于 Cox 回归的列线图
与 Logstic 回归的列线图一致,首先是数据的读取与整理过程
1.引用 R 包
这里,我们需要借助 survival 包构建模型。
2.读取文件
与前面数据不同的是,这里增加了患者的生存状态和生存时间
3.设置变量参数
根据数据要求,设置相应的因子水平,并使用函数 datadist() 将数据打包,所有的准备工作完成后,我们接下来需要对其进行评价。
4.构建 Cox 回归模型
在此,我们需要构建 cox 模型
5.构建 Nomogram 及可视化
接着,将构建的模型拟合到 Nomogram 图中去。
在模型中,共纳入了 6 个变量,通过整合,预测患者 1 年,2 年以及 3 年的预后生存情况,同样的,我们可以计算每个变量对应的 Points,然后相加,与 Total Points 进行比较,进而获得其对应的 1 年,2年,和 3 年的生存可能性,这个绘制得到的是静态的 nomogram绘制,基本上这些代码对输入数据整理部分稍作修改即可使用。然而,现在有些文章里已经出现动态的 nomogram 图了,等会儿我们来讲解一下动态 Nomo 图的绘制,当然,Nomo图的使用不只是生信分析中,在临床分析中也是一个常用的展示形式,构建完预测模型后,我们需要接下来看看如何评价这个预测模型