Анализ назначают не в надежде на положительный результат
Назначая тропонин, врач не спрашивает: «Есть ли у этого пациента инфаркт?» Она спрашивает: «Насколько этот результат должен изменить мои предположения?» Это разные вопросы.
Ещё до анализа у неё уже есть оценка. У 62-летнего мужчины с болью в груди, отдающей в левую руку, и профузным потом претестовая вероятность острого коронарного синдрома высока. У 28-летней женщины с той же жалобой после трёх чашек эспрессо она низкая. И результат тропонина для них значит разное. Умеренно повышенный тропонин у первого подтверждает то, что врач и так подозревала. Тот же результат у второй скорее окажется ложноположительным: тест не совершенен, а когда несовершенный тест применяют к человеку, у которого болезни, скорее всего, нет, математика работает против вас.
У любого теста есть чувствительность и специфичность. Чувствительность показывает, как часто тест обнаруживает болезнь, когда она действительно есть. Специфичность показывает, как часто он верно исключает болезнь у того, у кого её нет. Ни по одному из этих параметров ни один тест не даёт 100%. Тест с чувствительностью 95% всё равно пропускает 5% настоящих случаев. Тест со специфичностью 90% всё равно ошибочно помечает 10% здоровых. Это свойства теста, а не пациента. И из них следует, что любой результат несёт неопределённость, которая должна менять вашу уверенность, а не подменять её.
В этом и состоит байесовское рассуждение. Вы исходите из того, что уже знаете о пациенте. Получаете новую информацию. Пересматриваете оценку с учётом того, насколько эта информация надёжна. И повторяете то же с каждой следующей.
Клинический ИИ обычно делает наоборот
Большинство систем ИИ в медицине идёт обратным путём. Они берут набор результатов (показатели жизненно важных функций, анализы, диагнозы, лекарства) и сопоставляют его задним числом с закономерностями, выученными на обучающих данных. Система видит креатинин 1,6, диабет в анамнезе, ингибитор АПФ в списке препаратов и выдаёт «вероятна ХБП», потому что именно такое сочетание признаков часто встречалось в случаях, на которых её обучали.
Звучит разумно, пока не задумаешься, чего здесь не хватает. Система не знает, растёт креатинин или стабилен. Не знает, назначили ингибитор АПФ для защиты почек или от давления. Не знает, что два года назад креатинин был 0,9 и с тех пор неуклонно растёт. Не учитывает, что в этой популяции анализ мочи на альбумин даёт 15% ложноположительных результатов. Она просто сравнивает сегодняшний срез с историческими закономерностями и навешивает ярлык.
Врач, глядя на того же пациента, рассуждала бы вперёд. Начала бы с априорной вероятности ХБП с учётом возраста, пола и факторов риска. Пересмотрела бы её с учётом креатинина, но придала бы этому ровно тот вес, какого заслуживает одно-единственное измерение. Посмотрела бы на тренд, а не только на сегодняшнее число. Приняла бы во внимание ингибитор АПФ, но прежде чем считать его доводом в пользу болезни почек, выяснила бы, зачем его назначили. Каждое новое свидетельство сдвигает вероятность, и вес каждого зависит от его надёжности.
Ретроспективный подход спрашивает: на что это похоже? Проспективный спрашивает: что, с учётом всего, что мы уже знаем, говорит нам эта новая информация и насколько ей можно доверять?
Видеть пациента целиком или видеть результаты
Одно из первых, чему учат будущих врачей: лечить надо пациента, а не анализ. Калий 5,8 в гемолизированной пробе ничего не значит. Давление 160 у пациента, который только что бегом примчался на приём, — не гипертония. Будет ли результат сигналом или шумом, решает контекст, а контекст требует знать пациента шире, чем показывает сегодняшняя карта.
ИИ общего назначения обрабатывает результаты. Он читает числа, записи, закодированные диагнозы и выдаёт ответ на основе текстовых закономерностей. Делает он это очень хорошо. Он сведёт выписной эпикриз к сути быстрее любого человека. Извлечёт структурированные данные из самого путаного клинического текста. Но карту он читает так, как читают клинический случай в учебнике. Когда всё уже произошло.
Врач, которая видит пациента здесь и сейчас, занята другим. Она рассуждает в условиях неопределённости, вперёд во времени, пересматривает оценку с каждой новой порцией информации и взвешивает каждую по тому, насколько ей доверяет. Она знает, что положительный D-димер у пациента низкого риска скорее всего, ложноположительный. Знает, что нормальная рентгенограмма грудной клетки не исключает раннюю пневмонию. Она держит в голове априорную вероятность и поправляет её с каждой находкой, не одинаково, а соразмерно диагностической ценности каждой.
Создавая Chroneme, мы хотели, чтобы система рассуждала так, как рассуждает она, а не как поисковая система. Вперёд, а не назад. Пересматривая вероятности с каждым новым свидетельством, с поправкой на то, насколько это свидетельство на самом деле надёжно.
Как это работает на практике
58-летний мужчина с сахарным диабетом 2 типа приходит сдать плановые анализы. Исходная вероятность хронической болезни почек, с учётом возраста, пола и диабета, имеет некое начальное значение. Не нулевое, потому что диабет остаётся главной причиной ХБП. Но и не высокое: симптомов нет, и прежде с почками ничего не находили.
Креатинин оказывается 1,2. Формально это норма, но выше, чем в прошлый раз. Система пересматривает оценку. Ненамного: один чуть повышенный креатинин обладает скромной диагностической ценностью. Сами по себе чувствительность и специфичность однократного креатинина для ХБП не особенно высоки.
Через десять месяцев креатинин уже 1,4, а рСКФ опустилась ниже 60. Теперь сдвиг больше, потому что рСКФ ниже 60 обладает для ХБП куда большей диагностической ценностью. Но система видит и то, чего не видит статическая модель: траекторию. Креатинин не просто повышен. Он растёт с такой скоростью, что, если продолжить линию, попадает в тревожный диапазон.
Ещё через год появляется протеинурия. Теперь вероятность достаточно высока, чтобы действовать. Но клинически важно вот что: система отмечала этого пациента за несколько месяцев до появления протеинурии. Не с уверенностью. С вероятностью, которая росла так, что заслуживала внимания. Врач, просматривая карту, видит каждый пересмотр оценки, видит, что к нему привело, и решает, согласна ли она. Если она считает, что ингибитор АПФ назначили от давления, а не ради почек, она может придать этому фактору другой вес в своём клиническом суждении. Система показывает свою логику. Врач применяет свою.
Сама траектория становится свидетельством, независимо от любого отдельного числа.
Почему это важно для доверия
Когда нейросеть говорит «вероятность ХБП 73%», спросить «почему?» невозможно. Это число рождается из миллионов параметров, которые не соответствуют никаким клиническим понятиям. Врач не может посмотреть на него и сказать: «С креатинином я согласна, но лекарственному анамнезу вы придаёте слишком много веса». Никакой «части про креатинин» там нет. Никакой «части про лекарства» тоже. Есть только число.
Когда байесовская система говорит 73%, врач может спросить почему. Она видит, какие свидетельства сдвинули вероятность и насколько. Может не согласиться с конкретным фактором и применить собственное суждение. Именно такой разговор и позволяет клиническому ИИ реально менять лечение. Без него ответ системы — лишь утверждение. С ним он становится аргументом.
Нефролог, которому мы показали систему, сформулировал это очень ясно. Он посмотрел цепочку свидетельств по одному пациенту и сказал, что с большей частью согласен, но одному фактору, по его мнению, придан слишком большой вес: препарат назначали не в той ситуации, которую предполагала система. Он был прав. И то, что он смог это заметить, указать на конкретный фактор и приложить свой опыт, и есть ровно то, что должна давать система поддержки клинических решений. Чёрный ящик выдал бы ему ту же вероятность, и никакого разговора бы не получилось.
Ограничения, о которых мы говорим честно
Байесовский вывод предполагает, что при данной болезни свидетельства условно независимы. В клинической медицине это часто не так. При ХБП креатинин и протеинурия коррелируют. Это известное ограничение, и безупречного решения у него в нашей области пока нет.
Качество ответа зависит от качества весов, приписанных свидетельствам. Одни хорошо обоснованы в опубликованной литературе. Другие приблизительны, и мы уточняем их в ходе валидации. Калибровка продолжается, и мы не делаем вид, что это не так.
Байесовский вывод хорошо работает со структурированными, измеримыми данными: анализами, показателями жизненно важных функций, лекарствами, закодированными диагнозами. Хуже он справляется с неструктурированными клиническими записями и с симптомами, о которых сообщает сам пациент. Для разных типов клинических данных мы используем разные подходы, подбирая инструмент под задачу.
Мы выбрали байесовский вывод, потому что он повторяет то, как врачи уже думают. Система формализует то, что хороший клиницист делает интуитивно, и делает это в масштабе, для каждого пациента, непрерывно. Вот и всё. Никакой магии. Только математика клинического мышления, записанная явно.
