R を使った生存時間分析:
Kaplan-Meier の作り方とログランク検定、論文への記載方法など
UB3/statistics/survival/survival_r
このページの最終更新日: 2022/05/16- R を使った Log-rank 検定 (自作データセットを使用)
- R を使った生存曲線の作成 (自作データセットを使用)
- 組み込みデータセットを使った Log-rank 検定
広告
R を使った Log-rank test
統計パッケージ R を使い、実際に Log-rank test を行う方法を解説する。データフレームの作り方については、テキストファイルからのデータ読み込み を参照のこと。csv で以下のデータテーブルのような形で保存し、read.csv でそのファイルを読み込むのが手軽だと思う。
R で Log-rank test を行うには、少なくとも以下のデータが dataframe に含まれる必要がある。
- 生存時間
- 打ち切りの有無
- 群 (上に書いたように 2 群が基本)
簡略化のため、3 個体 x 2 群でデータフレームの例を示しておく。念のため、作り方は次の通り。

データテーブルは以下の通り。
group | time | censor | ||
1 | A | 10 | 1 | |
2 | A | 11 | 1 | |
3 | A | 10 | 1 | |
4 | B | 19 | 1 | |
5 | B | 25 | 1 | |
6 | B | 23 | 0 | 0 が打ち切りを示す |
グループ B は A の約 2 倍長生きで、6 番の個体のみ打ち切りであったというデータである。このデータの並べ方は重要。この他、性別や年齢など関連するデータがあるなら、列を追加してもよい (2)。
このようなデータフレーム test がある状態で、以下のように survival パッケージを読み込み、ログランク検定をかける。
生存時間分析では、まず Surv 関数を使い、これを survdiff 関数で解析するという方法をとる。
survdiff(Surv(time, censor) ~ group, data = test)
以下の例では、いったん survdiff の結果を test_stat に格納し、test_stat と入力することで結果を表示させている。

なお、上の結果からわかるように、得られる検定統計量は chi square value である。統計検定の英語表現 のページにまとめたように、上記の Log-rank 検定の結果を paper に記載するときの正式な表記法は、Log-rank test, chi-square = 5.2, p = 0.02 のようになる。
また、coxph にすると Cox ハザードモデルでの解析が行える。
coxph(Surv(time, censor) ~ group, data = test)
R を使った生存曲線の作成

survdiff でなく survfit という関数を使ってこれをプロットすれば、Kaplan-Meier カーブを作ることができる。
描画データは test_fit$surv というカラムに保存されているので、これを表示すれば最終的な生存率が何%であったかを知ることができる。
広告
組み込みデータセットを使った Log-rank 検定
このページ によると、R で生存時間分析に適したデータセットは以下の 3 つである。
- MASS パッケージに含まれている gehan
- survival パッケージに含まれている leukemia
- survival パッケージに含まれている veteran
ここでは、veteran パッケージを使った例を示しておく。これは肺がん治療のデータを示したデータセットで、以下のような項目を含んでいる (2)。本当は 137 行あるが、1 から 10 行目のみ記載する。

- 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 が治療あり。
trt, time, status を使って解析する。
survdiff(Surv(time, status) ~ trt, data = veteran)

p = 0.9 なので、有意差なしという結果になる。グラフは以下の通り。線の色を変更するなど、グラフの見た目については plot 関数のページ を参照のこと。

広告
References
佐藤弘樹、市川度. 2013.
生存時間解析 について平易に書いた数少ない解説書。 統計のなかでも、生存時間解析はそれだけで 1 冊の本になるほど複雑なわりに、ANOVAや t 検定などと違い使用頻度が低いため、とっつきにくい検定である。 この本では、とくに |
|
- R で生存時間分析を行う. Link: Last access 2018/09/20.
- Veterans' Administration Lung Cancer study. Link: Last access 2021/07/05.
コメント欄
各ページのコメント欄を復活させました。スパム対策のため、以下の禁止ワードが含まれるコメントは表示されないように設定しています。レイアウトなどは引き続き改善していきます。「管理人への質問」「フォーラム」へのバナーも引き続きご利用下さい。
禁止ワード: http, the, м (ロシア語のフォントです)
|
|
このページにコメント
これまでに投稿されたコメント
Date | Name | Comment |
---|---|---|
2022-03-10 22:17:30.318102 |
ZAP |
|
2022-03-10 20:56:19.018345 |
ZAP |