Forest plot(森林圖) | Cox生存分析可視化

  • 2019 年 10 月 8 日
  • 筆記

 

本文首發於“生信補給站”微信公眾號,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)

img

二 構建COX回歸模型

對LIHC隊列進行Cox回歸分析,時間變量是time,結局變量是status,自變量選擇 age,gender和 grade,結果如下:

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

img

好吧,雖然不顯著,但是不影響後續森林圖的繪製。

三 繪製森林圖

1)ggforest繪製基礎森林圖

#基礎森林圖
ggforest(model, data = LIHC)

img

只需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的小數位數
      )

img

如此即完成了以上幾個可優化,調整的地方。

此外森林圖左下角會給出出現結局事件的個數,COX生存模型的P值,AIC值和C-index值。

 

◆ ◆ ◆ ◆ ◆

COX生存模型可以繪製森林圖,那logist回歸的結果可以繪製嗎?答案當然是肯定的,後面見!?

 

【覺得不錯,右下角點個“在看”,期待您的轉發,謝謝!】