«Да как ты смеешь! Что ты на себя берёшь?» — могут сказать некоторые из читателей.
И действительно, на первый взгляд идея разрабатывать модели, которые предсказывают, через сколько умрёт человек, звучит пугающе и даже аморально. Но если копнуть глубже, становится ясно: речь идёт не о «предсказании смерти» как факта, а о предсказании «риска смерти» на данный момент времени, что потенциально даёт возможность отслеживать этот риск и возможно даже управлять им.
Эта область называется Survival analysis — анализ выживаемости. Разумеется, мы рассчитываем получить положительный исход, что и подсвечивается в названии.
В этой статье разберём:
что такое survival analysis?
зачем это нужно в медицине и других областях?
какие математические особенности делают её уникальной?
и почему без неё современное здравоохранение, фармацевтика и страхование фактически блуждают в темноте?
Так что же такое survival analysis и в чём его отличие от задачи классификации или регрессии?
Представим медицинское исследование где-то в антиутопии. За пациентами наблюдают пять лет. Часть пациентов к концу наблюдения умерли. Часть — живы.
Мы не знаем, когда умрут те, кто жив. Но знаем, что они прожили как минимум пять лет. И решили построить модель, которая будет предсказывать "время до смерти".
Если попытаться обучить обычную регрессию такой таргет, то возникает простой вопрос: что делать с теми, кто ещё жив? Исключить их? Тогда мы получим смещение выборки. Подставить фиктивное значение? Тогда исказим распределение.
Survival analysis изначально построен так, чтобы учитывать такие данные корректно. В этом его фундаментальное отличие.
Он не требует знать точное время события для каждого наблюдения.
Ему достаточно знать, что событие либо произошло в момент t, либо не произошло до момента t. Такие наблюдения называются right-censored.
"Окей. Давай тогда учить модель бинарной классификации: умрёт ли пациент в течение года?" - скажете вы.
Проблема в том, что это грубая дискретизация непрерывного процесса.
Пациент, умерший через 11 месяцев, и пациент, умерший через 13 месяцев, окажутся в разных классах. Хотя их клинический профиль может быть почти идентичным.
Кроме того, такая постановка не позволяет оценивать, как меняется риск во времени, тем более, если в качестве риска мы хотим видеть именно вероятность (привет MML и логистическая регрессия), а не загадочные скоры модели. Именно динамика риска имеет ключевое значение и позволяет принимать стратегические решения.
Survival-model оценивает функцию выживания — вероятность дожить до времени
.
Это уже не «0 или 1», а полноценная работа с распределением вероятностей.
Где это потенциально важно отслеживать?
Я говорю потенциально, потому что пока решение этой задачи только внедряется в реальные процессы и далеко не везде осмеливаются ей заняться. Но в компаниях и кейсах ниже Survival-analysis может привнести очень серьёзный буст в решение:
в медицине (предсказание времени смерти, чтобы вовремя изменить стратегию лечения)
в банкинге (предсказание времени до дефолта, чтобы вовремя предпринять меры и провести коммуникацию или помочь клиенту)
в телеком-компании (предсказание времени до оттока клиента, чтобы успеть провести коммуникацию и удержать клиента, хотя с оттоком компании пока работать не умеют)
в промышленности (предсказание времени до отказа оборудования, чтобы в плановом режиме провести ремонт, а не экстренно)
в страховании (время до наступления страхового случая, чтобы предупредить клиента или просто ввести динамический платёж)
Думаю, комментарии тут излишни. Только встаёт другой вопрос: как правильно работать с предотвращением событий, которые мы хотим детектировать? А это уже совсем другая история...
Какие же методы и какая математика позволяют решать такую задачу?
Survival-analysis интересен ещё и тем, что он стоит на стыке статистики и машинного обучения. И когда-нибудь я точно расскажу про эти вещи подробнее, но не сейчас:)
Поэтому здесь пока список инструментов, ссылки на объяснение которых будут постепенно появляться.
Из классики-статистики можно отметить:
кривые Каплана-Майера (обычно в низкоразмерных временных рядах)
модель Кокса
AFT
И немного поинтереснее
Random Survival Forest
нейронные сети (например, вариации DeepSurv)
гибридные модели с временными ковариатами
early classification подход к задаче (нечто вроде RNN + RL)
Это заставляет мыслить не в терминах «точность предсказания класса», а в терминах ранжирования риска во времени и среди пациентов (для медицинского контекста).
С метриками остаётся ещё больше вопросов, о которых мы обязательно с вами поговорим в следующих статьях.
И всё-таки - про этику
Возвращаясь к началу. Да, формулировка «предсказание смерти» звучит резко.
Но если убрать «моральность», становится ясно: survival analysis — это инструмент количественной оценки риска с целью воздействия на него.
Врачи, например, всегда работают с некоторым прогнозом (своим или коллег). Э��о неизменно, потому что речь про будущее, которое неизвестно. Поэтому этический вопрос возникает не из‑за самой модели, а из‑за целей её применения и надёжности модели. Как и любой инструмент, она может использоваться ответственно или безответственно.
Но отказываться от неё только потому, что название неприятное, — значит отказываться от возможности лучше понимать риск и, может быть, вовремя на него повлиять.
Survival analysis — это один из способ узнать, произойдёт ли критическое событие и когда, а вот как с этим работать... Это уже совсем другая история, и мы пока этого не умеем
P.S. Если уж быть совсем честным, то вся медицина — это работа с неопределённостью. Просто здесь у неё появляется математический аппарат, который ТОЖЕ (к сожалению) может ошибаться. Только в этом случае непонятно кто будет нести за эти ошибки ответственность.
В этом и сидит вся «неэтичность» задачи
