R实战 | Nomogram(诺莫图/列线图)及其Calibration校准曲线绘制
R实战|Nomogram(诺莫图/列线图)及其Calibration校准曲线绘制
Nomogram,中文常称为诺莫图或者列线图。简单的说是将Logistic
回归或Cox
回归的结果进行可视化呈现。它根据所有自变量回归系数的大小来制定评分标准,给每个自变量的每个取值水平一个评分;对于每个患者,就可计算得到一个总分,再通过得分与结局发生概率之间的转换函数来计算每个患者的结局时间发生的概率。
读图
随遍找一篇文章的图作为示例。
Nomogram
Jin C, Cao J, Cai Y, et al. A nomogram for predicting the risk of invasive pulmonary adenocarcinoma for patients with solitary peripheral subsolid nodules. J Thorac Cardiovasc Surg. 2017;153(2):462-469.e1.
红色箭头为我手动标注。
列线图的名称主要包括三个部分:
预测模型中的变量名称
例如图中的
vascular convergence signs
,pleural tag
,computed tomography
等信息,每一个变量对应的线段上都标注了刻度,代表了该变量的可取值范围,而线段的长度则反映了该因素对结局事件的贡献大小。得分
单项得分,即图中的
Points
,表示每个变量在不同取值下所对应的单项分数,总得分,即
Total Point
,表示所有变量取值后对应的单项分数加起来合计的总得分。
预测概率
例如图中的
Risk of invasive pulmonary adenocarcinoma
,表示侵袭性肺腺癌的患病风险。
如何计算呢?
如红色箭头所示,找出该患者每个变量对应的单项得分。最后将所有变量的单项得分相加,得到患者的总得分,并以总得分为基础,再向下画一条垂直线,就可以知道该患者侵袭性肺腺癌的患病风险。
列线图的Calibration校准曲线
X轴表示诺模图预测的概率,y轴表示侵袭性腺癌的实际概率。完美的预测对应绿色虚线。红色虚线表示整个队列,蓝色实线通过Bootstrapping(1000次重复)进行偏差校正,表示观察到的诺模图性能。
分析并绘制
rm(list = ls())
library(survival)
library(survminer)
data(lung)
head(lung) #示例数据## 添加变量标签
lung$sex <- factor(lung$sex,levels = c(1,2),labels = c("male", "female"))
head(lung)
## 根据nomogram要求处理数据
dd=datadist(lung)
options(datadist="dd")
Logisitc回归模型
## 构建模型
## 构建logisitc回归模型,以age、sex为因子
f1 <- lrm(status~ age + sex, data = lung) ## 绘制logisitc回归的风险预测值的nomogram图
nom <- nomogram(f1, fun= function(x)1/(1+exp(-x)), # or fun=plogislp=F, funlabel="Risk")
plot(nom)
COX比例风险模型
f2 <- psm(Surv(time,status) ~ age+sex, data = lung, dist='lognormal')
med <- Quantile(f2) # 计算中位生存时间
surv <- Survival(f2) # 构建生存概率函数## 绘制COX回归中位生存时间的Nomogram图
nom <- nomogram(f2, fun=function(x) med(lp=x),funlabel="Median Survival Time")
plot(nom)## 绘制COX回归生存概率的Nomogram图
## 注意lung数据的time是以’天‘为单位
nom <- nomogram(f2, fun=list(function(x) surv(365, x),function(x) surv(730, x)),funlabel=c("1-year Survival Probability","2-year Survival Probability"))
plot(nom, xfrac=.6)
## 评价COX回归的预测效果
## 计算c-index
rcorrcens(Surv(time,status) ~ predict(f2), data = lung)
Somers' Rank Correlation for Censored Data Response variable:Surv(time, status)C Dxy aDxy SD Z P n
predict(f2) 0.601 0.203 0.203 0.051 3.98 1e-04 228
C-index,concordance index,一致性指数,主要用于计算生存分析中的COX模型预测值与真实之间的区分度,常用在评价患者预后模型的预测精度中。
C-index在0.5-1之间(任意配对随机情况下一致与不一致刚好是0.5的概率)。0.5为完全不一致,说明该模型没有预测作用,1为完全一致,说明该模型预测结果与实际完全一致。一般情况下C-index在0.50-0.70为准确度较低:在0.71-0.90之间为准确度中等;而高于0.90则为高准确度。
Calibration校准曲线
## 绘制校正曲线## 重新调整模型函数f2,也即添加x=T, y=T
f2 <- psm(Surv(time,status) ~ age+sex, data = lung, x=T, y=T, dist='lognormal')
## 构建校正曲线cal1 <- calibrate(f2, cmethod='KM', method="boot", u=365, # u需要与之前模型中定义好的time.inc一致,即365或730;m=76, #每次抽样的样本量,B=1000) #抽样次数
## m要根据样本量来确定,由于标准曲线一般将所有样本分为3组(在图中显示3个点)
## 绘制校正曲线
plot(cal1,lwd=2,lty=1,conf.int=T,# 是否显示置信区间errbar.col="blue",#直线曲线bar颜色col="red", # 曲线颜色xlim=c(0.25,0.6),ylim=c(0.15,0.70),xlab="Nomogram-Predicted Probability of 1-Year DFS",ylab="Actual 1-Year DFS (proportion)",subtitles = F)#不显示副标题
木舟笔记2022年度VIP企划
关于木舟笔记2022年度VIP会员企划
权益:
2022年度木舟笔记所有推文示例数据及代码(含大部分2021年)。
木舟笔记科研交流群。
半价购买
跟着Cell学作图系列合集
(免费教程+代码领取)|跟着Cell学作图系列合集。
收费:
99¥/人。可添加微信:mzbj0002
转账,或直接在文末打赏。
往期内容
跟着Nature学作图 | 配对哑铃图+分组拟合曲线+分类变量热图
(免费教程+代码领取)|跟着Cell学作图系列合集
跟着Nat Commun学作图 | 1.批量箱线图+散点+差异分析
跟着Nat Commun学作图 | 2.时间线图
跟着Nat Commun学作图 | 3.物种丰度堆积柱状图
跟着Nat Commun学作图 | 4.配对箱线图+差异分析
跟着 Nat Med. 学作图 | GSVA+limma差异通路分析+发散条形图
跟着Nat Commun学作图 | Post-hoc图(Extended error bar plot)
R实战 | 森林图绘制
R实战 | Nomogram(诺莫图/列线图)及其Calibration校准曲线绘制相关推荐
- R实战 | 环状热图(circos)
circular_heatmap 「之前画过的热图:」 跟着 Cell 学作图 | 复杂热图(ComplexHeatmap) 跟着 Nature 学作图 | 复杂热图2.0(连续+分类变量) R实战 ...
- 手动绘制R语言Logistic回归模型的外部验证校准曲线(Calibration curve)(2)
校准曲线图表示的是预测值和实际值的差距,作为预测模型的重要部分,目前很多函数能绘制校准曲线. 一般分为两种,一种是通过Hosmer-Lemeshow检验,把P值分为10等分,求出每等分的预测值和实际值 ...
- R语言生存分析之COX比例风险模型构建及列线图(nomogram)、校准曲线(calibration curve)绘制示例
R语言生存分析之COX比例风险模型构建及列线图(nomogram).校准曲线(calibration curve)绘制示例 列线图(Alignment Diagram),又称诺莫图(Nomogram图 ...
- R实战 | 山脊图(ridgeline plot)
R实战 | 山脊图(ridgeline plot) 示例数据 library(ggplot2) library(reshape2) # 以基因表达矩阵为例 test = matrix(rnorm(20 ...
- R语言手动绘制分类Logistic回归模型的校准曲线(Calibration curve)(3)
校准曲线图表示的是预测值和实际值的差距,作为预测模型的重要部分,目前很多函数能绘制校准曲线. 一般分为两种,一种是通过Hosmer-Lemeshow检验,把P值分为10等分,求出每等分的预测值和实际值 ...
- Topic 14. 临床预测模型之校准曲线 (Calibration curve)
点击关注,桓峰基因 桓峰基因 生物信息分析,SCI文章撰写及生物信息基础知识学习:R语言学习,perl基础编程,linux系统命令,Python遇见更好的你 57篇原创内容 公众号 前言 Calibr ...
- 二分类资料校准曲线calibration curve的绘制
本文首发于公众号:医学和生信笔记 " 医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化.主要分享R语言做医学统计学.meta分析.网络药理学.临床预测模型.机器学习.生物 ...
- Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化
本文首发于"生信补给站"公众号,https://mp.weixin.qq.com/s/BWpy3F-nEKXCdVXmY3GYZg 当然还有更多R语言,生物信息学相关知识...? ...
- R语言使用ggplot2包的快速可视化函数qplot绘制基础密度图实战
R语言使用ggplot2包的快速可视化函数qplot绘制基础密度图实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制基础密度图实战 #仿真数据
- R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter、分组颜色配置)实战
R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter.分组颜色配置)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter.分组颜色配置) ...
最新文章
- android回调函数
- POJ2503 UVA10282 Babelfish
- 机器学习中的MLE、MAP和贝叶斯估计
- JavaScript中发布/订阅模式的理解
- PTA 06-图2 Saving James Bond - Easy Version (25分)
- linux磁盘资源,liunxCPU和内存,磁盘等资源,
- 我的内核学习笔记9:Intel内部看门狗iTCO_wdt驱动
- 计数排序(Counting sort)
- linux telnet命令不可用的解决办法
- python基础学习笔记1
- kotlin转java_Kotlin 与 Java 代码之间的转换
- lopatkin俄大神精简中文系统Windows 10 Enterprise 2016 LTSB 14393.577 x86-x64 ZH-CN PIP
- 生信技能树课程记录笔记(四)20220527
- Python 中 ‘unicodeescape’ codec can’t decode bytes in position X-X: trun错误
- win+e替换为xyplorer打开
- [转]	 看的逗得我差点没趴地上!
- 刨根问底:linux中bash shell中SIGHUP和SIGTERM信号的处理
- H.264向H.265的转变及其相关技术
- Pulse local frame(画出光脉冲三维动态演化过程)
- 豪杰超级解霸 V8.3 11月18日发布
热门文章
- 使用APP inventor制作蓝牙串口助手【智能浇灌模型中用到】
- win10系统字体 chrome 修改苹果字体
- 微信公众号开发教程java_微信公众号开发java框架:wx4j(入门篇)
- java8.0安装教程_图解JDK8下载安装以及环境配置全过程,超级详细
- oracle中数据泵只导出索引,oracle expdp/impdp exclude=STATISTICS
- 图片怎么转换成文字?几个好用的方法快来查阅
- 我做的通用象棋连线器,可以连接到游戏大厅
- 如何成为一名卓越的程序员
- 【独家折扣】淘客小程序源码
- MySQL数据备份与IDE工具介绍