R数据分析:手把手教你画列线图(Nomogram)及解读结果

R数据分析:手把手教你画列线图(Nomogram)及解读结果在既往的内容中 我们介绍了多因素回归分析时 为探讨影响因素对结局事件的影响大小 可以利用森林图更直观的将回归结果可视化 还没来得及阅读的小伙伴请点击查看 一文带你玩转森林图

大家好,欢迎来到IT知识分享网。

在既往的内容中,我们介绍了多因素回归分析时,为探讨影响因素对结局事件的影响大小,可以利用森林图更直观的将回归结果可视化。还没来得及阅读的小伙伴请点击查看:

  • 一文带你玩转森林图!
  • 手把手教绘制回归分析结果的森林图『GraphPad Prism和Excel』
  • 绘制回归分析结果的森林图,R和Stata软件学起来!

同样是构建多因素回归模型,往往我们另一个主要目的是为了对结局事件的发生风险进行预测,那么是否也可以将预测模型的结果,像森林图那样可视化地展示出来呢?今天小咖就来带大家认识一下神奇的列线图

认识列线图

列线图(Alignment Diagram),又称诺莫图(Nomogram图),它是建立在多因素回归分析的基础上,将多个预测指标进行整合,然后采用带有刻度的线段,按照一定的比例绘制在同一平面上,从而用以表达预测模型中各个变量之间的相互关系。

列线图的基本原理,简单的说,就是通过构建多因素回归模型(常用的回归模型,例如Cox回归、Logistic回归等),根据模型中各个影响因素对结局变量的贡献程度(回归系数的大小),给每个影响因素的每个取值水平进行赋分,然后再将各个评分相加得到总评分,最后通过总评分与结局事件发生概率之间的函数转换关系,从而计算出该个体结局事件的预测值。

列线图将复杂的回归方程,转变为了可视化的图形,使预测模型的结果更具有可读性,方便对患者进行评估。正是由于列线图这种直观便于理解的特点,使它在医学研究和临床实践中也逐渐得到了越来越多的关注和应用。

解读列线图

闲话少说,先上文章哈。今天我们以2017年发表在JACC:Cardiovascular Imaging杂志上的一篇文章《Development and Validation of a Simple-to-Use Nomogram for Predicting 5-, 10-, and 15-Year Survival in Asymptomatic Adults Undergoing Coronary Artery Calcium Scoring》为例来进行说明,文中结果部分展示的列线图如下图所示。

R数据分析:手把手教你画列线图(Nomogram)及解读结果

我们可以看到列线图主要由左边的名称以及右边对应的带有刻度的线段所组成。

列线图的名称主要包括三类:

1. 预测模型中的变量名称:例如图中的年龄(Age)、高血压(Hypertension)、糖尿病(Diabetes)等信息,每一个变量对应的线段上都标注了刻度,代表了该变量的可取值范围,而线段的长度则反映了该因素对结局事件的贡献大小。

2. 得分,包括单项得分,即图中的Point,表示每个变量在不同取值下所对应的单项分数,以及总得分,即Total Point,表示所有变量取值后对应的单项分数加起来合计的总得分。

3. 预测概率:例如图中的5-year survival prob,表示5年的生存概率。

介绍了列线图的基本要素,下面小咖来教大家如何利用这张列线图,让自己也能成为一个神奇的预言家。敲黑板,讲到重点了哈。

现在假设我们是一名优秀的心内科医生,有这样一位患者,男性,60岁,吸烟,有高血压和糖尿病史,血脂异常,否认CAD家族史,冠状动脉钙化评分(CACS)为3分。

小咖作为接诊医生,在和患者交代病情的时候,为了向患者说明疾病的严重性,就拿出了这张列线图,自信满满的告诉这位患者,以他目前的疾病状态,预测未来5年、10年和15年的生存概率分别是71%、48%和27%。

那么,小咖是怎么算出来的呢?其实很简单,比如该患者年龄为60岁,我们就在列线图年龄为60岁的地方向上画一条垂直线,即可得到其对应的得分(Points)约为55分。同样性别为男性,对应的分数为1分,以此类推,找出每个变量状态下对应的得分。

最后将所有变量的得分相加,得到患者的总得分(Total Points)约为165.5分,并以总得分为基础,再向下画一条垂直线,就可以知道该患者对应的未来5年、10年和15年的生存率了,是不是很简单很容易理解呢!

