Survival analysis на собеседовании Data Scientist
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Зачем разбирать на собесе
Survival analysis — мощная техника для time-to-event задач. На собесе DS: «churn prediction», «censored data», «Kaplan-Meier».
Censored data
Главный challenge survival analysis. Когда event не произошёл (ещё) на момент observation.
Right-censored. Самый частый. Subject closed observation до event.
User signed up Jan 1, observed until June 30.
- Event (churn) happened Mar 15 → uncensored, time = 73 days.
- No churn until June 30 → censored, time = 180 days (event может быть позже).Считать censored как event = error. Cтандартная regression / classification искажена.
Kaplan-Meier curve
Non-parametric estimate survival function S(t) = P(time > t).
Алгоритм.
- Sort events by time.
- На каждом event time:
- n = at-risk (alive до этого момента).
- d = events at этом времени.
- S(t) = S(t-1) × (1 - d/n).
- Censored — exit risk set без event.
from lifelines import KaplanMeierFitter
kmf = KaplanMeierFitter()
kmf.fit(durations, event_observed)
kmf.plot_survival_function()Использование.
- Сравнение survival между groups (treatment vs control).
- Median survival time.
- Confidence intervals.
Hazard function
h(t) = lim_dt→0 P(t ≤ T < t+dt | T ≥ t) / dt«Мгновенная вероятность event на момент t, given survived until t».
S(t) = exp(-∫₀ᵗ h(u) du)Hazard и survival связаны.
Cox proportional hazards
Regression для survival.
h(t | x) = h_0(t) · exp(β_1 x_1 + β_2 x_2 + ...)h_0(t) — baseline hazard (не parametric).
Hazard ratio — exp(β):
- HR > 1: feature increases hazard (бад).
- HR = 1: no effect.
- HR < 1: protective.
from lifelines import CoxPHFitter
cph = CoxPHFitter()
cph.fit(df, duration_col='time', event_col='event')
print(cph.summary)Assumption: proportional hazards. Hazard ratio constant over time. Если нарушено — time-varying coefficients.
Применения в индустрии
Churn prediction. Time to churn, не binary churn-or-not. Censored = users still active.
Customer lifetime. Когда юзер закроет account.
Equipment failure. Предсказание времени до поломки.
Conversion. Time to purchase в funnel analysis.
Retention curves. Day-1, Day-7, Day-30 retention — это survival.
Связанные темы
- Time series CV и features для DS
- Linear vs logistic regression для DS
- Causal inference для DS
- Bias-variance trade-off для DS
- Подготовка к собесу Data Scientist
FAQ
Survival для recsys?
Можно — time to next click / purchase. Cox / DeepSurv для predicting timing.
Это официальная информация?
Нет. Статья основана на классике (Kaplan-Meier 1958, Cox 1972), документации lifelines.
Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.