AVILEN 様 「生存時間解析~生存関数とハザード関数とその関係~」
https://ai-trend.jp/basic-study/survival-data-analysis/survival-function/
・生存時間データ解析とは、イベントまでの時間データ \(T\) に対する解析。
\(T\) は生存時間(死亡時刻・イベントが起きる時刻)を表す確率変数。
分布関数 \(\displaystyle F(t)=P(T<t)=\int_0^t f(u) du\) ( \(f(u)\) :死亡時刻の確率密度関数)
( グラフは通常の分布関数のグラフと同じになる)
・生存関数とは、被験者がある期間 t よりも長く生きる確率。
生存関数 \(\displaystyle S(t)=P(T\geq t)=1-F(t)=\int_t^{\infty}f(u) du\) (生存時間がt以上となる確率)
( \(S(t)=1-F(t)\) より、 \(S(t)\) のグラフは右下がりで0に収束することが分かる )
・ハザード関数:時点 t まで生存したという条件のもとで、その時間に死亡する瞬間確率
\(\displaystyle h(t)=\lim_{\delta t \to 0}\frac{P(t\leq T<t+\delta t|T\geq t)}{\delta t}\)
(離散型では、その年の初めに生存していた人数のうち、その年の終わりに死亡する人の割合 )
これは容易に調査できることを確認しておこう。
[生存関数とハザード関数の関係]
\(\begin{align}h(t)&=\lim_{\delta t \to 0}\frac{P(t\leq T<t+\delta t|T\geq t)}{\delta t}=\lim_{\delta t \to 0}\bigl\{\frac{P(t\leq T<t+\delta t)}{P(T\geq t)}\times\frac{1}{\delta t}\bigr\} \\&=\lim_{\delta t \to 0}\bigl\{\frac{F(t+\delta t)-F(t)}{P(T\geq t)}\times \frac{1}{\delta t}\bigr\}\\&=\lim_{\delta t \to 0}\bigl\{\frac{F(t+\delta t)-F(t)}{\delta t}\times \frac{1}{1-F(t)}\bigr\}\\&= \frac{F'(t)}{1-F(t)}=\frac{-S'(t)}{S(t)} \end{align}\)
\(\therefore h(t)= \dfrac{F'(t)}{1-F(t)} =\dfrac{-S'(t)}{S(t)}\)
分布関数、確率密度関数の代わりに生存関数・故障率関数や累積ハザード関数がよく使われる。
中央大学 長塚 豪己 様 http://www.ieice-hbkb.org/files/01/01gun_12hen_01.pdf 参照
ここで、累積ハザード関数は、
\(\displaystyle H(t)=\int_0^th(t)dt=-\log(1-F(t))=-\log{S(t)}\)
両辺を微分すると、 \(h(t)=-\dfrac{\mathrm{d}}{\mathrm{d}t}\{\log S(t)\}=-\dfrac{S'(t)}{S(t)}\)
これは微分方程式であり、ハザード関数が分かれば生存関数が分かることを意味する。
(瞬間死亡率から死亡年齢を推定できる)
[参考]バナナでもわかる話 様 「Rで行える生存解析」
https://www.bananarian.net/entry/survival-analysis
瞬間の条件確率により、次のように定義することもできる。
\(P(t\leq T\leq t+dt)=P(T\leq t+dt)- P(T\leq t)=f(t)dt\)
\(\displaystyle h(t)dt=\dfrac{f(t)dt}{\int_{t}^\infty f(x) dx}\) (瞬間に死亡する確率)条件確率
\(h(t)=\dfrac{f(t)}{\int_{t}^\infty f(x) dx}\) (瞬間死亡率)ハザード関数
よって、
\(h(t)=\dfrac{f(t)}{\int_{t}^\infty f(x) dx}=\dfrac{ \lim_{dt\to 0}P(t\leq T\leq t+dt)/dt}{\int_{t}^\infty f(x) dx}=\displaystyle \lim_{dt\to 0}\dfrac{P(t\leq T\leq t+dt|T\geq t)}{dt}\)
指数分布の生存関数とハザード関数
指数分布は計算機や空調設備などのシステムの故障発生などの事情が発生する時間間隔Tが従う分布である。
周期を \(\mu\) 、単位時間の発生回数を \(\lambda\) とすると、
\(\displaystyle P(T<t)=\int _0^t\dfrac{1}{\mu}e^{-\frac{x}{\mu}}dx=\int_0^t \lambda e^{-\lambda x }dx\)
分布関数 \(\displaystyle F(t)=\int_0^t \lambda e^{-\lambda x }dx=\left[-e^{\lambda x}\right]_0^t=-e^{-\lambda t}+1\) だから、
生存関数 \(S(t)=1-F(t)=e^{-\lambda t}\)
ハザード関数は、
\(h(t)=-\dfrac{S'(t)}{S(t)}=\dfrac{\lambda e^{-\lambda t}}{e^{-\lambda t}}=\lambda\) (一定)
瞬間故障率が一定なので、指数分布は無記憶性を持つ。
\(P(T>m+n|T>m)=\dfrac{P(T>m+n)}{P(T>m)}=\dfrac{e^{-\lambda (m+n)}}{e^{-\lambda m}}=e^{-\lambda n}=P(T>n)\)
指数分布はこのような無記憶性を持つ唯一の連続型確率分布である。
瞬間故障率が一定ということは理想的な状態であり、通常は劣化によって時間とともに瞬間故障率は上昇すると考えられる。このため、次のような分布を考える必要が生じる。
ワイブル分布
指数分布を一般化したものがワイブル分布
\(h(t)=\lambda p(\lambda t)^{p-1}\)
このとき、\(\displaystyle S(t)=\exp\left[-\int_0^t h(u)du \right]
=\exp\left[-\int_0^t\lambda p(\lambda u)^{p-1}du\right]
=\exp\left[(-\lambda t)^p\right]\)
実際のデータから、 \(\lambda ,p\) が推定され、それにより生存関数が求まる。
ハザード率 (離散の場合のハザード関数)
\(Pr(X = i)\) : \(i\) 歳で亡くなる確率( \(i\) は生存時間 \(\displaystyle \sum_{i=1}^{\infty} Pr(X=i)=1\) )
生存関数 \(S(i-1)=\displaystyle Pr(X\geq i) = \sum_{j\geq i} Pr(X=j)\) ( \(i\) 歳以降で亡くなる確率)
(少なくとも \((i-1)\) 歳までは生存している確率)
瞬間死亡率 \(h(i)=P(X=i | X\geq i) =\dfrac{P(X = i)}{P(X\geq i) }=\dfrac{P(X=i)}{S(i-1)}\) (ハザード率)
(寿命が \(i\) 以上のとき、ちょうど \(i\) 歳で亡くなる確率)
その年の初めに生存していた人数のうち、その年の終わりに死亡する人の割合ともいえる。
[注]何故、瞬間死亡率を考える必要があるか?
観察可能な瞬間死亡率から、観察不可能な余命を推測できる。
[離散の場合の生存関数の定義]
\(\displaystyle S(j)=Pr(X>j|X\geq i) = \prod_{k=i}^j (1-Pr(X=k | X\geq k))\)
特に、\(i=1\) の場合は、
生存確率 \(\displaystyle S(j)=Pr(X>j|X\geq 1) = \prod_{k=1}^j (1-Pr(X=k | X\geq k))\)
続く