花花写于2020.6.2
诺模图出镜率很高,用于多因素cox或logstic模型的可视化展示。

0.输入数据

需要病人临床信息和生存信息表格,如下

rm(list = ls())
load("ph.Rdata")
head(ph)
##                         sample_id gender age T N  M stage event time
## TCGA-MP-A4T4-01A TCGA-MP-A4T4-01A female  68 2 1  0     2     1 2617
## TCGA-05-4250-01A TCGA-05-4250-01A female  79 3 1  0     3     1  121
## TCGA-64-5774-01A TCGA-64-5774-01A   male  60 2 0  0     1     0 2676
## TCGA-97-7937-01A TCGA-97-7937-01A   male  65 2 0 NA     1     0  564
## TCGA-97-A4M6-01A TCGA-97-A4M6-01A female  45 1 0  0     1     0  568
## TCGA-44-A4SU-01A TCGA-44-A4SU-01A female  67 1 0 NA     1     1  409
##                            fp
## TCGA-MP-A4T4-01A -0.005061199
## TCGA-05-4250-01A  0.286351686
## TCGA-64-5774-01A  0.389468347
## TCGA-97-7937-01A  0.098764940
## TCGA-97-A4M6-01A -0.325363900
## TCGA-44-A4SU-01A -0.183674628

1.简约诺模图

使用rms包里的cph函数建模,nomogram函数画图

library(rms)
dd<-datadist(ph)
options(datadist="dd")
mod <- cph(formula =  as.formula(paste("Surv(time, event) ~ ",paste(colnames(ph)[2:7],collapse = "+"))),data=ph,x=T,y=T,surv = T)surv<-Survival(mod)
surv3<-function(x) surv(1095,x)
surv5<-function(x) surv(1825,x)x<-nomogram(mod,fun = list(surv3,surv5),funlabel = c('3-year survival Probability','5-year survival Probability'))plot(x)

2.美化版本

regplot画出的图和上面的简约版意义一致,只是可修改的细节多一些。

library(regplot)
library(survival)mod2 <- coxph(formula =  as.formula(paste("Surv(time, event) ~ ",paste(colnames(ph)[2:7],collapse = "+"))),data=ph)

2.1 简约风

regplot(mod2,failtime = c(1095,1825), plots = c("no plot","no plot"),points = T,prfail = T)

2.2 在图上标出某个病人

regplot(mod2,observation=ph[1,], obscol = "#326db1",failtime = c(1095,1825), plots = c("no plot","no plot"),points = T,prfail = T)

2.3. 增加表示分布情况的图形

regplot(mod2,observation=ph[1,], failtime = c(1095,1825), plots = c("bars","boxes"),points = T,prfail = T)

帮助文档中对plots参数的解读:The plots parameter specifies initial plot types. It is length 2. The first item specifies a plot type for non-factor variables as one of: “no plot”, “density”, “boxes”, “spikes”, “ecdf”, “bars”, “boxplot”, “violin” or “bean”. The second item, is for factors and is one of: “no plot”, “boxes”, “bars” or “spikes”.

其他图形也可以试试哦。我觉得简单的就挺好的,已经可以说明问题了。

3.校准曲线

校准曲线的作用是展示模型质量,曲线越贴近0-1对角线越好。

3.1 建模和完成计算

cph的time.inc参数和calibrate的u参数,后面都是写天数,三年就是1095天,5年就是1825天

f3 <- cph(formula =  as.formula(paste("Surv(time, event) ~ ",paste(colnames(ph)[2:7],collapse = "+"))),data=ph,x=T,y=T,surv = T, time.inc=1095)
cal3 <- calibrate(f3, cmethod="KM", method="boot", u=1095, m=50, B=1000)
## Using Cox survival estimates at 1095 Days
f5 <- cph(formula =  as.formula(paste("Surv(time, event) ~ ",paste(colnames(ph)[2:7],collapse = "+"))),data=ph,x=T,y=T,surv = T,  time.inc=1825)
cal5 <- calibrate(f5, cmethod="KM", method="boot", u=1825, m=50, B=1000)
## Using Cox survival estimates at 1825 Days

3.2 画校准曲线图

plot(cal5)就可以画,但出来的图一言难尽,主要是参考线画的并不是0-1,所以需要下面的代码手动去画咯。

