Survival analysis, или предсказание смерти пациента. classification.. classification. healthcare.. classification. healthcare. machine learning.. classification. healthcare. machine learning. models.. classification. healthcare. machine learning. models. regression.. classification. healthcare. machine learning. models. regression. survival analysis.

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

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

Эта область называется 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. Если уж быть совсем честным, то вся медицина — это работа с неопределённостью. Просто здесь у неё появляется математический аппарат, который ТОЖЕ (к сожалению) может ошибаться. Только в этом случае непонятно кто будет нести за эти ошибки ответственность.

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

Автор: igor-shchukin

Источник