
生存関数とハザード関数をやさしく解説!~統計検定準1級レベルを目指そう~
1. はじめに
はじめまして。当記事では、「生存解析」の基礎となる生存関数とハザード関数について、なるべくわかりやすく解説していきます。生存解析は医療分野の臨床研究や生命保険、さらには製品の故障率を分析する信頼性解析など、いろいろな場面で応用されています。
この記事のゴールは、下記のような方に「生存関数とハザード関数とは何なのか、どう役立つのか」をイメージしていただくことです。
統計検定準1級を勉強している
医療・製品信頼性・マーケティングなどで生存解析を使う可能性がある
「なんだか数式が出てきて難しそう…」と感じている
数式も出てきますが、なるべくかみ砕いて説明しますのでご安心ください。最後にはPythonを使った実装例もご紹介します。
もし、統計検定準1級の学習を本格的に始めたい方は、統計検定準1級ワークブックなども参考になるかと思います。わたしもこれを使って勉強しています。
2. 生存関数ってなに?
生存関数 $${S(t)}$$ は、「ある時点 $${t}$$ まで生存(故障せずに稼働)している確率」を表す関数です。数式で表すと下記のようになります。
$${\Large S(t)=P(T>t)=1-F(x)}$$
ここで$${T}$$ は「イベントが起こる時点」を指します。医療では患者さんの「死亡時刻」、製品の故障解析では「故障する時刻」などが典型的です。
2.1 生存関数のイメージ
たとえば1,000人の患者さんを観察して、半年後にどれくらい生存しているかを調べたいとします。半年($${t=0.5}$$年)経ってもイベント(死亡)が発生していない人の割合が0.8だとすると、
$${\Large S(0.5)=P(T>0.5)=0.8}$$
というイメージになります。もちろん、時間が経つほどこの数値は下がっていきます(誰かしら故障や死亡というイベントが起こるため)。
2.2 生存関数の特徴
常に1から0へ向かって減少する
時間が進むほど、何らかのイベントが発生する確率が高まる(または着実に起こり続ける)ことを直感的に示しています。
実際のデータから、この生存関数を推定することで「この時期に大きく下がる」「ほとんど横ばいだけど、ある時点で急に下がる」というようにリスクの変化を把握することができます。
3. ハザード関数ってなに?
次に登場するのがハザード関数(Hazard Function)です。
これは「ある時刻 $${t}$$ にまだ生存しているとき、その直後にイベントが起こる瞬間的なリスク」を表す関数です。数式で表すと以下のようなります。
$${\Large h(t) = \frac{f(x)}{1-F(x)}}$$
なぜこのような式で表されるのかは第5章の「ハザード関数の導出」の所で詳しく解説しています。
3.1 生存関数との関係
生存関数$${S(t)}$$との対応関係を式で書くと、
$${\Large h(t)=(-\log{S(t)})'}$$
という形になります。これは実際に $${\log{S(t})}$$を微分すれば簡単に導出できます。
$${\Large (-\log{S(t)})' = -\frac{S(t)'}{S(t)} = -\frac{(1-F(t))'}{1-F(t)}=\frac{f(t)}{1-F(t)}}$$
イメージとしては生存関数の値が一気に下がる(傾きが急になる)とハザード関数の値が大きくなるって感じですね。
4. 生存関数・ハザード関数の応用例
ここまで抽象的な話が続きましたが、実社会のどんな場面で利用されているのかを見ていきましょう。
4.1 医療・臨床試験
ある治療法Aを受けた患者さんと、治療法Bを受けた患者さんで「生存期間」にどのくらい差があるのかを比較するために、生存曲線の形状やハザード関数を見比べることがあります。
治療効果が持続しているときは、生存曲線が緩やかに減少し、ハザードも低め。
途中で治療効果が薄れると、そこからハザードが高まるため、生存関数が急に下がってきます。
4.2 製品の信頼性解析
家電などの製品寿命を調査するとき、メーカーは製品を一定数稼働させて故障データを取り、「初期不良時期はハザードが高い」「落ち着いている時期はハザードがほぼ一定」「経年で劣化しはじめるとハザードが上昇する」…といったパターンを把握します。
これを元に保証期間の設定や予防保守のタイミングを決めることもあるそうです。
4.3 マーケティング(顧客離脱率)
サブスクリプションサービスを利用している顧客が、「契約開始から何カ月目で解約しやすいか?」を見る際にも生存関数(継続率)とハザード関数(解約リスク)は応用できます。
5. ハザード関数の導出
それではハザード関数を導出していきましょう。ハザード関数が表すのは「ある時刻 $${t}$$ にまだ生存しているとき、その直後にイベントが起こる瞬間的なリスク」です。まずこれをそのまま数式に起こすと下記のようになります。
$${\Large h(t)=\lim\limits_{\Delta t→0}\frac{P(t\leq T \leq t+\Delta t | T≥t)}{\Delta t}}$$
ここから先は
¥ 100
この記事が気に入ったらチップで応援してみませんか?