R数据分析:手把手教你画列线图(Nomogram)及解读结果

R数据分析:手把手教你画列线图(Nomogram)及解读结果

列线图的效果评价

当然,制作列线图通常要求研究拥有足够数量的研究对象,从而才能够建立有效的预测模型,在列线图制作之前也需要对预测模型的预测能力进行验证。常用的效果评价方式有:

1. 内部验证法

可采用Bootstrap自抽样法,利用建模自身的数据来验证模型的预测效果。Bootstrap自抽样法是指对样本人群进行有放回的重复抽样,每次抽样样本数相同,这样同一个个体就有可能被抽中多次。利用Bootstrap自抽样产生的新样本去评价列线图模型的准确性,常用C-统计量来进行衡量,其值越接近于1说明列线图的预测能力越准确。

2. 图形校准法

图形校准法的基本思想是:首先利用列线图预测出每位研究对象的生存概率,并从低到高排成一个队列,根据四分位数将队列分为4组(或者根据其他分位数分组),然后分别计算每组研究对象预测生存概率和相应的实际生存概率(由Kaplan-Meier法计算)的均值,并将两者结合起来作图得到4个校准点,最后将4个校准点连接起来得到预测校准曲线。

理论上标准曲线是一条通过坐标轴原点、且斜率为1的直线,如果预测校准曲线越贴近标准曲线,则说明列线图的预测能力越好。

3. 外部验证法

使用一组研究对象去建立列线图,再使用另外一组研究对象(即外部数据)来验证列线图预测效果的准确性。

绘制列线图

其实,列线图的绘制也很简单,R软件中的rms程序包,为我们提供了相应的函数功能,最后给大家安利一下绘制列线图最基本的程序代码,以供有兴趣的小伙伴进行学习和参考哈。

1. 加载survival和rms程序包,以survival包中自带的数据库lung为例

library(survival)

library(rms)

data(package=”survival”)

R数据分析:手把手教你画列线图(Nomogram)及解读结果

(数据格式)

2. 打包数据

dd<-datadist(lung)

options(datadist=”dd”)

3. 构建Cox比例风险回归模型

R数据分析:手把手教你画列线图(Nomogram)及解读结果

4. 绘制列线图

R数据分析:手把手教你画列线图(Nomogram)及解读结果

R数据分析:手把手教你画列线图(Nomogram)及解读结果

最终绘制的列线图如下:

R数据分析:手把手教你画列线图(Nomogram)及解读结果

当我们在研究中习惯了使用相对风险的指标时(例如OR、HR、RR等),也不妨将这种能够起到预测生存概率作用的列线图结合起来,这样会使预测模型的结果更加形象、直观、易懂。

患者可以根据自身各个影响因素的水平大小,能够快速查询到自己未来的生存概率,便于引起他们对健康状况的重视。此外,放一张列线图在自己的文章里,是不是也会显得逼格更高呢,说不定会让Reviewer多看两眼哈。

参考文献:JACC Cardiovasc Imaging. 2017 Jun 9. pii: S1936-878X(17)30449-7

本文转载自医咖会,请支持原创!

小结

感谢大家耐心看完,自己的文章都写的很细,代码都在原文中,希望大家都可以自己做一做,请关注后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先收藏,再点赞转发。

也欢迎大家的意见和建议。

如果你是一个大学本科生或研究生,如果你正在因为你的统计作业、数据分析、论文、报告、考试等发愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何问题,都可以联系我。因为我可以给您提供最好的,最详细和耐心的数据分析服务。

如果你对Z检验,t检验,方差分析,多元方差分析,回归,卡方检验,相关,多水平模型,结构方程模型,中介调节,量表信效度等等统计技巧有任何问题,请私信我,获取最详细和耐心的指导。

If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.

Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis…??

Then Contact Me. I will solve your Problem…

加油吧,打工人!

本文转载自医咖会,请支持原创!

往期内容:

R数据分析:生存分析的做法和结果解释

R数据分析:生存分析的做法与解释续

python机器学习:如何储存训练好的模型并重新调用

R文本挖掘:中文词云生成,以2021新年贺词为例

R文本挖掘:中文词云生成

R数据分析:50人中至少两人相同生日的概率有多大?模拟给你看

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/161911.html

(0)
上一篇 2025-01-11 20:15
下一篇 2025-01-11 20:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信