書記が数学やるだけ#845 Cox比例ハザードモデル
生存時間解析でよく用いられるCox比例ハザードモデルを実装する。
問題
説明
比例ハザードモデルでは,共変量の単位増加による固有の効果は,ハザード率に対して乗法的に作用する。デイヴィッド・コックス卿は,比例ハザードの仮定が成り立つ(あるいは成り立つと仮定される)場合,ハザード関数を考慮せずに効果パラメータを推定することが可能であると述べ,Cox比例ハザードモデルを示した。
解答
比例ハザード性は,ハザード関数の比は時間tに依存しないことから示される。また,生存関数の2重対数は線形モデルで表すことができる。
今回用いるデータセットの「rossi」では,1970年に米国メリーランド州の刑務所から釈放され,釈放後に一年間追跡調査された受刑者を「財政援助を受けたか否か」で分類し,「釈放後の最初の逮捕までの週数(week)」を生存関数,「逮捕の有無arrest」を状態変数,「過去の受刑回数prio」など7項目を共変数としている。
from lifelines import CoxPHFitter
from lifelines.datasets import load_rossi
rossi = load_rossi()
rossi
それではCox比例ハザードモデルを組んでいく。
cph = CoxPHFitter()
cph.fit(rossi, duration_col='week', event_col='arrest')
cph.print_summary()
係数を可視化することで,「過去の受刑回数prio」が有意であることがわかる。
cph.plot()
実際にprioごとに生存関数をプロットすると,その共変量としての効果がわかる。
cph.plot_partial_effects_on_outcome(covariates='prio', values=[0, 2, 4, 6, 8, 10], cmap='coolwarm')
本記事のもくじはこちら: