Forest plot(森林图) | Cox生存分析可视化

简介: Forest plot(森林图) | Cox生存分析可视化

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


  Meta分析的结果使用森林图进行可视化展示很常见,其实COX生存分析也能用森林图展示。

   之前分享过绘制KM曲线R|生存分析(1),诺莫图展示COX结果Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化,本文将简单的介绍如何使用R-survminer包绘制Cox生存分析结果的森林图

准备数据

同样使用上次绘制诺莫图使用的TCGA-LIHC队列的临床数据,

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

构建COX生存模型

对LIHC队列进行Cox回归分析,时间变量是time,结局变量是status,自变量选择 age,gender和 grade,结果如下:

#构建模型
model <- coxph( Surv(time, status) ~  age + gender + grade , data =  LIHC )
model

好吧,虽然不显著,但是不影响后续森林图的绘制。

绘制森林图


1 ggforest绘制基础森林图

#基础森林图

ggforest(model, data=LIHC)

只需cox回归模型以及数据集即可完成森林图的绘制,但是可以从以下几个方面去优化COX结果森林图:

A:森林图的标题

B:调整前三列的距离,防止过宽或过窄(重叠)

C:字体大小以及HR的小数位数

D:变量名称的调整(分类变量使用数值表示)


2 森林图优化,调整

1)调整变量名称
LIHC <- within(LIHC, {
gender <- factor(gender, labels = c('female', 'male'))
grade <- factor(grade , labels = c('Grade1', 'Grade3', 'Grade3' , 'Grade4'))
})

也许觉得多此一举?

更重要的用途是当分类变量使用1,2... n的数值表示的时候,在图中不会给出分类比较的变量名称,因此需要数值标志的分类变量进行/ 因子转换,然后再绘制。

可自行将gender的FEMALE和MALE改成1 ,2 ,比较结果的区别


2)优化森林图

model <- coxph( Surv(time, status) ~  age + gender + grade , data =  LIHC )
ggforest(model,  #coxph得到的Cox回归结果
        data = LIHC,  #数据集
        main = 'Hazard ratio of LIHC',  #标题
        cpositions = c(0.05, 0.15, 0.35),  #前三列距离
        fontsize = 1, #字体大小
        refLabel = 'reference', #相对变量的数值标签,也可改为1
        noDigits = 3 #保留HR值以及95%CI的小数位数
      )

如此即完成了以上几个可优化,调整的地方。

此外森林图左下角会给出出现结局事件的个数,COX生存模型的P值,AIC值和C-index值。

◆  

COX生存模型可以绘制森林图,那logist回归的结果可以绘制吗?答案当然是肯定的,后面见!🤭

相关文章
|
存储 缓存 前端开发
关于JWT Token 自动续期的解决方案
在前后端分离的开发模式下,前端用户登录成功后后端服务会给用户颁发一个jwt token。前端(如vue)在接收到jwt token后会将token存储到LocalStorage中。
2126 0
|
Linux Shell 网络安全
|
机器学习/深度学习 数据采集 监控
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
2513 0
|
12月前
|
自然语言处理 前端开发 Java
JBoltAI 框架完整实操案例 在 Java 生态中快速构建大模型应用全流程实战指南
本案例基于JBoltAI框架,展示如何快速构建Java生态中的大模型应用——智能客服系统。系统面向电商平台,具备自动回答常见问题、意图识别、多轮对话理解及复杂问题转接人工等功能。采用Spring Boot+JBoltAI架构,集成向量数据库与大模型(如文心一言或通义千问)。内容涵盖需求分析、环境搭建、代码实现(知识库管理、核心服务、REST API)、前端界面开发及部署测试全流程,助你高效掌握大模型应用开发。
1048 5
|
10月前
|
人工智能 搜索推荐 数据挖掘
抖音电商API直播间弹幕互动,用户参与度翻倍!
在数字化电商时代,抖音电商API助力商家提升直播互动。通过实时弹幕处理、智能回复与数据分析,实现用户参与度翻倍,增强粘性、提升转化。本文详解API集成步骤与实战应用,助您打造高效直播间。
1343 0
|
域名解析 网络协议 Ubuntu
dig 命令深入学习
dig 命令(Domain Information Groper)是一个用于查询 DNS (域名系统)记录的强大工具,它提供了详细的DNS信息,主要用于帮助用户诊断、调试和验证与域名解析相关的问题。
|
SQL Oracle Java
Weblogic12C概述及安装
Weblogic12C概述及安装
1557 0
Weblogic12C概述及安装
|
数据可视化
RNAseq|构建预后模型后你还需要这些图,森林图,诺莫图,校准曲线,DCA决策曲线
RNAseq|构建预后模型后你还需要这些图,森林图,诺莫图,校准曲线,DCA决策曲线
862 0
|
存储 Java 程序员
Java面试题:请解释Java中的永久代(PermGen)和元空间(Metaspace)的区别
Java面试题:请解释Java中的永久代(PermGen)和元空间(Metaspace)的区别
826 11
|
索引 Python
离线安装Python依赖:以six和websocket-client为例
离线安装Python依赖:以six和websocket-client为例
1397 0