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

更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号,给您干货。

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)森林图优化,调整

调整变量名称
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 ,比较结果的区别

优化森林图
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回归的结果可以绘制吗?答案当然是肯定的,后面见!

Forest plot(森林图) | Cox生存分析可视化的更多相关文章

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

    本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/BWpy3F-nEKXCdVXmY3GYZg 当然还有更多R语言,生物信息学相关知识...

  2. R-forestplot包| HR结果绘制森林图

    本文首发于“生信补给站”微信公众号,https://mp.weixin.qq.com/s/2W1W-8JKTM4S4nml3VF51w 更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号 ...

  3. R语言与医学统计图形-【33】生存曲线、森林图、曼哈顿图

    1.生存曲线 基础包survival+扩展包survminer. survival包内置肺癌数据集lung. library(survival) library(survminer) str(lung ...

  4. Cox回归模型【生存分析】

    参考:<复杂数据统计方法--基于R的应用> 吴喜之 在生存分析中,研究的主要对象是寿命超过某一时间的概率.还可以描述其他一些事情发生的概率,例如产品的失效.出狱犯人第一次犯罪.失业人员第一 ...

  5. R|生存分析 - KM曲线 ,值得拥有姓名和颜值

    本文首发于“生信补给站”:https://mp.weixin.qq.com/s/lpkWwrLNtkLH8QA75X5STw 生存分析作为分析疾病/癌症预后的出镜频率超高的分析手段,而其结果展示的KM ...

  6. 生存分析与R--转载

    生存分析与R 生存分析是将事件的结果和出现这一结果所经历的时间结合起来分析的一类统计分析方法.不仅考虑事件是否出现,而且还考虑事件出现的时间长短,因此这类方法也被称为事件时间分析(time-to-ev ...

  7. 生存分析与R

    生存分析与R 2018年05月19日 19:55:06 走在码农路上的医学狗 阅读数:4399更多 个人分类: R语言   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...

  8. R数据分析:生存分析与有竞争事件的生存分析的做法和解释

    今天被粉丝发的文章给难住了,又偷偷去学习了一下竞争风险模型,想起之前写的关于竞争风险模型的做法,真的都是皮毛哟,大家见笑了.想着就顺便把所有的生存分析的知识和R语言的做法和论文报告方法都给大家梳理一遍 ...

  9. survival analysis 生存分析与R 语言示例 入门篇

    原创博客,未经允许,不得转载. 生存分析,survival analysis,顾名思义是用来研究个体的存活概率与时间的关系.例如研究病人感染了病毒后,多长时间会死亡:工作的机器多长时间会发生崩溃等. ...

随机推荐

  1. Python中yield解析

    小探yield 查看 python yield 文档 yield expressions: Using a yield expression in a function's body causes t ...

  2. A-The power of Fibonacci_2019牛客暑期多校训练营(第九场)

    题意 求\(\sum_0^n{Fb}_i^m \mod (1e9)\) 题解 模1e9时的斐波那契数列循环节太大,考虑把模数质因数分解成\(2^9\cdot5^9\),此时循环节变成768和78125 ...

  3. Atcoder C - Closed Rooms(思维+bfs)

    题目链接:http://agc014.contest.atcoder.jp/tasks/agc014_c 题意:略. 题解:第一遍bfs找到所有可以走的点并标记步数,看一下最少几步到达所有没锁的点,然 ...

  4. List集合的排序

    最近在写需求时,将某张表中的短信信息拿出,sql写完后,取出来后的结构是List<Map>,在进行到某一步时需要将这个List<Map>进行逆序排序, 当时第一想法便是写一个f ...

  5. mysql5.7指定字符集

    在这个配置下面加上下面这行就可以 [mysqld] character_set_server=utf8 重启后: mysql> show variables like 'char%';+---- ...

  6. 041 模块5-jieba库的使用

    目录 一.jieba库基本介绍 1.1 jieba库概述 1.2 jieba库的安装 1.3 jieba分词的原理 二.jieba库使用说明 2.1 jieba分词的三种模式 2.2 jieba库常用 ...

  7. 每天学会一点点(HashMap实现原理及源码分析)

    HashMap实现原理及源码分析   哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希 ...

  8. linux常用命令三

    linux常用命令三 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 ...

  9. hdu 1007 Quoit Design 题解

    原题地址 题目大意 查询平面内最近点对的距离,输出距离的一半. 暴力做法 枚举每一个点对的距离直接判断,时间复杂度是 $ O(n^2) $,对于这题来说会超时. 那么我们考虑去优化这一个过程,我们在求 ...

  10. 在nginx日志access log可以记录POST请求的参数值

    1)      在nginx日志access log可以记录POST请求的参数值 实现程度:日志中可以显示POST请求所提交的参数值 问题: 日志中文显示十六进制(在配置文件中配置中文也无效) 没有对 ...