Survival Analysis in Python
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
Step 1) Fit parametric models in lifelines
Step 2) Print and compare each model's AIC_
property
Step 3) The lowest AIC value is preferred
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()
: a built-in lifelines
function to automate AIC comparisons between parametric models.lifelines
.How to use it?
T
: durations, E
: censorshipbest_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
.Step 1) Fit parametric models in lifelines
.
Step 2) Plot the QQ plot of each model.
Step 3) The QQ plot closest to y = x
is preferred.
from lifelines.plotting import qq_plot
for model in [WeibullFitter(), LogNormalFitter(), LogLogisticFitter(), ExponentialFitter()]: model.fit(T, E) qq_plot(model)
plt.show()
Survival Analysis in Python