カプラン・マイヤー生存分析シミュレーター 戻る
統計解析

カプラン・マイヤー生存分析シミュレーター

打ち切りデータを含む生存時間データから、カプラン・マイヤー法で生存曲線を推定するツールです。対象者数・真の生存中央値・打ち切り割合を変えると、特徴的な階段状の生存曲線、評価時点の生存率、リスク集合の推移がリアルタイムで分かります。

パラメータ設定
対象者数
追跡する対象(患者・部品など)の総数
真の生存中央値
データを生成する母集団の真の中央生存期間
打ち切り割合
%
事象を観察できずに追跡が終わる対象の割合
評価時点
生存率 S(t) を読み取る時刻
乱数シード
同じシードなら毎回同じデータセットを生成(再現性)
計算結果
イベント数 (件)
打ち切り数 (件)
評価時点の生存率 S(t) (%)
KM推定の生存中央値 (月)
評価時点のリスク集合 (人)
打ち切り率(実績)(%)
カプラン・マイヤー生存曲線(アニメーション)

縦軸は生存確率(1→0)、横軸は時間。曲線は事象が起きた時点でのみ階段状に下がり、小さな縦の目盛りが打ち切りの観測時刻を表します。評価時点のマーカーが S(t) を示します。

KM生存曲線 S(t)
リスク集合の推移 n(t)
理論・主要公式

$$\hat S(t)=\prod_{t_i\le t}\left(1-\frac{d_i}{n_i}\right)$$

カプラン・マイヤー推定量。事象が起きた各時刻 $t_i$ で、その時点の事象数 $d_i$ をその直前のリスク集合人数 $n_i$ で割り、$(1-d_i/n_i)$ を掛け合わせます。曲線は事象時刻でのみ下に下がり、打ち切りはリスク集合 $n_i$ を減らすだけで段差は作りません。

$$\lambda=\frac{\ln 2}{m},\qquad T=-\frac{\ln(1-u)}{\lambda}$$

データ生成の指数分布モデル。真の生存中央値 $m$ から事象率 $\lambda$ を求め、一様乱数 $u\in(0,1)$ を逆関数法で事象時刻 $T$ に変換します。

カプラン・マイヤー法とは

🙋
「生存分析」って、医学の論文でよく見る、だんだん下がっていく階段みたいなグラフのことですか?あれ、ただの折れ線グラフと何が違うんですか?
🎓
そう、あの階段グラフがまさにカプラン・マイヤー曲線だ。生存分析が扱うのは「ある事象が起きるまでの時間」。患者の再発、機械の故障、契約者の解約…なんでもいい。普通の平均と違うのは「打ち切り」というやっかいな問題があることなんだ。これをうまく処理するのがカプラン・マイヤー法の肝だよ。
🙋
「打ち切り」?聞いたことない言葉です。それは何ですか?
🎓
ざっくり言うと「最後まで見届けられなかった人」のことだ。たとえば3年間の追跡研究で、ある患者は2年目に引っ越して連絡が取れなくなった。再発したかどうかは分からない。でも「少なくとも2年は再発しなかった」という情報は持っている。これを捨てるのはもったいないし、かといって再発したことにもできない。左の「打ち切り割合」を上げると、そういう人が増えていくよ。
🙋
なるほど…じゃあカプラン・マイヤー法は、その中途半端な情報をどう使うんですか?
🎓
うまいんだ。曲線を一気に推定するんじゃなくて、事象が起きた瞬間だけに注目する。その時刻に「その瞬間を生き延びる確率」を、生き延びた人数 ÷ 直前にリスクのあった人数、で計算する。そしてそれを次々と掛け算していく。これが $\hat S(t)=\prod(1-d_i/n_i)$ の意味だよ。打ち切られた人は、観察できていた期間だけ「リスク集合の分母」に貢献して、その後は静かに抜けていく。段差は作らないんだ。
🙋
だから事象が起きたところでだけカクッと下がるんですね。打ち切りのところに小さい縦線があるのは何ですか?
🎓
それが打ち切りの印(チックマーク)だ。曲線は下がらないけど、そこで1人リスク集合から抜けたことを示している。後半でリスク集合が小さくなると、たった1人の事象で曲線が大きくガクンと落ちるようになる。下の「リスク集合の推移」グラフを見て。曲線の終わりのほうは人数が少なくて、推定が不安定になっているのが分かるはずだ。
🙋
中央値が「未到達」って出ることがありますね。これはエラーですか?
🎓
エラーじゃない、むしろ正直な答えだ。生存中央値は「生存率が初めて50%を切る時刻」。でも追跡期間が短かったり打ち切りが多かったりすると、観察している間に曲線が0.5まで下がりきらないことがある。そのとき「中央値は決められません」と正直に言うのが「未到達」だ。実際の臨床試験でも、予後の良い治療群でよく出る表示だよ。

よくある質問

