生存時間解析の基礎:カプラン–マイヤー法と SAS・R による実装を徹底解説

記事の目次
Toggleはじめに
生存時間解析は、医薬統計・臨床試験・疫学研究などで広く用いられる重要な手法です。その中でも最も基本となるのが カプラン–マイヤー(Kaplan–Meier: KM)法です。本記事では、SAS と R による実装、実データを用いた結果の読み方、SAS と R の違い・メリット・デメリットを、図解を交えながらわかりやすく紹介します。
カプラン–マイヤー法とは
KM 法は、生存時間データに含まれる 打ち切り(censoring) を適切に扱いながら、生存関数 S(t) を推定する方法です。
生存関数の定義
生存関数 S(t) は「時刻 t まで生存している確率」を表します。
KM 推定量は次の積の形で表されます:
\[S(t)=\prod _{t_i\leq t}\left( 1-\frac{d_i}{n_i}\right)\]
- \(t_i\):イベント(死亡など)が起きた時点
- \(d_i\):その時点でのイベント数
- \(n_i\):その直前まで生存していた人数

- 死亡が起きるたびに生存曲線が階段状に下がる
- 打ち切りは人数から除外されるが、生存曲線は下がらない
実データの準備
以下のような簡単なデータを用いて、SAS と R の両方で KM 曲線を作成します。
| ID | time | status | trt |
| 1 | 5 | 1 | A |
| 2 | 8 | 0 | A |
| 3 | 12 | 1 | A |
| 4 | 4 | 1 | B |
| 5 | 6 | 0 | B |
| 6 | 10 | 1 | B |
- time:生存時間
- status:1=イベント発生、0=打ち切り
- trt:治療群(A/B)
SAS による KM 推定と KM 曲線
SAS プログラム(PROC LIFETEST
data kmdata;
input id time status trt $;
datalines;
1 5 1 A
2 8 0 A
3 12 1 A
4 4 1 B
5 6 0 B
6 10 1 B
;
run;
proc lifetest data=kmdata plots=survival(cb=hw test);
time time*status(0);
strata trt;
run;
time time*status(0);
→ status=0 を打ち切りとして扱うstrata trt;
→ 群別 KM 曲線を描くplots=survival(cb=hw test)
→ 生存曲線+信頼区間+ログランク検定
- A 群の方が曲線が上にある → 生存率が高い傾向
- ログランク検定 p 値が 0.20 程度なら
→ 有意差はないが、傾向は見られる - 信頼区間が広い → サンプルサイズが小さいため推定の不確実性が大きい
R による KM 推定と KM 曲線
R プログラム(survival + survminer
library(survival)
library(survminer)
kmdata <- data.frame(
id = 1:6,
time = c(5,8,12,4,6,10),
status = c(1,0,1,1,0,1),
trt = c(“A”,”A”,”A”,”B”,”B”,”B”)
)
fit <- survfit(Surv(time, status) ~ trt, data = kmdata)
ggsurvplot(
fit,
data = kmdata,
conf.int = TRUE,
pval = TRUE,
risk.table = TRUE
)

pval=TRUE→ 図の上にログランク検定 p 値が表示risk.table=TRUE→ 各時点のリスクセット人数が表示conf.int=TRUE→ 信頼区間が帯状に表示
R の KM 図は視覚的に非常に美しく、論文・報告書向けの品質が高いです。
SAS と R の違い・メリット・デメリット
| 観点 | SAS | R |
| 操作性 | 手順が明確で安定 | パッケージが豊富で柔軟 |
| グラフの美しさ | 標準ではシンプル | survminer で非常に美しい |
| 再現性 | 製薬業界で標準的 | バージョン差に注意 |
| 規制対応 | FDA/PMDA 対応で強い | 近年は R も受容されつつある |
| コスト | 高額 | 無料 |
SASのメリット・デメリット
- 製薬企業での実績が圧倒的
- PROC LIFETEST の出力が規制当局向けに整っている
- グラフのカスタマイズ性が低い
- ライセンス費用が高い
Rのメリット・デメリット
- 作成できるグラフがきれいである
- 無料で使える
- パッケージが豊富
- パッケージ依存が強く、標準化が難しい
- バージョン管理が必要
- 規制当局提出用の解析
→ SAS が依然として主流 - 探索的解析・可視化・論文化
→ R の survminer が圧倒的に便利 - 両方使えると最強
→ 製薬業界では SAS + R のハイブリッドが標準になりつつある
まとめ
カプラン–マイヤー法は、生存時間解析の中でも最も基本的でありながら、臨床試験・疫学研究・医療統計の現場で欠かせない手法です。本記事では、KM 法の考え方から始まり、SAS と R を用いた実装方法、実データを使った結果の読み方、そして両者の違いやメリット・デメリットまでを体系的に紹介しました。
SAS は規制当局対応や再現性の高さに強みがあり、製薬企業での標準的な解析環境として信頼されています。一方、R は柔軟な可視化や豊富なパッケージにより、探索的解析や論文化において非常に強力です。両者は競合関係ではなく、目的に応じて使い分けることで、より質の高い解析が可能になります。
KM 曲線は単なる生存率の推定にとどまらず、治療効果の傾向を直感的に把握し、次の解析ステップ(Cox 回帰、RMST、サブグループ解析など)へつなげる重要な役割を果たします。SAS と R の両方を理解しておくことで、実務でも研究でも、より説得力のある生存時間解析を行えるようになります。
生存時間解析の第一歩として、ぜひ本記事の内容を実務や学習に活かしていただければ幸いです。











