R を使った生存曲線の描画: Kaplan-Meier

UB3/statistics/survival/survival_r

このページの最終更新日: 2024/09/30

  1. R plot()関数を使った生存曲線の作成
  2. ggsurvplot() 関数を使った生存曲線の作成

広告

R plot()関数を使った生存曲線の作成

このページ によると、R で生存時間分析に適したデータセットは以下の 3 つである。

  • MASS パッケージに含まれている gehan
  • survival パッケージに含まれている leukemia
  • survival パッケージに含まれている veteran

ここでは、veteran パッケージを使った例を示しておく。これは肺がん治療のデータを示したデータセットで、以下のような項目を含んでいる (2)。本当は 137 行あるが、1 から 10 行目のみ記載する。

Rのveteranデータセット
  • trt: 治療の種類。1 が standard (1-69 行)、2 が test (70-137 行)。
  • celltype: がん細胞の種類。
  • time: 生存時間。
  • status: 1 が打ち切りなし、0 が打ち切り。
  • karno: Karnofsky performance score
  • diagtime: 診断されてから clinical trial までの時間
  • age: 年齢
  • prior: Clinical trial 前の治療の有無。0 が治療なし、10 が治療あり。

survfit() で作成し、plot() で描画する

trt, time, status のデータを使い、Kaplan-Meier 曲線を作る。Surv() は、データを生存時間であると認識させる。これを survfit() 関数に入れて、Kaplan-Meier 曲線を作成。描画には plot() を使える。

test_fit <- survfit(Surv(time, status) ~ trt, data = veteran)
plot(test_fit)


Rのveteranデータセット 生存曲線

描画データは test_fit$surv というカラムに保存されているので、これを表示すれば最終的な生存率が何%であったかを知ることができる。

グラフの見た目は、plot() 関数のオプションを使って変更できる。詳細は plot 関数のページ を参照のこと。

cols <- c("red", "blue")
labels <- c("Treatment 1", "Treatment 2")
plot(test_fit, main = "Kaplan-Meier of the veteran dataset", ylab = "Survival", xlab = "Survival time (days)", col = cols)
legend("topright", legend = labels, col = cols, lty = c(1, 1))


Rのveteranデータセット 生存曲線

plot に fun = "event" を追加すると、累積イベント割合、つまり右上がりの Kaplan-Meier 曲線になる。

cols <- c("red", "blue")
labels <- c("Treatment 1", "Treatment 2")
plot(test_fit, main = "Kaplan-Meier of the veteran dataset", ylab = "Survival", xlab = "Survival time (days)", col = cols, fun = "event")
legend("topright", legend = labels, col = cols, lty = c(1, 1))


Rのveteranデータセット 生存曲線

ggsurvplot() 関数を使った生存曲線の作成

ggplot() は、R できれいなグラフを作るための有名な パッケージ である。R base の plot ではなく、survminer というパッケージに含まれる ggsurvplot() 関数を使って生存曲線を図にすることもできる。

方法は同じで、test_fit を plot() でなく ggsurvplot() に渡す。

test_fit <- survfit(Surv(time, status) ~ trt, data = veteran)
ggsurvplot(test_fit)


Rのveteranデータセット 生存曲線

各種オプションは このページ に詳しい。


広告

References

  1. 佐藤弘樹、市川度. 2013. 生存時間解析がこれでわかる! 臨床統計まるごと図解.

生存時間解析 について平易に書いた数少ない解説書。

統計のなかでも、生存時間解析はそれだけで 1 冊の本になるほど複雑なわりに、ANOVAや t 検定などと違い使用頻度が低いため、とっつきにくい検定である。

この本では、とくに Kalpan-Meier 生存曲線、Log-rank 検定、Cox 比例ハザードモデルを重点的に解説しているが、prospective study と retrospective study, 選択バイアス、プラセボなど、臨床統計実験で重要な概念についても詳しい説明がある。基礎生物学の実験ではあまり意識しない重要な点であるので押さえておきたい。



  1. R で生存時間分析を行う. Link: Last access 2018/09/20.
  2. Veterans' Administration Lung Cancer study. Link: Last access 2021/07/05.
  3. Survival Analysis. Link: Last access 2022/11/12.
  4. カプランマイヤー曲線の書き方 R と EZR の方法。Link: Last access 2024/04/24.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。