Rで解析:生存曲線の作成「survminer」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

生存曲線の作成が大変簡単なパッケージの紹介です。Log-rank検定の結果や生存数のテーブルなどの同時プロットが可能です。非常に簡単で見栄えの良いグラフが作成可能です。

パッケージバージョンは0.4.9。実行コマンドはwindows 11のR version 4.1.2で動作を確認しています。


スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("survminer")



コマンドの紹介

詳細はコマンド、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("survminer")

###データ例の作成#####
#Status:0=alive,1=deadを示す
#自身のデータも生存、死亡を数字に変換してください
n <- 150
set.seed(1234)
TestData <- data.frame(ID = 1:n, Group = rep(c("A", "B"), length = n),
                       Day = sample(0:20, n, replace = TRUE),
                       Status = sample(0:1, n, replace = TRUE))

#survival&#12497;&#12483;&#12465;&#12540;&#12472;&#12398;Surv,survfit&#12467;&#12510;&#12531;&#12489;&#12391;&#29983;&#23384;&#35336;&#31639;
library("survival")
ServResult <- survfit(Surv(Day, Status) ~ Group, data = TestData)

######## #&#29983;&#23384;&#26354;&#32218;&#12398;&#20316;&#25104;:ggsurvplot&#12467;&#12510;&#12531;&#12489;
#Surv,survfit&#12467;&#12510;&#12531;&#12489;&#12398;&#32080;&#26524;&#12434;&#25351;&#23450;:fit&#12458;&#12503;&#12471;&#12519;&#12531;
#Log-rank&#26908;&#23450;&#32080;&#26524;&#12434;&#34920;&#31034;:pval&#12458;&#12503;&#12471;&#12519;&#12531;
#&#29983;&#23384;&#26178;&#38291;(x&#36600;)&#12398;&#20998;&#21106;&#25968;&#12434;&#35373;&#23450;:break.time.by&#12458;&#12503;&#12471;&#12519;&#12531;
#&#20449;&#38972;&#21306;&#38291;&#12434;&#34920;&#31034;:conf.int&#12458;&#12503;&#12471;&#12519;&#12531;
#&#20449;&#38972;&#21306;&#38291;&#12398;&#34920;&#31034;&#35373;&#23450;:conf.int.style&#12458;&#12503;&#12471;&#12519;&#12531;;"ribbon"or"step"
#&#25171;&#20999;&#12426;&#25968;&#12434;&#26834;&#12464;&#12521;&#12501;&#12391;&#34920;&#31034;:ncensor.plot&#12458;&#12503;&#12471;&#12519;&#12531;
#50%&#29983;&#23384;&#12398;&#35036;&#21161;&#32218;&#12434;&#34920;&#31034;:surv.median.line&#12458;&#12503;&#12471;&#12519;&#12531;:
#"none","hv"(&#27700;&#24179;&#22402;&#30452;&#12395;&#36861;&#21152;),"h"(&#27700;&#24179;&#12395;&#36861;&#21152;),"v"(&#22402;&#30452;&#12395;&#36861;&#21152;)
ggsurvplot(fit = ServResult, data = TestData,
           #Kaplan-Meier PLOT&#12398;&#34920;&#31034;&#20869;&#23481;&#12434;&#25351;&#23450;
           palette = c("#bfe6d5", "#df6d68"), pval = TRUE, break.time.by = 3, 
           pval.method = TRUE, risk.table = TRUE,
           conf.int = TRUE, conf.int.style = "step",
           ncensor.plot = TRUE, size = 1.5, linetype = c(1, 3),
           surv.median.line = "h",
           #Kaplan-Meier PLOT&#37096;&#20998;&#12398;&#20307;&#35009;&#12434;&#35519;&#25972;
           title = "TEST PLOT", subtitle = "Kaplan-Meier PLOT",
           caption = "KARADA-GOOD", legend.title = "Group",
           font.title = c(15, "bold", "#426617"),
           font.subtitle = c(13, "plain", "#df6d68"),
           font.caption = c(10, "italic", "#f6adad"),
           font.x = c(13, "bold.italic", "red"),
           font.y = c(13, "bold.italic", "green"),
           font.tickslab = c(15, "plain", "#7a430e"),
           legend = c(0.9, 1), font.legend = c(13, "plain", "#7a430e"),
           pval.size = 7,
           #"1","n","sqrtN","S1","S2","FH"&#12364;&#36984;&#25246;&#21487;&#33021;
           ###&#12381;&#12428;&#12382;&#12428;&#12398;&#20869;&#23481;#####
           #1;log-rank, n;Gehan-Breslow (generalized Wilcoxon)
           #sqrtN;Tarone-Ware, S1;Peto-Peto's modified survival estimate
           #S2;modified Peto-Peto (by Andersen), FH ;Fleming-Harrington(p=1, q=1)
           ########
           log.rank.weights = "1",
           #risk.table&#37096;&#20998;&#12398;&#20307;&#35009;&#12434;&#35519;&#25972;
           risk.table.title = "risk.table.title", risk.table.y.text.col = TRUE,
           risk.table.y.text = FALSE, fontsize = 7)




出力例


少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました