Pythonで学ぶSurvival Analysis
Shae Wang
Senior Data Scientist

from lifelines import WeibullFitter
from lifelines import ExponentialFitter
from lifelines import LogNormalFitter
from lifelines import LogLogisticFitter
from lifelines import GeneralizedGammaFitter
手順1)lifelinesでパラメトリックモデルを当てはめる
手順2)各モデルのAIC_を出力して比較
手順3)AICが最小のモデルを選ぶ
from lifelines import WeibullFitter,
ExponentialFitter,
LogNormalFitter
wb = WeibullFitter().fit(D, E)
exp = ExponentialFitter().fit(D, E)
log = LogNormalFitter().fit(D, E)
print(wb.AIC_, exp.AIC_, log.AIC_)
215.9091 216.1183 202.3498
find_best_parametric_model():lifelines内の関数。パラメトリックモデル間のAIC比較を自動化lifelinesで利用可能な各パラメトリックモデルを順に試す使い方
T: 期間、E: 打ち切りbest_model, best_aic_ = find_best_parametric_model(event_times=T,
event_observed=E,
scoring_method="AIC")
print(best_model)
<lifelines.WeibullFitter:"Weibull_estimate",
fitted with 686 total observations, 387 right-censored observations>
y = x上に並ぶ
手順1)lifelinesでパラメトリックモデルを当てはめる
手順2)各モデルのQQプロットを描く
手順3)y = xに最も近いQQプロットを選ぶ
from lifelines.plotting import qq_plotfor model in [WeibullFitter(), LogNormalFitter(), LogLogisticFitter(), ExponentialFitter()]: model.fit(T, E) qq_plot(model)plt.show()

Pythonで学ぶSurvival Analysis