分享

【姊妹篇】预测模型研究利器-列线图(Cox回归)

 阿非ycfg 2020-05-27
背景
Background

人类总是痴迷于“算命”。无论是中国文化中的“算命”,还是西方文化中的“占星术”,都显示出人们对此的热情。在这一部分,我们将讨论另一种科学的“算命”。 该模型将用于评估患者的预后。作为一名肿瘤科医生,在临床实践中你将面临癌症患者提出的诸如“我能活多久”之类的问题。这是一个令人头痛的问题。大多数情况下,我们可以根据相应疾病的临床分期来判断患者的中位生存时间。实际上,临床分期是我们对这些患者进行生存预测的基础,换句话说,临床分期就是“预测模型”。我们根据患者的临床分期用中位生存期来回答这个问题。但是,这样做可能会引出新的问题,因为用一群人的中位生存期来预测特定个体的生存时间可能并不那么准确,无法判断该特定个体的预后是更好还是更差。

那么,有没有更准确、更科学的方法来计算每个患者的存活率呢?答案是肯定的。我们可以先用Cox回归风险模型建立数学模型,然后用Nomogram将与患者生存相关的参数可视化——这一步可以比较准确地计算出每个患者的生存概率。

Nomogram本质上是可视化的回归模型,它根据所有自变量的回归系数设定评分标准,然后给出每个自变量的评分值,从而计算出每个患者的总分。通过函数计算发生概率和预后之间的转换,并且获得每个患者的预后概率。例如,一位已经做了手术的40岁胰腺癌患者,男性,临床分期为IV期,其肿瘤位于胰头并伴腹膜转移,在术中进行了放疗。根据这些现有的信息,我们可以通过数学模型计算出总分:40岁可以得10分,男性可以得4分,以此类推…最后得出总分。不同的评分在3个月、6个月和1年的生存概率不同。此时,复杂的Cox回归公式转变为直观的可视化图形。临床医生可以方便地计算出每个患者的生存概率,并为每个患者提供相对准确的“算命”。在上一章节,我们已经讨论了Logistic回归Nomogram(预测模型研究利器-列线图(Logistic回归))。

本次教程,我们来讲解Cox回归Nomogram,其与Logistic回归Nomogram在解释上极为相似。和上一章节一样,第一个问题是我们应该在什么时候选择COX回归?这实际上是关于多变量分析中的方法选择问题。如果我们观察到的预后是生存,或者我们称之为“事件发生时间”生存预后,则可以选择Cox回归模型。我们已经在前面章节(【临床研究】一个你无法逃避的问题:多元回归分析中的变量筛选)中介绍了如何筛选变量。同时,还应注意预测模型中引入的变量数量与模型的方便性和实用性之间的平衡。我们将列出两个使用R构建Nomogram的示例,介绍R应用的详细性能而不是统计原理。

实例分析-Case1
Direct to Gan Huo 

此次,为了让大家看的更明白,学得更彻底,我们依旧给出两个实例案例,好好学习哦。先看case1。

案例解读

现在,我们将使用第一个案例case1中的数据来介绍生存预测模型的构建和相应的nomogram。原始数据已简化,以便大家更好地理解和实践练习。我们从TGCA下载了1,215例浸润性乳腺癌患者的临床数据。我们按照表1的步骤对原始数据进行了简化,变量的定义和赋值如表2所示。我们将构建该队列的生存预测模型和相应的诺模图,大家可以联系客服(文末联系方式),下载本章节中的原始数据和R代码,以便更好地练习。

表1 1215个乳腺癌病人的临床信息(前8行)

本章节重点介绍了基于Cox回归模型的nomogram的建立、C-Index的计算、Bootstrap方法和校准图。所有过程均可通过R完成。

表2 变量定义、赋值和描述

这个队列是关于预后预测模型的构建。步骤如下:

(1) 采用Cox回归方法,首先要建立基于训练集的独立预后因素筛选和预测模型。用于建模的数据集通常被称为训练集或内部数据集。最终得到影响预后的三个自变量:年龄、PgR、病理分期。

(2) 基于年龄、PgR、病理分期三个变量构建nomogram(这三个变量在此Cox模型中均被视为自变量)。

(3) 评估所构建模型的判别效率,计算C-Index。

