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(): 모수 모델 간 AIC 비교를 자동화하는 lifelines 내장 함수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