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)
二 構建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回歸的結果可以繪製嗎?答案當然是肯定的,後面見!?