预测模型研究利器-列线图(Logistic回归)背景
Background
在临床中,预测模型⼗分重要。正如第⼀节(医⽣必备技能,万字长⽂让你明⽩临床模型研究
应该如何做)所阐明的,如果我们能提前预测病⼈的病情,很多时候我们可能会做出完全不同
的临床决定。⽐如,对于肝癌患者,如果能提前预测是否有微⾎管浸润,可能有助于外科医⽣
在标准切除和扩⼤切除之间做出选择。术前新辅助放疗和化疗是T1-4 N+中低位直肠癌的标准治
疗⽅法。然⽽,在临床实践中发现,根据术前影像学检查判断淋巴结状态不够准确,假阳性或
假阴性的⽐例很⾼。那么我们是否有可能在放疗和化疗前根据已知的特征准确地预测患者的淋
巴结状况?如果我们能够建⽴这样的预测模型,我们就可以更准确地做出临床决策,避免因误
判⽽导致的不正确决策。越来越多的⼈开始意识到这个问题的重要性。⽬前,很多⼈已经付出
了巨⼤的努⼒来构建预测模型或改进现有的预测⼯具,在这其中,Nomogram的构造是当前最
热门的研究⽅向之⼀。
下⾯,我们再来说说Logistic回归。什么时候选择Logistic回归来建⽴预测模型与建⽴的临床结果有关。如果结果是⼆分类变量、⽆序分类变量或有序变量(总⽽⾔之就是分类变量),我们可
以选择Logistic回归来构建模型。⽆序Logistic回归和有序Logistic回归⼀般应⽤于⽆序、多分类
或有序变量结果,其结果难以解释。因此,我们通常将⽆序多分类或有序的变量转换为⼆分类
变量,并使⽤⼆分Logistic回归来构建模型。上述“肝癌是否有微⾎管浸润”和“直肠癌前淋巴结转
移复发”均属于⼆分法结果。⼆分Logistic回归最常⽤于构建、评估和验证预测模型。
⾃变量的筛选原则与第2节(【临床研究】⼀个你⽆法逃避的问题:多元回归分析中的变量筛
选)描述的原则是⼀致的,另外需要考虑两点:⼀⽅⾯要权衡模型包含的样本量和⾃变量个
数;另⼀⽅⾯还要权衡模型的准确性和使⽤模型的便捷性,最终确定进⼊预测模型的⾃变量个数。
在此次教程中,我们将⽤两个具体的案例来介绍⽤R语⾔构建Logistic回归预测模型并绘制Nomogram的全过程。我们将尽量避免复杂的统计学原理(如有不懂的,可以⾃⾏翻阅书籍,
想偷懒的可以看看作为研究⽣,你还事事都要别⼈帮忙吗?),并将重点放在该⽅法的R实现过
程中。
我们可以将构建和验证临床预测模型的过程再次进⾏归纳,共包括以下⼋个步骤:
(1)识别临床问题并确定科学假设;
(2)根据已有⽂献确定预测模型的研究策略;
(3)确定预测模型的预测因⼦;
(4)确定预测模型的结果变量;
(5)构建预测模型并计算模型预测因⼦;
(6)评估模型识别能⼒;
(7)评估模型校准;
(8)评估模型的临床有效性。
预测模型构建的研究过程可参见下图。
实例分析-Case1
Direct to Gan Huo
以前的教程中,我们多是给出⼀个经典案例,此次,为了让⼤家看的更明⽩,学得更彻底,我
们给出两个实例案例,好好学习哦。先看case1。
研究背景
1989年Hosmer和Lemeshow研究了低出⽣体重⼉的影响因素。因变量为是否⽣低出⽣体重⼉(变量名:“Low”;⼆分变量;1=低出⽣体重⼉,即婴⼉出⽣体重<2500g;0=⾮低出⽣体重⼉)。
可能的影响因素(⾃变量)包括:孕妇孕前体重(lwt,单位:磅)、产妇年龄(年龄,单位:年);母
亲孕期是否吸烟(smoke,0=否,1=是);孕前早产次数(ptl,单位:次数);⾼⾎压(ht,0=否,1=是);刺激、催产素等引起的⼦宫收缩应激(ui,0=否,1=是);怀孕前三个⽉去社区医⽣就诊(ftv,单位:次数);种族(种族,1=⽩⼈,2=⿊⼈,3=其他)。
案例解读
在这种情况下,因变量是⼆分类变量(是否⽣出低出⽣体重⼉)。本研究的⽬的是探讨低出⽣体重⼉的独⽴影响因素,符合⼆元Logistic回归的应⽤条件。由于在这种情况下只有⼀个数据集,我们可以将这个数据集作为训练集进⾏建模,然后使⽤Bootstrap重采样⽅法在同⼀数据集中进⾏内部模型验证。这⾥需要注意的是,我们也可以按照7:3的⽐例将数据集随机分为训练集和内部验证集,但考虑到样本⼤⼩我们没有这么做(所以这⾥我们只演⽰如何构建模型,⾄于检验和评估的事情,后续章节会慢慢讲到)。下⾯我们将演⽰低出⽣体重⼉预测模型的构建和⽤R语⾔绘制Nomogram。采集到的数据命名为“Lweight.sav”,保存在R语⾔的当前⼯作路径中。数据和代码可以领取。具体分析计算步骤为:
(1)筛选影响低出⽣体重⼉的独⽴影响因素,构建Logistic回归模型;
(2)将Logistic回归模型可视化,绘制Nomogram;
(3)计算Logistic模型的区分度(C-Statistics);
(4)采⽤重抽样⽅法进⾏内部验证,绘制校准曲线。
实现过程
加载⽤于以.sav格式(IBM SPSS样式数据格式)导⼊外部数据的foreign包。加载RMS包以构建Logistic回归模型并绘制Nomogram。导⼊.sav格式的外部数据,并将其命名为“mydata”。然后将数据设置为数据框结构,并显⽰数据框的前6⾏。
数据预处理:将结果变量设置为⼆分变量,将“低出⽣体重”定义为“1”,将⽆序分类变
量“RACE”设置为哑元变量。
将数据框“mydata”加载到当前⼯作环境中,并使⽤函数datadist()将数据“打包”。
利⽤lrm()函数对Logistic回归模型进⾏拟合,给出了模型拟合结果和模型参数。注:等级划分指标的参数C在模型中可以直接读取。这是模型“FIT1”的C-统计量。根据计算结果,本例中的C-统计量为0.738。C-统计量的含义和计算⽅法将在下⾯进⼀步解释。
使⽤函数nomogram()创建Nomogram对象“nom1”后输出Nomogram。结果见下图。
好了,到这⾥,我们的列线图就出来了。讲到这⾥,我们暂时做⼀个⼩的停顿。给⼤家讲讲列线图的定义和解读。
分割线内,选择性阅读
列线图定义
列线图(Alignment Diagram),⼜称诺莫图(Nomogram图),它是建⽴在多因素回归分析的基础上,将多个预测指标进⾏整合,然后采⽤带有刻度的线段,按照⼀定的⽐例绘制在同⼀平⾯上,从⽽⽤以表达预测模型中各个变量之间的相互关系。
列线图的基本原理,简单的说,就是通过构建多因素回归模型(常⽤的回归模型,例如Cox回归、Logistic回归等),根据模型中各个影响因素对结局变量的贡献程度(回归系数的⼤⼩),给每个影响因素的每个取值⽔平进⾏赋分,然后再将各个评分相加得到总评分,最后通过总评分与结局事件发⽣概率之间的函数转换关系,从⽽计算出该个体结局事件的预测值。
列线图将复杂的回归⽅程,转变为了可视化的图形,使预测模型的结果更具有可读性,⽅便对患者进⾏评估。正是由于列线图这种直观便于理解的特点,使它在医学研究和临床实践中也逐渐得到了越来越多的关注和应⽤。
列线图怎么看
列线图⼤量应⽤于模型构建的⽂章,在诸如NEJM、Lancet等顶级杂志中均有它的⾝影,该如何解读呢?我们就⽤刚才的这个例⼦来给⼤家说说看。
我们可以看到列线图主要由左边的名称以及右边对应的带有刻度的线段所组成。列线图的名称主要包括三类:
1. 预测模型中的变量名称:例如图中的年龄(Age)、ftv(孕前检查次数),ht(是否⾼⾎压),smoke(是否抽烟)等信息,每⼀个变量对应的线段上都标注了刻度,代表了该变量的可取值范围,⽽线段的长度则反映了该因素对结局事件的贡献⼤⼩。
2. 得分,包括单项得分,即图中的Point(第⼀⾏),表⽰每个变量在不同取值下所对应的单项分数,以及总得分,即Total Point(最后⼀⾏),表⽰所有变量取值后对应的单项分数加起来合计的总得分。
3. 预测概率:例如图中的Low weight rate,表⽰出⽣低体重⼉的概率。
我们举个例⼦,如果产妇35岁,根据列线图,得分10分;⽆⾼⾎压,得分0分;抽烟,得分37分;再加上其他分数,如果总分100分,那么对应的⽣产低体重⼉的概率就约为0.12,那么你就可以拿着这个图表给患者看,告诉她产出低体重⼉的概率⽐较低。看懂了吗?那我们继续下⾯的实例分析。
分割线内,选择性阅读
下⾯,使⽤函数calibrate()构造校准曲线对象“cal1”并输出校准曲线。结果下图所⽰。
从上⾯Logistic回归模型的计算结果fit1和列线图的结果,可以看到该模型⼀些预测变量的贡献可以忽略不计,例如变量“ftv”。还有⼀些预测因素可能不适合纳⼊预测模型,如哑元变量“race”,还有⼀些复杂的临床操作变量。我们可以考虑把⽆序的分类变量适当地转换成⼆分变量,并把它们纳⼊回归模型。
⾸先,根据实际情况,我们进⾏转换将⽆序分类变量“race”转换为⼆分类变量。转换的标准主要基于专业知识,我们把“⽩⼈”归为⼀类,“⿊⼈和其他”归为另⼀类。
从回归模型中排除对结果贡献较⼩的变量“ftv”(孕前检查次数,从列线图中看出,不管检查次数是0或者6,在Points积分这⾥都是⽆关紧要,影响不⼤),然后重建模型“fit2”并显⽰模型参数。可以看出,C-统计量=0.732。
使⽤函数nomogram()构造列线图对象“nom2”,并输出列线图。结果如图所⽰。
Nomogram图解释:假设孕妇具有以下特征:妊娠⾼⾎压、体重100磅、早产两次、吸烟和⿊⼈。然后我们可以根据每个变量的值来计算孕妇的每个特征的得分:妊娠⾼⾎压(68分)+体重100磅(88分)+两次早产(48分)+吸烟(40分)+⿊⼈(42分)=286分。总得分为286的低出⽣体重⼉的发⽣概率⼤于80% 。请注意,本例中超过80%的部分不会显⽰在列线图上。读者可以尝试调整参数设置,以显⽰0-1范围内的所有预测概率。
使⽤calibrate()构建校准曲线对象“cal2”并输出校准曲线。结果如下所⽰。
校准曲线的解释:事实上,校准曲线是实际发⽣概率与预测概率的散点图。校准曲线可视化了霍斯默-勒梅休(Hosmer-Lemeshow)拟合优度检验的结果,所以除了校准曲线之外,我们还应该检查霍斯默-勒梅休拟合优度检验的结果。预测率和实际发⽣率越接近Y = X,Hosmer-Lemeshow拟合优度检验的p值⼤于0.05,模型校准得越好。在这种情况下,校准曲线⼏乎Y = X 线,表⽰模型校准良好。
实例分析-Case2
More Gan Huo
研究背景
来⾃North Central Cancer Treatment Group的晚期肺癌患者的⽣存率。绩效评分对患者⽇常活动的表现进⾏评分。总共10个变量:
(I) inst: Institution code;
(II) time: Survival time in days;
(III) status: censoring status 1=censored, 2=dead;
(IV) age: Age in years;
(V) sex: Male=1 Female=2;
(VI) ph.ecog: ECOG performance score (0=good 5=dead);
(VII) ph.karno: Karnofsky performance score (bad=0-good=100) rated by physician;
(VIII) pat.karno: Karnofsky performance score as rated by patient;
(IX) meal.cal: Calories consumed at meals;
(X) wt.loss: Weight loss in last six months.
案例数据集实际上是⽣存数据。为了与本节的主题保持⼀致,我们只考虑结果的⼆项属性(status 1 = censored, 2 = dead)。我们选择Logistic regression模型来构建和可视化模型,绘制Nomogram,计算C-统计量,并绘制校准曲线。
实现过程
⽤survival中的“lung”数据集进⾏演⽰。我们可以使⽤以下命令枚举⽣存包中的所有数据集。
根据rms建⽴回归模型和绘制Nomogram,需要对数据进⾏预先“打包”,这是绘制Nomogram的关键步骤,
使⽤命令“?datadist”查看其详细的帮助⽂档。以“status”为因变量,“age”和“sex”为⾃变量,构建Logisitc regression回归模型,并给出模型参数。可以看出,C-统计量=0.666。
使⽤函数nomogram()构造列线图对象“fit”,并输出列线图。结果如所⽰。
使⽤calibrate()函数构造校准曲线的对象“cal”并打印校准曲线。结果如图所⽰。
⼩结
Tips
综上所述,本部分介绍了Logistic回归预测模型的构建和Nomogram的绘制。应该注意的是,评估预测模型的实⽤价值,除了考虑其预测的准确性外,还应考虑其可操作性。除了内部验证之外,有时还需要外部验证。在这种情况下,由于没有获得外部验证数据,因此不演⽰外部验证过程,并且仅使⽤Bootstrap⽅法在原始数据集中执⾏验证。
参考⽂献: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.
本期⼲货
- Logistic回归列线图代码 -
·
关注“科研猫”
主页点击“更多信息”-“”领取⼲货
html代码更多科研新鲜资讯、⽂献精读和⽣物信息技

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。