plot(cal3,lwd = 2,lty = 0,errbar.col = c("#2166AC"),bty = "l", #只画左边和下边框xlim = c(0,1),ylim= c(0,1),xlab = "Nomogram-prediced OS (%)",ylab = "Observed OS (%)",col = c("#2166AC"),cex.lab=1.2,cex.axis=1, cex.main=1.2, cex.sub=0.6)
lines(cal3[,c('mean.predicted',"KM")],type = 'b', lwd = 1, col = c("#2166AC"), pch = 16)
mtext("")plot(cal5,lwd = 2,lty = 0,errbar.col = c("#B2182B"),xlim = c(0,1),ylim= c(0,1),col = c("#B2182B"),add = T)
lines(cal5[,c('mean.predicted',"KM")],type = 'b', lwd = 1, col = c("#B2182B"), pch = 16)abline(0,1, lwd = 2, lty = 3, col = c("#224444"))legend("topleft", #图例的位置legend = c("3-year","5-year"), #图例文字col =c("#2166AC","#B2182B"), #图例线的颜色,与文字对应lwd = 2,#图例中线的粗细cex = 1.2,#图例字体大小bty = "n")#不显示图例边框

参考:https://blog.csdn.net/weixin_30592887/article/details/112865824 https://www.jianshu.com/p/9085e4e13843 https://www.dxy.cn/bbs/newweb/pc/post/33323120

用诺模图可视化你的模型相关推荐

  1. python使用matplotlib对比多个模型在测试集上的效果并可视化、设置模型性能可视化结果柱状图(bar plot)标签的小数点位数(例如,强制柱状图标签0.7显示为两位小数0.70)

    python使用matplotlib对比多个模型在测试集上的效果并可视化.设置模型性能可视化结果柱状图(bar plot)标签的小数点位数(例如,强制柱状图标签0.7显示为两位小数0.70) 目录

  2. R可视化多元线性回归模型

    R可视化多元线性回归模型 目录 R可视化多元线性回归模型 一元线性回归建模及可视化

  3. 可视化深度学习模型的训练误差和验证误差

    可视化深度学习模型的训练误差和验证误差 #导入基础包和库 # Load libraries import numpy as np from keras.datasets import imdb fro ...

  4. 可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)

    可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)   序列到序列模型是深度学习模型,在机器翻译.文本摘要和图像字幕等任务中取得了很大的成功.谷歌翻译在2016年底开始在生产中使用这样的模型 ...

  5. R语言使用glmnet包拟合lasso-cox回归模型(生存时间和结果标签)、lasso-cox模型进行特征筛选、plot函数可视化cv.glmnet模型获得的最佳lambda曲线位置及其1个标准差线

    R语言使用glmnet包拟合lasso-cox回归模型(包含生存时间和结果标签).使用lasso-cox模型进行特征筛选.plot函数可视化cv.glmnet模型获得的最佳lambda曲线位置及其1个 ...

  6. 无需代码即可训练和可视化口罩检测模型

    介绍 新冠改变了人们的生活,出门佩戴口罩也已经成为了大部分人的习惯.但并不是每一个人都能遵守新冠时代下的行为规范.为了更好地防控新型冠状病毒的传播,监控探头和物联网摄像头被广泛的应用于监督人们在公共场 ...

  7. R语言建立和可视化混合效应模型mixed effect model

    最近我们被客户要求撰写关于混合效应模型的研究报告,包括一些图形和统计输出. 我们已经学习了如何处理混合效应模型.本文的重点是如何建立和可视化 混合效应模型的结果. 相关视频:线性混合效应模型(LMM, ...

  8. R语言使用epiDisplay包的lroc函数可视化logistic回归模型的ROC曲线并输出诊断表、输出灵敏度、1-特异度、AUC值等、设置lwd参数自定义ROC曲线线条的粗细(宽度)

    R语言使用epiDisplay包的lroc函数可视化logistic回归模型的ROC曲线并输出诊断表(diagnostic table).输出灵敏度.1-特异度.AUC值等.设置lwd参数自定义ROC ...

  9. R语言使用epiDisplay包的lroc函数可视化logistic回归模型的ROC曲线并输出诊断表、输出灵敏度、1-特异度、AUC值等、设置cex.axis参数自定义坐标轴数值刻度值的大小

    R语言使用epiDisplay包的lroc函数可视化logistic回归模型的ROC曲线并输出诊断表(diagnostic table).输出灵敏度.1-特异度.AUC值等.设置cex.axis参数自 ...

最新文章

  1. android UI进阶之实现listview中checkbox的多选与记录
  2. 修改及查看mysql数据库的字符集
  3. 通信系统设计与python的书_腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...
  4. 读《三体Ⅱ · 黑暗森林》| 人能相互理解的前提是力量对等
  5. vscode 结束_21 个VSCode 快捷键,让代码更快,更有趣
  6. 开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~
  7. 为什么要挖Chia币
  8. Java中的原型设计模式
  9. ZOJ - 3624
  10. 网页背景音乐播放器html代码
  11. ubuntu无法进入图形界面,开机重复进入gun grup
  12. ORACLE 11G利用 ORDS+pljson来实现json_table 效果
  13. 简述银行会计科目的分类
  14. ppt 计算机课件模板,大学计算机基础课件模板.PPT
  15. C++入门——Day5_分支语句和逻辑运算符
  16. 蚂蚁区块链第8课 如何创建新的账户,获取私钥和identity标识?
  17. 天池大数据比赛-天体分类总结
  18. QT QLineEdit焦点和键盘问题
  19. nginx事件模型小结
  20. 开发小程序以及后台管理系统攥淘宝佣金

热门文章

  1. 结对项目之需求分析与原型设计(导师选择)
  2. 本门藏经阁 - AndroidX
  3. Celery在Django下安装配置
  4. [Excel知识技能] 筛选功能
  5. windows系统 对应GVLK码自查
  6. Android监听进入和退出第三方应用
  7. 在Linux下驱动D-link DFE-530TX(最终稿)(转)
  8. 《钢铁是怎样炼成的》读后感集合「15篇」
  9. Adobe Animate把.fla文件导出透明背景图片
  10. mezzanine timezone 的问题