MENU

R と EZR でカプランマイヤー曲線を書く方法

カプランマイヤー曲線の書き方

R と EZR の方法。

>>もう統計で悩むのは終わりにしませんか? 

↑期間・数量限定で無料プレゼント中!

目次

カプランマイヤー曲線の書き方説明のためのサンプルデータ

カプランマイヤー曲線を描きたい場合、イベント発生のデータとイベント発生までもしくは観察終了までの時間のデータが必要。

イベント発生データは、イベントが起きた人は1、起きなかった人は0というデータ。

イベント発生までの時間もしくは観察終了までの時間は日でも週でも月でも年でもOK。

例えば、観察期間を days, イベント発生データを event とする。

データセット名は dat とする。

days <- c(53, 93, 109, 112, 164, 201, 273, 338,
rep(168, 107), rep(364, 385))
event <- c(rep(1, 8), rep(0, 107), rep(0, 385))
dat <- data.frame(days, event)

カプランマイヤー曲線を書く基礎知識

まず、survivalパッケージを呼び出す。

Surv()で、イベントと時間から生存時間データと認識させる。

survfit()で、type=”kaplan-meier”と指定して、カプランマイヤー曲線データを作成する。

One-armの試験で一本のカーブを描く場合は、survfit()中のformulaで、~のあとに1を書く。

グループ別のカーブの場合は~の後にグループ変数を書く。

fun=’event’はイベント発生割合を書くときに指定が必要なオプション。

fun=’event’を指定しなければ、生存割合が描かれる。これが標準。

fun=’event’を指定すると、累積のイベント発生割合のグラフが描かれる。

スクリプトは以下の通り。

library(survival)
KM1 <- Surv(time=dat$days, event=dat$event)
sfit1 <- survfit(KM1~1, type="kaplan-meier")
plot(sfit1, las=1, ylim=c(0.95,1), xlab="Days",
ylab="Event-free Rate")
plot(sfit1, fun='event', las=1, ylim=c(0,0.03),
xlab="Days", ylab="Cumulative incidence")

>>もう統計で悩むのは終わりにしませんか? 

↑1万人以上の医療従事者が購読中

カプランマイヤー曲線の書き方:生存割合の場合

fun=’event’を指定しなければ、生存割合が描かれる。

実線がカプランマイヤー推定値で、点線が95%信頼区間を示す。

plot(sfit1, las=1, ylim=c(0.95,1), xlab="Days",
ylab="Event-free Rate")

打ち切り例のマークを追加するには、mark.time=Tを使う。

TはTRUEの省略形

plot(sfit1, las=1, ylim=c(0.95,1), xlab="Days",
ylab="Event-free Rate", mark.time=T)

カプランマイヤー曲線の書き方:生存割合の場合( EZR 編)

EZRで生存曲線を描いてみると以下のようになる。

以下を R スクリプト窓にコピペして、全行を実行。

days <- c(53, 93, 109, 112, 164, 201, 273, 338,
rep(168, 107), rep(364, 385))
event <- c(rep(1, 8), rep(0, 107), rep(0, 385))
dat <- data.frame(days, event)

「統計解析」メニューから「生存期間の解析」→「生存曲線の記述と群間の比較(Logrank検定)」を選択。

観察期間の変数は days をクリックして選択。

イベントは、eventをクリックして選択。

「95%信頼区間を表示する」にチェック。

Y軸の範囲に0.95, 1.0を入れる。

OKをクリック。

するとカプランマイヤー曲線が描かれる。

At riskの人数表示まで標準で行ってくれるのでとてもきれいなグラフになっている。

カプランマイヤー曲線の書き方:累積イベント割合の場合

fun=’event’を指定すると、累積イベント割合が描かれる。

plot(sfit1, fun='event', las=1, ylim=c(0,0.03),
xlab="Days", ylab="Cumulative incidence")

累積イベントのグラフにも、mark.time=Tで、打ち切り例のマークを加えることができる。

plot(sfit1, fun='event', las=1, ylim=c(0,0.03), xlab="Days",
ylab="Cumulative incidence", mark.time=T)

カプランマイヤー曲線の書き方:累積イベント割合の場合( EZR 編)

EZRで累積イベントグラフを描くために、「統計解析」から「生存期間の解析」→「累積発生率(競合イベントを含む)の記述と群間の比較(Gray検定)」を選択。

いったんデフォルト(Y軸の範囲は0, 0.03に設定)で描いた後、スクリプト枠内で、conf.int=FALSEをTRUEへ変更とlegendの場所をtoprightからtopに変更して再度実行すると、以下のようになる。

このときのスクリプト変更部分を抜粋すると以下の通り。

# confint=FALSE を TRUE へ変更
plot(ci, fun="event", bty="l", conf.int=TRUE, col=1,
lty=1, lwd=1, ylim=c(0,0.03), xlab="days",
ylab="Cumulative incidence", mark.time=TRUE)
# legend("topright", ...) から legend("top", ...) に変更
legend("top", compevents, col=1, lty=1, lwd=1, box.lty=0,
title="Competing events")

カプランマイヤー曲線の書き方:EZR 編 【動画】

EZRでカプランマイヤー曲線を簡単に描く方法を紹介。

よかったらどうぞ。

EZRとは?という方は、こちらが公式ページ。

http://www.jichi.ac.jp/saitama-sct/SaitamaHP.files/statmed.html

まとめ

カプランマイヤー曲線を R で描くには、survivalパッケージの Surv() と survfit() を使う。

生存割合の曲線のほか、累積イベント割合の曲線も描ける。

EZRでカプランマイヤー曲線や累積イベントグラフを描くこともできる。

おすすめ書籍

EZR公式マニュアル

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

リサーチクエスチョン探し?データ分析?論文投稿?、、、で、もう悩まない!

第1章臨床研究ではなぜ統計が必要なのか?計画することの重要性
  • 推定ってどんなことをしているの?
  • 臨床研究を計画するってどういうこと?
  • どうにかして標本平均を母平均に近づけられないか?
第2章:研究目的をどれだけ明確にできるのかが重要
  • データさえあれば解析でどうにかなる、という考え方は間違い
  • 何を明らかにしたいのか? という研究目的が重要
  • 研究目的は4種類に分けられる
  • 統計専門家に相談する上でも研究目的とPICOを明確化しておく
第3章:p値で結果が左右される時代は終わりました
  • アメリカ統計協会(ASA)のp値に関する声明で指摘されていること
  • そうは言っても、本当に有意差がなくてもいいの…?
  • なぜ統計専門家はp値を重要視していないのか
  • 有意差がない時に「有意な傾向があった」といってもいい?
  • 統計を放置してしまうと非常にまずい
第4章:多くの人が統計を苦手にする理由
  • 残念ながら、セミナー受講だけで統計は使えません。
  • インプットだけで統計が使えない理由
  • どうやったら統計の判断力が鍛えられるか?
  • 統計は手段なので正解がないため、最適解を判断する力が必要
第5章:統計を使えるようになるために今日から何をすれば良いか?
  • 論文を読んで統計が使えるようになるための5ステップ
第6章:統計を学ぶために重要な環境
  • 統計の3つの力をバランスよく構築する環境

以下のボタンをクリックして、画面に出てくる指示に従って、必要事項を記入してください。

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

統計解析が趣味

コメント

コメント一覧 (3件)

コメントする

目次