Я пытаюсь предсказать оценку выживаемости и LTV для договорных и дискретных полисов (в страховании) в python.Я просмотрел количество сайтов, но смог найти много примеров только для неконтрактных (в рознице).
Я использовал следующий код:
from lifelines import CoxPHFitter
#After all feature selection and EDA
cph_train, cph_test = train_test_split(features, test_size=0.2)
cph = CoxPHFitter()
cph.fit(cph_train, 'TIME', event_col='EVENT')
cph.print_summary()
Где TIME - количество дней между полисомдата взятия и текущая дата для клиентов ACTIVE и между датой принятия политики и датой сдачи для неактивных клиентов.
EVENT - это показатель того, является ли клиент ACTIVE или нет ACTIVE.
После подгонки полученной моделисоответствие 0,7 (что, по моему мнению, в порядке).
С чего мне начать, чтобы получить оценку выживаемости для клиентов ACTIVE и ценности в течение жизни (CLTV)?По сути, мне нужно предсказать, кто является ценными клиентами, которые останутся с компанией надолго.
Я добавил код, прочитав несколько постов и предложений от Cam.
censored_subjects = features.loc[features['EVENT'] == 1] #Selecting only the ACTIVE ones
unconditioned_sf = cph.predict_survival_function(censored_subjects)
conditioned_sf = unconditioned_sf.apply(lambda c: (c / c.loc[features.loc[c.name, 'TIME']]).clip_upper(1))
predictions_75 = qth_survival_times(.75, conditioned_sf)
predictions_50 = qth_survival_times(.50, conditioned_sf)
values = predictions_75.T.join(data[['PREAMT','TIME']])
values50 = predictions_50.T.join(data[['PREAMT','TIME']])
values['RemainingValue'] = values['PREAMT'] * (values[0.75] - values['TIME'])
Итак, что означает выход:
0.5 PREAMT TIME
--- Число в столбце 0.5 обозначает продолжительность, на которую есть 50% -ный шанс на закрытие?
0.75 PREAMT TIME
--- Аналогичным образом 0,75 обозначает продолжительность, на которую существует 75% -ная вероятность быть закрытой?
RemainingValue
--- Это оставшаяся сумма, подлежащая выплате?
И что дальшешаг после этого?