«Да как ты смеешь! Что ты на себя берёшь?» — могут сказать некоторые из читателей.

И действительно, на первый взгляд идея разрабатывать модели, которые предсказывают, через сколько умрёт человек, звучит пугающе и даже аморально. Но если копнуть глубже, становится ясно: речь идёт не о «предсказании смерти» как факта, а о предсказании «риска смерти» на данный момент времени, что потенциально даёт возможность отслеживать этот риск и возможно даже управлять им.

Эта область называется Survival analysis — анализ выживаемости. Разумеется, мы рассчитываем получить положительный исход, что и подсвечивается в названии.

В этой статье разберём:

  • что такое survival analysis?

  • зачем это нужно в медицине и других областях?

  • какие математические особенности делают её уникальной?

  • и почему без неё современное здравоохранение, фармацевтика и страхование фактически блуждают в темноте?


Так что же такое survival analysis и в чём его отличие от задачи классификации или регрессии?

Представим медицинское исследование где-то в антиутопии. За пациентами наблюдают пять лет. Часть пациентов к концу наблюдения умерли. Часть — живы.

Мы не знаем, когда умрут те, кто жив. Но знаем, что они прожили как минимум пять лет. И решили построить модель, которая будет предсказывать "время до смерти".

Если попытаться обучить обычную регрессию такой таргет, то возникает простой вопрос: что делать с теми, кто ещё жив? Исключить их? Тогда мы получим смещение выборки. Подставить фиктивное значение? Тогда исказим распределение.

Survival analysis изначально построен так, чтобы учитывать такие данные корректно. В этом его фундаментальное отличие.

Он не требует знать точное время события для каждого наблюдения.
Ему достаточно знать, что событие либо произошло в момент t, либо не произошло до момента t. Такие наблюдения называются right-censored.

"Окей. Давай тогда учить модель бинарной классификации: умрёт ли пациент в течение года?" - скажете вы.

Проблема в том, что это грубая дискретизация непрерывного процесса.

Пациент, умерший через 11 месяцев, и пациент, умерший через 13 месяцев, окажутся в разных классах. Хотя их клинический профиль может быть почти идентичным.

Кроме того, такая постановка не позволяет оценивать, как меняется риск во времени, тем более, если в качестве риска мы хотим видеть именно вероятность (привет MML и логистическая регрессия), а не загадочные скоры модели. Именно динамика риска имеет ключевое значение и позволяет принимать стратегические решения.

Survival-model оценивает функцию выживания S(t) — вероятность дожить до времени t .

Это уже не «0 или 1», а полноценная работа с распределением вероятностей.

Где это потенциально важно отслеживать?

Я говорю потенциально, потому что пока решение этой задачи только внедряется в реальные процессы и далеко не везде осмеливаются ей заняться. Но в компаниях и кейсах ниже Survival-analysis может привнести очень серьёзный буст в решение:

  • в медицине (предсказание времени смерти, чтобы вовремя изменить стратегию лечения)

  • в банкинге (предсказание времени до дефолта, чтобы вовремя предпринять меры и провести коммуникацию или помочь клиенту)

  • в телеком-компании (предсказание времени до оттока клиента, чтобы успеть провести коммуникацию и удержать клиента, хотя с оттоком компании пока работать не умеют)

  • в промышленности (предсказание времени до отказа оборудования, чтобы в плановом режиме провести ремонт, а не экстренно)

  • в страховании (время до наступления страхового случая, чтобы предупредить клиента или просто ввести динамический платёж)

Думаю, комментарии тут излишни. Только встаёт другой вопрос: как правильно работать с предотвращением событий, которые мы хотим детектировать? А это уже совсем другая история...


Какие же методы и какая математика позволяют решать такую задачу?


Survival-analysis интересен ещё и тем, что он стоит на стыке статистики и машинного обучения. И когда-нибудь я точно расскажу про эти вещи подробнее, но не сейчас:)
Поэтому здесь пока список инструментов, ссылки на объяснение которых будут постепенно появляться.

Из классики-статистики можно отметить:

  • кривые Каплана-Майера (обычно в низкоразмерных временных рядах)

  • модель Кокса

  • AFT

И немного поинтереснее

  • Random Survival Forest

  • нейронные сети (например, вариации DeepSurv)

  • гибридные модели с временными ковариатами

  • early classification подход к задаче (нечто вроде RNN + RL)

Это заставляет мыслить не в терминах «точность предсказания класса», а в терминах ранжирования риска во времени и среди пациентов (для медицинского контекста).

С метриками остаётся ещё больше вопросов, о которых мы обязательно с вами поговорим в следующих статьях.

И всё-таки - про этику

Возвращаясь к началу. Да, формулировка «предсказание смерти» звучит резко.

Но если убрать «моральность», становится ясно: survival analysis — это инструмент количественной оценки риска с целью воздействия на него.

Врачи, например, всегда работают с некоторым прогнозом (своим или коллег). Э��о неизменно, потому что речь про будущее, которое неизвестно. Поэтому этический вопрос возникает не из‑за самой модели, а из‑за целей её применения и надёжности модели. Как и любой инструмент, она может использоваться ответственно или безответственно.

Но отказываться от неё только потому, что название неприятное, — значит отказываться от возможности лучше понимать риск и, может быть, вовремя на него повлиять.


Survival analysis — это один из способ узнать, произойдёт ли критическое событие и когда, а вот как с этим работать... Это уже совсем другая история, и мы пока этого не умеем


P.S. Если уж быть совсем честным, то вся медицина — это работа с неопределённостью. Просто здесь у неё появляется математический аппарат, который ТОЖЕ (к сожалению) может ошибаться. Только в этом случае непонятно кто будет нести за эти ошибки ответственность.

В этом и сидит вся «неэтичность» задачи