カプランマイアーから情報を取り出す(生存時間解析)

カプランマイアーでつくったモデルから可視化や予測などの情報を取り出します。

可視化

from lifelines import KaplanMeierFitter
from lifelines.datasets import load_waltons
waltons = load_waltons()

kmf = KaplanMeierFitter(label="waltons_data")
kmf.fit(waltons['T'], waltons['E'])
kmf.plot()

f:id:esu-ko:20200826214348p:plain

▼こちらにも書いた、基本的なモデルの構築です。 esu-ko.hatenablog.com

滑らかにした生存関数はsurvival_function_で取得でき、そのままplotもできます。

kmf.survival_function_
#timeline  
#0.0   1.000000
#6.0   0.993865

kmf.survival_function_.plot()
kmf.plot()

f:id:esu-ko:20200826214524p:plain

対して、plot_cumulative_densityで、t離脱の残存が増えていき、1にたどり着くグラフがかけます。

kmf.plot_cumulative_density()

f:id:esu-ko:20200826214601p:plain

モデルの情報の取得

モデル化したもの通しを比較したい時に、
median_survival_time_で残存が半減する期間を、percentileで指定した割合になる期間を取得できます。

kmf.median_survival_time_
kmf.percentile(0.75)

各個体の経過期間を与えることで、次期まで残る期間を得ることができます。

kmf.predict([6,7,7])

また、ある個体が、その期間からN期先まで残存する確率を出すには、各期間をかけあわせます。

pred_start = 6
pred_end = 12
pred_dur = range(pred_start,pred_end + 1)

kmf.predict(pred_dur).prod()