侵權(quán)投訴
訂閱
糾錯
加入自媒體

如何使用Survminer包優(yōu)雅的繪制生存曲線?

2020-12-31 11:53
科研菌
關(guān)注

引言:

   生存分析是臨床上較為常用的統(tǒng)計學(xué)方法,用于比較不同組別的患者在接受干預(yù)之后,生存時間的變化情況。生存分析是醫(yī)學(xué)領(lǐng)域中一個重要的內(nèi)容,在各個疾病領(lǐng)域的研究中都運用十分廣泛。在R中進行生存分析常用的包主要有survival包以及survminer包。

Survival 包提供了生存函數(shù)的建立,Cox模型的建立,以及比較分析。這個包也提供了基于基礎(chǔ)繪圖系統(tǒng)的生存曲線繪制。Survminer包提供了基于ggplot2系統(tǒng)對于生存分析的可視化,使得生存分析具有更加美觀的圖形,以及自我定制方式。

而今天我們的主角就是Survminer包,讓我們鼓足精神一起來學(xué)習(xí)“如何使用Survminer包優(yōu)雅的繪制生存曲線”吧。

1.Survminer包主要函數(shù)介紹

#該包包含的主要函數(shù)有:

主要函數(shù)用法ggsurvplot ()利用'number at risk'表,事件表的累計數(shù)量和被過濾的主體表的累計數(shù)繪制生存曲線arrange_ggsurvplots ()在同一頁面上排列多個ggsurvplotsggsurvevents ()繪制事件的時間分布surv_summary ()生存曲線總結(jié),默認(rèn)的summary ()函數(shù)相比,surv_summary ()創(chuàng)建一個數(shù)據(jù)幀,其中包含來自survfit結(jié)果的漂亮摘要surv_cutpoint ()一次確定一個或多個連續(xù)變量的最佳切點,提供與生存最顯著關(guān)系對應(yīng)的一個切點的值。pairwise_survdiff ()生存曲線的多重比較,計算分組級別之間的配對比較,以及多個測試的更正ggcoxzph ()比例危害的圖形測試,顯示縮放的Schoenfeld殘差圖,以及使用ggplot2的平滑曲線,plot.cox.zph()的包裝器ggcoxdiagnostics ()顯示診斷圖表顯示cr比例危險模型的良好ggcoxfunctional ()顯示關(guān)于零cox比例危險模型鞅殘差的連續(xù)解釋變量的圖,cox模型中連續(xù)變量的函數(shù)形式的正確選取ggforest ()繪制CoxPH模型的forest plotggcoxadjustedcurves ()繪制coxph模型的調(diào)整生存曲線ggcompetingrisks ()繪制競爭風(fēng)險的累積關(guān)聯(lián)曲線

        在以上眾多函數(shù)中,ggsurvplot ()函數(shù)和ggcoxzph ()函數(shù)是生存分析中應(yīng)用最多的函數(shù),arrange_ggsurvplots ()函數(shù)是讓多個 ggsurvplots作圖生存曲線合并。今天我們也將主要講解這三個函數(shù)。(如果需要其他函數(shù)的學(xué)習(xí),請自行查閱 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.a(chǎn)ll = 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繪制生存曲線的顏色設(shè)置,可使用調(diào)色板palette使用調(diào)色板linetype改變線條類型conf.int邏輯值,如果為TRUE,則繪制置信區(qū)間pval邏輯中,如果為TRUE,則繪制p值pval.method是否添加一個文本,其中包含用于計算pvalue的檢驗名稱,該文本對應(yīng)于生存曲線的比較。僅在pval=TRUE時使用test.for.trend邏輯值,默認(rèn)為FALSE,如果是TRUE,返回p值的趨勢檢測surv.median.line用于在中間生存點繪制水平/垂直線的字符向量,可選擇的值包括c("none","hv","h","v")中的一個,其中v:垂直,h:水平risk.table顯示絕對數(shù)量和風(fēng)險個體的百分比cumevents指定是否顯示累計事件數(shù)表的邏輯值,默認(rèn)值為FALSEcumcensor邏輯值,指定是否顯示審查累計次數(shù)的表,默認(rèn)值為FALSEtables.height數(shù)值(在[0-1]中),指定主生存圖下所有表的一般高度add.a(chǎn)ll邏輯值如果為真,則將合并患者的生存曲線(空模型)添加到主圖中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:患者結(jié)局,1表示刪失,2表示死亡 其余變量:自變量,比如:age表示年齡,sex表示性別等等

#然后,使用該數(shù)據(jù)擬合生存曲線 (這里使用Survival包,具體生存分析的方法可以查看Survival包學(xué)習(xí)文檔)

fit<- survfit(Surv(time, status) ~ sex, data = lung)

#構(gòu)建好fit對象后,開始畫圖

#默認(rèn)參數(shù)畫圖ggsurvplot(fit, data = lung)

# 添加中位生存ggsurvplot(fit, data = lung,           surv.median.line = "hv")

1  2  3  4  下一頁>  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

醫(yī)療科技 獵頭職位 更多
文章糾錯
x
*文字標(biāo)題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號