Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化

简介: Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化

本文首发于“生信补给站”公众号  https://mp.weixin.qq.com/s/BWpy3F-nEKXCdVXmY3GYZg


Nomogram,也被称为诺莫图或者列线图,在医学领域的期刊出现频率越来愈多,常用于评估肿瘤学和医学的预后情况,可将Logistic回归或Cox回归的结果进行可视化呈现。

数据准备

    使用TCGA-LIHC队列的临床数据,简单处理后进行示例分析:

## 载入R包
library(rms)
library(survival)
## 读取LIHC数据
LIHC <- read.csv("TCGA-LIHC-nomogram.csv",header=TRUE)
head(LIHC)

绘制nomogram图


1 打包数据

关键步骤:按照nomogram要求“打包”数据
#可以输入??datadist查看详细说明
dd=datadist(LIHC)
options(datadist="dd")
2 构建logist模型,绘制诺莫图
## 构建logist模型,绘制诺莫图
f1 <- lrm(status ~ age + gender + grade , data =  LIHC)
nom <- nomogram(f1, fun=plogis, lp=F, funlabel="Risk")
plot(nom)

3 构建COX模型,绘制诺莫图

A :COX回归中位生存时间的Nomogram

## 构建COX比例风险模型
f2 <- psm(Surv(time,status) ~ age+gender+grade,data =  LIHC, 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)

简单介绍下使用,比如某患者年龄为50岁,那就在列线图年龄为50岁的地方向上画一条垂直线,即可得到其对应的得分(Points);男性,则在男性的地方画一条垂直线,以此类推,找出每个变量状态下对应的得分,相加得到总得分。

最后将患者的总得分(Total Points)再向下画一条垂直线,就可以知道该患者对应的中位生存时间。

下面例子同,可以知道未来1年、5年的生存率,当然也可以是其他时间节点。

## LIHC数据的time是以”天“为单位,此处绘制1年,5年的生存概率
nom <- nomogram(f2, fun=list(function(x) surv(365, x),
                            function(x) surv(1825, x),
                            function(x) med(lp=x)),
                            funlabel=c("1-year Survival Probability", "5-year Survival Probability","Median Survival Time"))
plot(nom, xfrac=.2)

B:绘制COX回归生存概率的Nomogram图


/

当然也可以计算其他时间节点的生存率,同样加到list中即可。


使用相对风险的指标(OR、HR)等统计之余,可以结合列线图展示,能够起到预测生存概率的作用,也会使预测模型的结果更直观、易懂。


相关文章
|
6天前
|
机器学习/深度学习 图计算
R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据(2)
R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据(2)
13 0
|
5月前
|
机器学习/深度学习 数据可视化 Python
机器学习之利用线性回归预测波士顿房价和可视化分析影响房价因素实战(python实现 附源码 超详细)
机器学习之利用线性回归预测波士顿房价和可视化分析影响房价因素实战(python实现 附源码 超详细)
110 0
|
6天前
|
数据挖掘
R语言临床预测模型:分层构建COX生存回归模型STRATIFIED COX MODEL、KM生存曲线、PH假设检验
R语言临床预测模型:分层构建COX生存回归模型STRATIFIED COX MODEL、KM生存曲线、PH假设检验
19 3
|
5天前
|
机器学习/深度学习 数据可视化 算法
数据分享|R语言交互可视化分析Zillow房屋市场:arima、VAR时间序列、XGBoost、主成分分析、LASSO报告
数据分享|R语言交互可视化分析Zillow房屋市场:arima、VAR时间序列、XGBoost、主成分分析、LASSO报告
12 0
|
4天前
|
数据可视化 数据处理 索引
Python用GARCH对ADBL股票价格时间序列趋势滚动预测、损失、可视化分析
Python用GARCH对ADBL股票价格时间序列趋势滚动预测、损失、可视化分析
15 0
|
5天前
|
机器学习/深度学习 算法 Serverless
数据分享|R语言武汉流动人口趋势预测:灰色模型GM(1,1)、ARIMA时间序列、logistic逻辑回归模型
数据分享|R语言武汉流动人口趋势预测:灰色模型GM(1,1)、ARIMA时间序列、logistic逻辑回归模型
12 0
|
6天前
|
机器学习/深度学习
R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据(1)
R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据
16 3
|
6天前
|
机器学习/深度学习 图计算
R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据
R语言广义线性模型(GLM)、全子集回归模型选择、检验分析全国风向气候数据
12 0
|
6天前
|
数据可视化
R语言GAMLSS模型对艾滋病病例、降雪量数据拟合、预测、置信区间实例可视化
R语言GAMLSS模型对艾滋病病例、降雪量数据拟合、预测、置信区间实例可视化
13 1
|
11天前
|
数据可视化 Python Windows
PYTHON 用几何布朗运动模型和蒙特卡罗MONTE CARLO随机过程模拟股票价格可视化分析耐克NKE股价时间序列数据
PYTHON 用几何布朗运动模型和蒙特卡罗MONTE CARLO随机过程模拟股票价格可视化分析耐克NKE股价时间序列数据
20 0