カプラン・マイヤー法は、ある事象(患者の再発、機械の故障、顧客の解約など)が起きるまでの時間を、打ち切りデータを含むデータから推定する方法です。生存曲線を一度に推定するのではなく、実際に事象が起きた各時点で「その瞬間を通過できる条件付き確率」を計算し、それらを次々と掛け合わせて積み上げます。結果は事象が起きた時点でのみ下に下がる、特徴的な階段状の曲線になります。1958年にエドワード・カプランとポール・マイヤーが発表しました。
打ち切りとは、ある対象を一定期間追跡したが事象が起きないまま観察が終わってしまった状態です。研究期間が終了した、患者が転居して連絡が取れなくなった、保証期間が満了した、などが典型例です。打ち切られた対象は「少なくともこの時点までは事象が起きなかった」という情報を持つため無視できませんが、事象が起きたとみなすこともできません。カプラン・マイヤー法は、各対象を実際に観察できた期間だけリスク集合に含めることで、この情報を正しく扱います。
生存中央値は、KM推定の生存率 S(t) が初めて 0.5 以下に下がる事象時刻として定義されます。観察期間が短い、打ち切りが多い、真の生存期間が長い、といった場合には、追跡している間に S(t) が 0.5 まで下がらないことがあります。このとき中央値は計算できず「未到達」と表示します。これはバグではなく、データから中央値を確定できないという事実を表しています。より長い追跡やより多くの対象者が必要というサインです。
リスク集合とは、ある時点でまだ事象も打ち切りも起きておらず、これから事象が起きうる対象の集まりです。カプラン・マイヤー推定では、各事象時刻でその直前のリスク集合の人数 n を分母に使って条件付き生存確率 1−d/n を計算します。時間が進むにつれて事象や打ち切りで対象が抜け、リスク集合は階段状に減っていきます。曲線の後半でリスク集合が小さくなると、生存率の推定は1人の事象で大きく動き、不確実性が増します。

実世界での応用

医学・臨床試験:カプラン・マイヤー法が最も多く使われる分野です。新しい抗がん剤の治験では、治療群と対照群の生存曲線を並べて描き、再発までの期間や全生存期間を比較します。論文の図でおなじみの「中央値○○か月」「○年生存率○○%」という数値は、まさにこの曲線から読み取られます。打ち切りが正しく扱われていない解析は、規制当局の審査で通りません。

信頼性工学・寿命試験:機械部品や電子機器の寿命試験では、決められた試験時間内に故障しなかったサンプルが必ず出ます。これも打ち切りです。カプラン・マイヤー曲線で「故障せず生き残っている割合」を時間の関数として描き、保証期間の設定や交換時期の予測に使います。ベアリングや電池、半導体の寿命評価で標準的な手法です。

顧客解約(チャーン)分析:サブスクリプション事業では「契約者がいつ解約するか」が経営の核心です。観察時点でまだ契約中の顧客は「少なくともここまでは続けた」という打ち切りデータになります。生存分析で解約までの時間を推定し、リテンション施策の効果を曲線の比較で評価します。事象を「解約」と読み替えるだけで、医学と同じ数式がそのまま使えます。

その他の時間-事象データ:失業期間(再就職までの時間)、ローンの債務不履行、機械学習モデルの予測対象としての離脱時間など、「何かが起きるまでの時間」と「まだ起きていない打ち切り」が混在するあらゆるデータに適用できます。共通点は、観察を途中で打ち切られた個体の情報を、観察できた範囲だけ正しく使い切るという考え方です。

よくある誤解と注意点

まず最大の誤解が、「打ち切られた対象をデータから捨ててしまう」ことです。事象が観察できなかったからといって対象を除外すると、追跡を完遂できた人だけが残り、生存率を系統的に過大評価または過小評価する深刻なバイアスが生じます。カプラン・マイヤー法の価値は、まさに打ち切られた対象を「観察できた期間だけリスク集合に含める」ことで情報を捨てずに使い切る点にあります。打ち切りデータを削除した平均生存期間には何の意味もありません。

次に、「曲線の終わりの部分を信用しすぎる」こと。生存曲線の後半は、リスク集合がごく少人数になっています。たった1人の事象で曲線が10%も20%も急落することがあり、その段差は統計的にはほとんど意味がありません。論文では曲線の下にリスク集合の人数を時刻ごとに併記するのが作法で、それを見ずに「5年生存率が高い/低い」と語るのは危険です。本ツールの「リスク集合の推移」グラフは、まさにこの注意を可視化しています。

最後に、「打ち切りは事象と無関係に起きる」という前提(無情報打ち切り)を忘れることです。カプラン・マイヤー法は、打ち切られる理由が予後と独立であることを仮定しています。もし「具合が悪くなった患者ほど脱落しやすい」なら、この仮定は崩れ、生存率は楽観的に偏ります。本シミュレーターのデータ生成は無情報打ち切りを満たしていますが、現実のデータでは「なぜ打ち切られたのか」を必ず吟味する必要があります。

使い方ガイド

  1. 対象患者数(nNum)と観察期間(nRange月)を入力し、追跡対象の母集団を設定します
  2. イベント数(eNum)と発生時期の分散範囲(eRange)を指定し、観察期間中に記録されるイベント(死亡・再発)の発生パターンを決定します
  3. 打ち切り数(cNum)と打ち切り時期の分散範囲(cRange)を入力して、転居・追跡不可などによる打ち切りデータを反映させます
  4. シミュレーション実行後、KM推定曲線が階段状に描画され、各時点でのリスク集合、生存率S(t)、生存中央値が自動計算されます

具体的な計算例

肺がん患者100名を36ヶ月追跡する場合:観察対象100名、追跡期間36ヶ月、イベント数65件(12ヶ月内分散)、打ち切り数15件(24ヶ月内分散)と設定すると、12ヶ月時点で生存率S(t)=87.5%、24ヶ月時点でS(t)=62.3%、生存中央値は18.5ヶ月と算出されます。評価時点のリスク集合は20名となり、打ち切り率は15%です。

実務での注意点