如何使用Survminer包優(yōu)雅的繪制生存曲線?
引言:
生存分析是臨床上較為常用的統(tǒng)計學方法,用于比較不同組別的患者在接受干預之后,生存時間的變化情況。生存分析是醫(yī)學領域中一個重要的內容,在各個疾病領域的研究中都運用十分廣泛。在R中進行生存分析常用的包主要有survival包以及survminer包。
Survival 包提供了生存函數(shù)的建立,Cox模型的建立,以及比較分析。這個包也提供了基于基礎繪圖系統(tǒng)的生存曲線繪制。Survminer包提供了基于ggplot2系統(tǒng)對于生存分析的可視化,使得生存分析具有更加美觀的圖形,以及自我定制方式。
而今天我們的主角就是Survminer包,讓我們鼓足精神一起來學習“如何使用Survminer包優(yōu)雅的繪制生存曲線”吧。
1.Survminer包主要函數(shù)介紹
#該包包含的主要函數(shù)有:
主要函數(shù)用法ggsurvplot ()利用'number at risk'表,事件表的累計數(shù)量和被過濾的主體表的累計數(shù)繪制生存曲線arrange_ggsurvplots ()在同一頁面上排列多個ggsurvplotsggsurvevents ()繪制事件的時間分布surv_summary ()生存曲線總結,默認的summary ()函數(shù)相比,surv_summary ()創(chuàng)建一個數(shù)據(jù)幀,其中包含來自survfit結果的漂亮摘要surv_cutpoint ()一次確定一個或多個連續(xù)變量的最佳切點,提供與生存最顯著關系對應的一個切點的值。pairwise_survdiff ()生存曲線的多重比較,計算分組級別之間的配對比較,以及多個測試的更正ggcoxzph ()比例危害的圖形測試,顯示縮放的Schoenfeld殘差圖,以及使用ggplot2的平滑曲線,plot.cox.zph()的包裝器ggcoxdiagnostics ()顯示診斷圖表顯示cr比例危險模型的良好ggcoxfunctional ()顯示關于零cox比例危險模型鞅殘差的連續(xù)解釋變量的圖,cox模型中連續(xù)變量的函數(shù)形式的正確選取ggforest ()繪制CoxPH模型的forest plotggcoxadjustedcurves ()繪制coxph模型的調整生存曲線ggcompetingrisks ()繪制競爭風險的累積關聯(lián)曲線
在以上眾多函數(shù)中,ggsurvplot ()函數(shù)和ggcoxzph ()函數(shù)是生存分析中應用最多的函數(shù),arrange_ggsurvplots ()函數(shù)是讓多個 ggsurvplots作圖生存曲線合并。今天我們也將主要講解這三個函數(shù)。(如果需要其他函數(shù)的學習,請自行查閱 Survminer包說明文檔)
2.主要函數(shù)ggsurvplot()
2.1 用法:
ggsurvplot(fit, data = NULL, fun = NULL, color = NULL, palette = NULL, linetype = 1, conf.int = FALSE, pval = FALSE, pval.method = FALSE, test.for.trend = FALSE, surv.median.line = "none", risk.table = FALSE, cumevents = FALSE, cumcensor = FALSE, tables.height = 0.25, group.by = NULL, facet.by = NULL, add.all = FALSE, combine = FALSE, ggtheme = theme_survminer(), tables.theme = ggtheme, ...)
2.2 主要參數(shù)詳解:
參數(shù)用法fit需要畫的生存曲線對象,可以是擬合好的生存對象,也可以是包含生存信息的數(shù)據(jù)框、列表data用來擬合生存曲線的數(shù)據(jù)集,如果未提供,則將從“fit”對象中提取數(shù)據(jù)fun定義生存曲線變換的任意函數(shù)。event:f(y) = 1-y;cumhaz:f(y) =-log(y);pct:生存率百分比color繪制生存曲線的顏色設置,可使用調色板palette使用調色板linetype改變線條類型conf.int邏輯值,如果為TRUE,則繪制置信區(qū)間pval邏輯中,如果為TRUE,則繪制p值pval.method是否添加一個文本,其中包含用于計算pvalue的檢驗名稱,該文本對應于生存曲線的比較。僅在pval=TRUE時使用test.for.trend邏輯值,默認為FALSE,如果是TRUE,返回p值的趨勢檢測surv.median.line用于在中間生存點繪制水平/垂直線的字符向量,可選擇的值包括c("none","hv","h","v")中的一個,其中v:垂直,h:水平risk.table顯示絕對數(shù)量和風險個體的百分比cumevents指定是否顯示累計事件數(shù)表的邏輯值,默認值為FALSEcumcensor邏輯值,指定是否顯示審查累計次數(shù)的表,默認值為FALSEtables.height數(shù)值(在[0-1]中),指定主生存圖下所有表的一般高度add.all邏輯值如果為真,則將合并患者的生存曲線(空模型)添加到主圖中combine邏輯值如果為TRUE,則在同一繪圖上合并列表survfit對象2.3 示例:
#首先,安裝并加載包,直接在R中安裝即可
install.packages("survival")install.packages("survminer")library(survival)library(survminer)
#示例數(shù)據(jù)選用R語言中非常出名的lung數(shù)據(jù)集
#查看數(shù)據(jù)組成View(lung)
#表中數(shù)據(jù)解釋:
time:患者生存時間,單位是days?status:患者結局,1表示刪失,2表示死亡 其余變量:自變量,比如:age表示年齡,sex表示性別等等
#然后,使用該數(shù)據(jù)擬合生存曲線 (這里使用Survival包,具體生存分析的方法可以查看Survival包學習文檔)
fit<- survfit(Surv(time, status) ~ sex, data = lung)
#構建好fit對象后,開始畫圖
#默認參數(shù)畫圖ggsurvplot(fit, data = lung)
# 添加中位生存ggsurvplot(fit, data = lung, surv.median.line = "hv")

圖片新聞