生存時間分析
Survival Analysis ・ せいぞんじかんぶんせき
イベントが起きるまでの時間を、打ち切りデータを含めて扱う分析の枠組み
✦ 30秒で試す — 航海残っている人が半分を切っても、生存率はまだ半分以上あるこの計算の生存率は、正しい値と比べて?予想してみる概要
生存時間分析は、「あるイベントが起きるまでの時間」を分析対象とする統計手法の枠組みです。名前は医学の「患者の生存期間」に由来しますが、イベントは死亡に限りません。機械が故障するまでの時間、サブスクリプションの顧客が解約するまでの期間、失業者が再就職するまでの日数 — 「いつ起きるか」が関心事なら、すべて生存時間分析の守備範囲です。
この分析を特徴づけるのが「打ち切り(censoring)」の扱いです。観察期間が終わってもイベントが起きていない対象 — 研究終了時点で生存している患者、まだ解約していない顧客 — について、私たちは「少なくともこの時点まではイベントが起きなかった」ことしか知りません。この不完全な情報を捨てずに正しく取り込むための道具立てが、生存時間分析を独立した分野にしています。
中心となる概念は2つです。生存関数 S(t) は「時点 t までイベントが起きない確率」を表す曲線で、ハザードは「その時点まで無事だった対象に、次の瞬間イベントが起きる勢い」を表す瞬間的な発生率です。同じ現象をこの2つの視点から眺めることで、「半数が解約するのは何か月目か」「故障の危険が高まるのはいつか」といった問いに答えられます。
なぜ生まれたか
原型は17世紀の生命表 — 年齢ごとの死亡率を集計して保険料や年金を設計する実務 — にさかのぼりますが、現代的な手法が急速に発展したのは20世紀半ば、臨床試験の時代です。新しい治療法の延命効果を調べたいのに、試験終了時点で多くの患者は幸いにも存命であり、また転院などで追跡できなくなる患者も出ます。こうした打ち切りデータを「平均生存期間の計算から除外する」と生存期間の長い人を系統的に捨てることになり、「イベント発生とみなす」のは明らかな誤りです。どちらに倒しても結論が歪む — この板挟みが、打ち切りを正面から扱う理論を必要としました。
1958年、カプランとマイヤーが打ち切りを含むデータから生存関数を推定するカプラン・マイヤー法を発表し、この問題に決定的な解を与えます。さらに1972年、コックスが「ハザードの形そのものは特定せず、要因がハザードを何倍にするかだけをモデル化する」比例ハザードモデルを提案し、複数の要因の影響を同時に評価できるようになりました。この2つの発明は医学統計で最も引用される仕事に数えられ、生存時間分析を臨床試験の標準言語に押し上げました。
詳細
打ち切りという固有の難しさ
生存時間データの1件は「観察された時間」と「その時点でイベントが起きたか、打ち切られたか」のペアで表されます。最も典型的な右側打ち切りは、観察がイベントより先に終わってしまうケースです。打ち切りは欠測の一種とも言えますが、「値が丸ごと分からない」のではなく「真の値がこの時点より大きいことは分かる」という部分情報を持つ点で、通常の欠測データとは扱いが異なります。多くの手法は「打ち切りの発生はイベントの起きやすさと無関係」という独立打ち切りの仮定に依存しており、たとえば「悪化した患者ほど追跡から脱落しやすい」状況ではこの仮定が崩れ、生存率を過大評価してしまいます。
カプラン・マイヤー法 — 生存曲線をデータから描く
カプラン・マイヤー法は、確率分布の形を仮定しないノンパラメトリックな方法で、生存関数を階段状の曲線として推定します。考え方は条件付き確率の積み重ねです。イベントが起きた各時点で「その時点まで残っていた人のうち、生き残った割合」を計算し、それを順に掛け合わせていきます。時点 t_i でリスク集合(その直前までイベントも打ち切りも起きていない人)が n_i 人、そのうち d_i 人にイベントが起きたなら、生存率は S(t) = (1 − d_1/n_1) × (1 − d_2/n_2) × … と更新されます。打ち切られた人は、打ち切り時点までは分母(リスク集合)に含まれ、それ以降は静かに外れる — こうして部分情報が無駄なく活かされます。打ち切りが起きた後は分母が小さくなるので、以後の1人のイベントで下がる段は大きくなります。曲線の右端ほど少人数で推定されていて不確かなので、右端の急な段差を読み込みすぎないことが大切です。
時間を少しずつ進めながら、この計算を追ってみてください。打ち切りを「死亡とみなす」「除外する」「最後まで生存とみなす」といった素朴な扱いにすると、曲線がどちらへ偏るかも比べられます。
上の横棒が 20 人の患者の追跡期間です。金の時間カーソルをつかんで右へ動かす(または「再生」)と、下の生存曲線が描かれていきます。×(死亡)と ○(打ち切り)で何が違うかを見てください。
横棒 = 各患者の追跡期間(× = 死亡、○ = 打ち切り)。明るい棒 = いまリスク集合にいる人。下 = カプラン・マイヤー生存曲線
曲線が生存率50%を下回る時点が「生存期間の中央値」で、打ち切りがあっても定義できる代表値として、平均よりも好んで使われます(平均は、打ち切られた人の本当の生存時間が分からない限り計算できません)。ただし図の治療群のように曲線が最後まで50%を下回らなければ、中央値は「未到達」としか言えません。2群の生存曲線に差があるかどうかは、各イベント時点で「期待されるイベント数」と観測数のずれを積み上げるログランク検定という仮説検定で調べるのが定番です。分布の形を仮定しないノンパラメトリック検定の一種で、比例ハザードに近い状況で最もよく差を検出します。
ハザードという見方
生存関数が「累積の結果」を示すのに対し、ハザード関数は「各時点での危険の勢い」を示します。ハザードが時間によらず一定という最も単純な仮定は、「いつ壊れるかが過去の稼働時間に依存しない」という無記憶性を意味し、このときの生存時間は指数分布に従います。しかし現実のハザードは一定とは限りません。人間の死亡率は乳児期に高く、その後下がり、加齢とともに再び上がる「バスタブ曲線」を描きますし、機械の故障率も初期不良と経年劣化で両端が高くなりがちです。ハザードの時間変化を柔軟に表せるワイブル分布は、指数分布を「ハザードが時間とともに増える/減る」方向に拡張したもので、信頼性工学の標準的な道具です。
Cox比例ハザードモデル — 要因の影響を測る
「年齢や治療法は生存時間にどう効くのか」という要因分析には、Cox比例ハザードモデルを使います。このモデルは、ハザードを「時間だけで決まる基準ハザード × 説明変数で決まる倍率」に分解し、基準ハザードの形には一切仮定を置きません。分布の形を決めずに係数だけを推定できるこの「セミパラメトリック」という設計が画期的で、結果はハザード比 — たとえば「喫煙者のハザードは非喫煙者の2倍」— として解釈できます。回帰係数の指数がそのまま倍率として読める構図は、ロジスティック回帰のオッズ比とよく似ており、実際 Cox 回帰は「時間の情報を持った、打ち切りに強い回帰分析」として使われます。ただし「ハザード比が時間によらず一定」という比例ハザード性の仮定が名前の通り核心にあり、生存曲線が途中で交差するようなデータでは仮定が崩れるため、残差による診断や層別化での対処が必要です。なお、生存時間に特定の分布を仮定して回帰するパラメトリックな流儀もあり、これは一般化線形モデルに近い発想の拡張です。
実務での使いどころ
医学以外での代表的な応用が、顧客の解約分析(チャーン分析)です。「契約から t か月後まで継続している確率」はまさに生存関数で、現役顧客はすべて打ち切りデータとして自然に扱えます。「解約したか否か」の二値でロジスティック回帰を行うより、「いつ解約しやすいか」まで分かるぶん情報が豊かで、更新月の直前にハザードが跳ね上がる、といった時間構造も捉えられます。ほかにも、機械・部品の寿命予測(信頼性工学ではワイブル解析の名で定着)、従業員の離職分析、Webサービスのユーザー定着分析など、「時間とともに脱落していく集団」を扱う場面全般で使われています。
落とし穴 — 打ち切りの扱いを誤ると全部歪む
最大の落とし穴は、冒頭の課題そのもの — 打ち切りを不適切に扱うことです。打ち切りデータを除外して「解約済み顧客だけの平均継続期間」を計算すると、長く続いている優良顧客を系統的に無視するため、継続期間を大幅に過小評価します。また、追跡脱落がイベントの起きやすさと相関している場合(独立打ち切りの崩れ)は推定が偏ります。脱落した人が「残った人とは違う種類の人」になるという点で、これは選択バイアスの一種です。さらに医学研究では、「イベントより先に別の結果(他の死因など)が起きてイベント自体が起こり得なくなる」競合リスクの存在にも注意が必要です。競合リスクを打ち切りとして扱うと、1 − KM 曲線は「そのイベントが起きる確率」を過大に見積もります。
観察の始まり方にも罠があります。「生き延びた人だけが観察に入る」ことで生じる生存者バイアスと関連の深いのが、不死時間バイアス(immortal time bias)です。たとえば「退院後に薬を処方された人」を処方群とし、退院時点から追跡すると、処方されるまでの期間は処方群にとって「死ぬはずのない時間」(死んでいたら処方群に入れない)になり、薬に効果がなくても処方群の生存が長く見えます。群分けは追跡開始の時点で確定させる、処方を時間とともに変わる説明変数として扱う、ある時点で生存している人だけを比べるランドマーク解析を使う、といった設計で防ぎます。時間のデータを見たら、まず「誰がいつから観察され、誰がどう観察から外れたのか」を図に描いてみる — それが生存時間分析の第一歩です。
試問
20人の患者を追跡したデータです。途中で亡くなった人(×)のほか、転居や研究期間の終了で追跡が途切れた人(○、打ち切り)もいます。時間カーソルを動かしながら、その時点でまだ追跡中の人数(リスク集合)と、カプラン・マイヤー法で推定した生存率を見比べてください。
上の横棒が 20 人の患者の追跡期間です。金の時間カーソルをつかんで右へ動かす(または「再生」)と、下の生存曲線が描かれていきます。×(死亡)と ○(打ち切り)で何が違うかを見てください。
横棒 = 各患者の追跡期間(× = 死亡、○ = 打ち切り)。明るい棒 = いまリスク集合にいる人。下 = カプラン・マイヤー生存曲線