(4) 该模型的验证可以通过外部数据集来实现。如果外部数据集不可用,建议使用基于内部数据集和校准曲线图的自助抽样方法进行验证。

实现过程

首先就是读入数据和数据预处理,具体代码如下:

然后最关键的来了,通过rms包的cph()函数构建Cox回归模型,同时构建surv对象,然后构建nomogram。

最后绘制出来的nomogram如下图所示:

 Cox回归模型的nomogram

Nomogram解释:图中的点是选定的评分标准或尺度。对于每个自变量,在该点处画一条垂直于数轴的直线,交点代表自变量值以下的分数。例如,年龄25岁表示0分;CEA 90表示100分。可以计算出每个患者这些自变量的对应点总分。我们可以得到总分,它将以垂直线定位于生存轴。这将指示该患者的生存率(3年或5年OS)。

接下来,我们再往前走一步,我们来计算一个C-index。R语言中C-Index的含义与ROC相似。它的范围是0-1,越接近1,这个Cox回归模型的预测值就越准确。一般来说,如果C指数等于0.7,则模型拥有非常好的预测价值。

在本例中,C-Index等于0.7787,Se(C-index)等于0.0573。上述所有结果都是软件直接输出。按照常规来说,算到这里就差不多了,不过,作为追求完美的科研猫,我们还要继续往前再走一步:尝试绘制Cox模型的标准曲线。

构建标准曲线如图所示。u应该与前面回归模型中time.inc中定义的f一致。如果模型f的ime.inc为60,则u也应为60。m将与样品大小一致。标准曲线将把所有样品分成3或4组(在图表中它将显示为3或4个点)。m表示每组的样本量。因此,m*3等于或近似等于总样本大小。修正后的标准曲线的解释:我们将在内部数据集中验证基于Bootstrap重采样方法的nomogram模型的预测效能。横轴表示每个患者的预测存活率,而纵轴表示每个患者的实际存活率。如果图片中的红线与蓝色虚线完全重合,这表明模型是最理想的

实例分析-Case2
More Gan Huo 

案例解读

来自北方中心癌症治疗小组的晚期肺癌患者的存活率。表现评分对患者进行日常活动的能力进行评估。共有10个变量:

(I) inst:机构代码;

(II) Time:生存时间(以天为单位);

(III) Status:结局 1=存活,2=死亡;

(IV) Age:年龄(以年为单位);

(V) Sex:男=1,女=2;

(VI) ph.ecog:ECOG表现评分(0=良好,5=死亡);

(VII) ph.karno:医生评定的卡氏评分(差=0~良好=100);

(VIII)pat.karno:患者评定的卡氏评分;

(IX) meal.cal:用餐时消耗的卡路里;

(X) wt.loss:近六个月内的体重下降值。


实现过程

这一队列研究有关于生存。这里将考虑与结局相关联的生存时间(结局 1=存活,2=死亡)。建立Cox回归模型,通过nomogram实现可视化。将计算C-index,并使用R绘制校准曲线。演示将使用survival包中的lung数据集。前面预处理的步骤永远都是一样的:数据读入,数据过滤,数据转换。

然后就是计算C-index,构建校对的标准曲线。

Cox回归拟合将基于因变量时间、状态和因变量年龄、性别而建立。然后就是构建模型,Nomogram可视化的过程,跟前面是一样的。

小结
Tips

这一部分介绍了生存预测模型和Nomogram的构建。一个好的模型应该方便应用并且具有准确的预测效率。在准确性评估中,外部验证与内部验证一样重要。在我们的示例中,因为没有更好的外部数据集,故没有进行外部验证。关于临床预测的Nomogram的许多文章已经发表,其在“算命”方面比TNM分期要好。但是,临床医师仍然习惯于使用TNM分期系统来“算命”。也许TNM分期要方便得多,从这个角度来看,在构建Nomogram时应减少变量数,以确保在临床实践中提供更多的便利。这将引出另一个问题:准确性和实用性我们应该优先考虑哪个?且听下回分解。

参考文献:Zhi-Rui Zhou, Wei-Wei Wang, Yan Li, et al. In-depth mining of clinical data: the construction of clinical prediction model with R.Annals of Translational Medicine.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多