分享

利用R语言DynNom包生成动态Nomogram

 生物_医药_科研 2019-01-24

Nomograms是模型可视化的一种工具。 R语言rms包中的诺模图函数可以实现各种回归模型静态诺模图的创建。

 例如,以下代码为对泰坦尼克号上乘客生存情况建立回归模型并生成了一个诺模图(数据来源:http://biostat.mc./wiki/pub/Main/DataSets/titanic.html)。

library(PASWR)

data(titanic3)

library('rms')

t.data <>

options(datadist= 't.data')

fit <-lrm(formula =="" survived="" ~="" age="" +="" pclass="" +="" sex,="" data="">

plot(nomogram(fit,fun = function(x)plogis(x)))


该Nomogarm图是基于三个解释变量,性别,年龄和乘客类别建立的泰坦尼克号生存概率Nomogram。 当模型中存在较高阶的交互项和平滑点时,Nomogram图可能阅读和使用中变得更加麻烦。 例如,考虑包含三个主要效果的所有可能相互作用的模型的以下Nomogram图。

R语言中的DynNom包(Jalali,A,Newell,J)建立在shiny包(利用R快速搭建Web原型的包,俗话说就是网页设计的包)的基础上, DynNom包允许从任何广义线性模型或Cox比例风险模型创建动态诺模图。DynNom支持由lm,glm和coxph函数创建的模型对象(注意这里面的部分函数以前在rms包里是实现不了的),当然还支持在rms包中使用Ols,Glm,lrm和cph生成的模型,模型中可以使用平滑样条。

例如,以下R代码将使用DynNom包建立高阶逻辑回归模型的动态Nomogram图。

fit2 <-glm(survived ~="" (age="" +="" pclass="" +="" sex)="" ^="" 3,="" titanic3,="" family='binomial'>

library(DynNom)

DynNom(fit2,titanic3)

所得到的动态Nomogram图允许对解释变量的任何可能取值的集合来预测生存概率(和相应的95%置信区间)。 shiny的选项卡以图形和数字显示相应的预测值,并显示模型结果。

注意这个以动态网页的格式显示,且可以镶嵌在线网页中。而且可通过改变,变量值,随时显示结果,不需要后台再次运行一次程序。

上图包含模型的三个变量,乘客类别、性别和年龄。右侧的图显示的十个乘客的生存概率预测值,以第五个人为例,年龄13岁,第二个类别的乘客、女性则其活着的概率为95%,后面是95%CI。

当然上面的乘客数是自己选择的,如果改变一次变量值,软件便会自动生成一条预测概率线。

当然也可以以表格的形式报告每个患者的预测概率及95%CI。

也可以报告R语言运行的详细模型结果图。

说明:

(1)本文原因是,有医生朋友咨询,能否实现Nomogram的网页版形式,本文基于这一问题介绍一种网页交互式的动态Nomogram的实现方法。

(2)有人可能会说shiny包我不会用,会不会需要shiny的编程,这里shiny包只是个加工工具,将结果动态的加工成网页DEMO格式,在R软件中运行时只需加载一次shiny包即可,至于其后台是怎么运行,不用知道。

(3)本文也只是起一个抛砖引玉的作用,有好的建议方法欢迎大家留言。

本公众号精彩历史文章:

04:如何在R软件中求一致性指数( Harrell'concordance index:C-index)?

05:Nomogram 绘制原理及R&SAS实现.

06  : Lasso方法简要介绍及其在回归分析中的应用

07  : 最优模型选择中的交叉验证(Cross validation)方法

08  : 用R语言进行分位数回归(Quantile Regression)

09  : 样本数据中异常值(Outliers)检测方法及SPSS & R实现

10  : 原始数据中几类缺失值(Missing Data)的SPSS及R处理方法

11  :  [Survival analysis] Kaplan-Meier法之SPSS实现

12  :  [Survival analysis] COX比例风险回归模型在SPSS中的实现

13  :  用R绘制地图:以疾病流行趋势为例

14  :  数据挖掘方法:聚类分析简要介绍 及SPSS&R实现

15  :  医学研究中的Logistic回归分析及R实现

16  :  常用的非参数检验(Nonparametric Tests)总结

17  :  高中生都能看懂的最小二乘法原理

18  :  R语言中可实现的常用统计假设检验总结(侧重时间序列)

19  :  如何根据样本例数、均数、标准差进行T-Test和ANOVA

20  :  统计学中自由度的理解和应用

21  :  ROC和AUC介绍以及如何计算AUC

22  :  支持向量机SVM介绍及R实现

23  :  SPSS如何做主成分分析?

24  : Bootstrap再抽样方法简介

25  :  定量测量结果的一致性评价及 Bland-Altman 法的应用 

26  :  使用R绘制热图及网络图  

27  :  几种常用的双坐标轴图形绘制 

28  :  遗失的艺术—诺谟图(Nomogram) 

29  :  Nomogram 绘制原理及R&SAS实现(二) 

30  :  WOE:信用评分卡模型中的变量离散化方法 

31  :  结构方程模型(SEM)简介及教程下载  

32  :  重复测量的多因素方差分析SPSS实现操作过程 

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多