中华医学会主办。
文章信息
- 陈哲 许恒敏 李哲轩 张阳 周彤 游伟程 潘凯枫 李文庆
- ChenZhe,XuHengmin,LiZhexuan,ZhangYang,ZhouTong,YouWeicheng,PanKaifeng,LiWenqing
- 随机生存森林:基于机器学习算法的生存分析模型
- Random survival forest: applying machine learning algorithm in survival analysis of biomedical data
- 中华预防医学杂志, 2021,55(1)
- http://dx.doi.org/10.3760/cma.j.cn112150-20200911-01197
- 引用本文:
-
文章历史
- 投稿日期: 2020-09-11
许恒敏 1
李哲轩 1
张阳 1
周彤 1
游伟程 1
潘凯枫 1
李文庆 1
Corresponding author: Li Wenqing, Email: wenqing_li@bjmu.edu.cn
生存分析是一种常用的分析研究对象结局事件发生时间的分析方法,广泛地应用于临床医学、公共卫生和生物学等不同研究领域,解释在时间的影响下各因素与发生事件的关系。在比较各组之间的生存差异时,由于运用了假设检验的思想,部分常用的传统生存分析方法对于数据的分布特点有一定的要求,如Cox比例风险回归需要资料满足比例风险假设这一前提条件[
一、基本原理
(一)二元生存树(Binary Survival Tree) 随机生存森林的基本单位是二元生存树,即传统的二元决策树(Binary Decision Tree)的拓展。二元决策树是一种树形数据结构,输入数据在经过二元决策树的节点时,会被节点的判断条件分裂成两组新的数据,直到输入数据均为同一类别为止,而数据最终存在于的节点即为其所属类别[
(二)随机生存森林算法 随机生存森林通过训练大量生存树,以表决的形式,从个体树之中加权选举出最终的预测结果。构建随机生存森林的一般流程为:首先,模型通过“自助法”(Bootstrap)将原始数据以有放回的形式随机抽取样本,建立样本子集,并将每个样本中37%的数据作为袋外数据(Out-of-Bag Data)排除在外。其次,对每一个样本随机选择特征构建其对应的生存树。再次,利用Nelson-Aalen法估计随机生存森林模型的总累积风险。最后,使用袋外数据计算模型准确度。
(三)总累积风险函数 定义(T(1, h),S(1, h)),……,(T(n, h),S(n, h))为输入的删失数据。其中,H为终端节点且h∈H。
(四)模型评估 随机生存森林使用了Harrell的一致性指数(concordance index)来计算其准确度[
(五)变量选择 由于随机生存森林模型选取输入数据的大量特征作为其分裂节点来构建模型,该模型保留了冗杂的变量。然而,并不是所有的变量在机器建立模型时都有积极意义,因此,通过变量筛选,我们可以了解各变量在建立模型时的作用。评判变量重要性的方法有两种,分别是VIMP(variable importance)法和最小深度(minimal depth)法。VIMP法的计算方法的原理是将袋外数据放入生存树中,令其随机分配到任一子节点;计算新的总累积风险;VIMP为原始错误率和新错误率的差。因此,VIMP越大就意味着此变量对于模型的准确度影响越大,此变量的重要性就越高。不同于VIMP,最小深度法则认为,需要保留的变量应该为能够区分最多数据的变量,即最靠近根节点的节点。因此,最小深度法认为值越小的变量则对模型越重要。
二、基于R语言的库 Ishwaran等在2020年1月20日开发了专门用于随机生存森林的R语言库“randomForestSRC”,截至2020年9月,最新的版本为2.9.3。不同于先前的随机生存森林库“randomSurvivalForest”“randomForestSRC”的开发基于OpenMP,可以进行多线程并行的计算,进而提高模型的构建效率。本次更新还提供了解决多变量数据缺失值和非均衡数据等问题的函数。为了能更灵活地可视化随机生存森林模型,John开发了“ggRandomForests”库,截至2020年9月,最新版本为2.0.1。用户仅需在R软件使用如下命令即可安装此库:
>install.packages(“randomForestSRC”)
>install.packages(“ggRandomForests”)
三、案例分析 以美国梅奥诊所在1974—1984年间收集的原发性胆汁性胆管炎(primary biliary cholangitis,PBC)数据为例,通过构建随机生存森林模型来探究D-青霉胺(DPCA)治疗对于原发性胆汁性胆管炎生存的影响[
(一)数据处理 原始数据共有总计418例患有PBC的研究对象,包含20个特征变量。为使原始数据满足分析函数的要求,我们对变量类型进行了简单处理,结果如
(二)采用乘积极限法计算生存率 用乘积极限法来评估主要暴露因素(DPCA治疗)对结局事件(死亡)的影响。首先使用filter函数筛选出部分临床数据作为训练集,筛选比例视样本量和具体情况而定,并将剩余数据作为测试集,然后使用gg_survival函数建立“生存对象”(survival object)。gg_survival函数包含以下几个参数:interval,censor,by和data。Interval为生存时间变量,censor为生存事件变量,by为分层变量,data为输入数据。建立生存对象之后,使用ggsurvplot绘制其生存函数图。从
![]() |
图1服用D-青霉胺和安慰剂后原发性胆汁性胆管炎患者的生存曲线图( |
(三)随机生存森林的构建 通过rfsrc函数构建随机生存森林模型,以构建各因素对PBC生存影响的预测模型。rfsrc是“randomForestSRC”库中最核心的函数,在filter函数筛选的测试集数据基础上,可通过调整多个参数以及袋内数据和袋外数据的构成比例,对模型进行精细的调整。例如,此函数可以用来进行多种随机森林模型的构建,也可以通过参数再次提高函数的运行速度。运行完毕后,可以通过rfsrc.print来查看模型构建情况。如
![]() |
图2不同生存树数量的模型预测错误率 |
(四)测试集数据的预测 进一步将上文构建的随机生存森林模型应用于filter函数生成的测试集,运用predict.rfsrc函数进行对测试集生存结局的预测,错误率为19.5% (
(五)变量筛选和结论 在机器学习基础上进行变量筛选,可更好地理解变量重要性,而VIMP法和最小深度法是随机生存森林模型中常用的变量筛选方法。变量VIMP值小于0说明该变量降低了预测的准确性,而当VIMP值大于0时说明该变量提高了预测的准确性。最小深度法则通过计算运行到最终节点时的最小深度来给出各变量对于结局事件的重要性。
![]() |
图3随机生存森林模型VIMP法和最小深度法的散点图 |
四、讨论 自20世纪80年代以来,以Cox比例风险回归模型为代表的传统生存分析模型为临床试验等医学研究做出了巨大的贡献[
“randomForestSRC”库功能十分强大,该库的官方操作指南也十分详细,并提供了相应的应用实例。本文以该库自带的临床数据为例介绍了随机生存森林的数学原理并运用随机生存森林进行生存分析的基本流程。需要强调指出的是,尽管多篇文献表明随机生存森林模型优于或至少等同于传统生存模型的准确度,但是在数据符合传统生存分析要求时,传统生存分析方法仍不可或缺。作为新兴方法,随机生存森林也存在缺陷:易受离群值的影响。在分析具有离群值数据时,预测准确度会稍劣于传统生存分析方法[
对随机生存森林模型的应用,应注意以下几点:第一,在构建随机生存森林模型时,需要格外注意原始数据的数据类型,必要时提前对原始数据进行处理,替换成因子(factor)等类型。例如,示例中是否应用DPCA这一变量(treatment)即需转换为因子型,否则无法运行。第二,rfsrc函数包含了许多参数,使用时提前注意其参数的默认选项,避免错误。第三,本研究中使用的“na.impute”选项是使用函数默认的填充方法对缺失值进行填充,具体方法为利用随机森林模型寻找缺失值的邻近值。若对缺失值的填补有特殊要求,可提前进行相应的填补。需要注意的是,大量存在的缺失值会降低模型的准确度。第四,虽然大多数情况下,VIMP法和最小深度法所筛选出的变量类似,仍建议结合两种方法来进行变量的选择。第五,与传统的Cox比例风险回归模型不同,随机生存森林模型在建立的时候已经自动地对各变量进行调整,所以不需要再调整协变量带来的影响。
![]() |
附件1随机生存森林模型的R语句 |
附:2021年第1期继续教育单项选择题 1. 随机生存森林模型的基本单位是:
A. 二元生存树
B. 二元森林
C. 二元决策树
D. 决策森林
2. 下列对随机生存森林描述正确的是:
A. 构建随机生存森林模型时,应将原始数据进行处理,不需要将离散变量转换成因子型数据。
B. 随机生存森林可以通过选择不同的变量组合来提高其预测准确率。
C. 随机生存森林模型通过使用“自助法”(Bootstrap)将原始数据以有放回的形式随机抽取样本,建立样本子集。
D. 随机生存森林模型可以完全替代其他传统生存分析模型。
3. 下列对VIMP值的理解正确的是:
A. VIMP的绝对值越大,其变量重要程度越高。
B. VIMP值不能为负。
C. VIMP越大就意味着此变量对于模型的准确度影响越大,此变量的重要性就越高。
D. 可以通过VIMP筛选变量来提高模型的预测准确率。
4. 下列对最小深度法描述正确的是:
A. 可以通过最小深度法筛选出的变量来提高模型的预测准确率。
B. 因为最小深度发得出的变量比VIMP更有参考价值,所以可以仅参考通过最小深度法筛选出的变量。
C. 最小深度值可以为负数。
D. 最小深度值越小,其变量重要程度越高。
5. 随机生存森林的局限性是:
A. 不能描述重要变量与结局变量之间的准确关系。
B. 模型预测准确度经常劣于传统生存分析模型。
C. 和其他机器学习算法一样,需要特别预防过拟合问题。
D. 使用该模型时,需要考虑数据是否满足比例风险等假设。
2IshwaranH, KogalurUB, BlackstoneEH, et al. Random survival forests[J]. Ann Appl Stat, 2008, 2(3): 841-860. DOI: 10.1214/08-aoas169.
3ZhouY, McArdleJJ. Rationale and Applications of Survival Tree and Survival Ensemble Methods[J]. Psychometrika, 2015, 80(3):811-833. DOI: 10.1007/s11336-014-9413-1.
4CuzickJ. Counting processes and survival analysis. Thomas R. Fleming and David P. Harrington, Wiley, New York, 1991[J]. Statistics in Medicine, 1992, 11(13): 1792-1793. DOI: 10.1002/sim.478011131.
5FizaziK, ScherHI, MolinaA, et al. Abiraterone acetate for treatment of metastatic castration-resistant prostate cancer: final overall survival analysis of the COU-AA-301 randomised, double-blind, placebo-controlled phase 3 study[J]. Lancet Oncol, 2012, 13(10):983-992. DOI: 10.1016/S1470-2045(12)70379-0.
6KyriakopoulosCE, ChenYH, CarducciMA, et al. Chemohormonal Therapy in Metastatic Hormone-Sensitive Prostate Cancer: Long-Term Survival Analysis of the Randomized Phase III E3805 CHAARTED Trial[J]. J Clin Oncol, 2018, 36(11):1080-1087. DOI: 10.1200/JCO.2017.75.3657.
7StroblC, MalleyJ, TutzG. An introduction to recursive partitioning: rationale, application, and characteristics of classification and regression trees, bagging, and random forests[J]. Psychol Methods, 2009, 14(4):323-348. DOI: 10.1037/a0016973.
8IshwaranH, GerdsTA, KogalurUB, et al. Random survival forests for competing risks[J]. Biostatistics, 2014, 15(4):757-773. DOI: 10.1093/biostatistics/kxu010.
9WangH, LiG. A Selective Review on Random Survival Forests for High Dimensional Data[J]. Quant Biosci, 2017, 36(2):85-96. DOI: 10.22283/qbs.2017.36.2.85.
10MiaoF, CaiYP, ZhangYT, et al. Is Random Survival Forest an Alternative to Cox Proportional Model on Predicting Cardiovascular Disease?[J]. Ifmbe Proceedings, 2015, 45:740-743.