Как обзавестись «чуйкой» опытного хирурга или предсказательная модель молодого аспиранта

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Ультразвуковое исследование артерий на запястье. Стрелкой указана лучевая артерия, по которой нет кровотока, потому что она закрылась после эндоваскулярной операции на сердце.
Ультразвуковое исследование артерий на запястье. Стрелкой указана лучевая артерия, по которой нет кровотока, потому что она закрылась после эндоваскулярной операции на сердце.

Вступление

Если спросить у эндоваскулярного хирурга с 10-летним стажем про стентирование артерий сердца при инфаркте миокарда - он может сказать , “Уверен, что у этого пациента артерия закроется после нашей операции”. Раньше я воспринимал это как данность. В институте мне нравилось это называть интуицией врача, или предчувствие исход. В аспирантуре захотелось обличить все эти метафизические предсказания в закономерную структуру, поддающуюся логическому объяснению. Опытный хирург обучил свою нейросеть в головном мозге таким образом, что она оценивает несколько параметров пациента и предсказывает вероятность возникновения окклюзии артерии. Сейчас покажу как я сделал то же самое без большого стажа, но с программой для статистики. 

Кратко о предмете

Начну с того, что я работаю врачом эндоваскулярным хирургом — лечу людей с острым инфарктом - ставлю им в артерии сердца металлические каркасы - стенты. И небольшое вводный рассказ о том зачем вообще специальность нужна в медицине. Лет двадцать назад единственным действенным методом лечения ишемической болезни сердца (когда артерии в сердце сужаются из-за атеросклероза) было только операция аорто-коронарного шунтирования (в простонародье и сокращенно АКШ ) когда разрезали грудную клетку большим ножом и потом останавливали сердце и пришивали шунт (обходной сосуд) за место сужения - этим занимаются сердечно-сосудистые хирурги. После операции обычно симптомы болезни и боль в сердце проходили. Вот уже пятнадцать лет в дополнение к этой большой операции используют внутрисосудистую хирургию - с помощью которой место сужения расширяют специальным баллоном и ставят туда поддерживающий каркас, и все это через артерию на руке или ноге. 

Что такое эндоваскулярная хирургия?

О плюсах и минусах внутрисосудистой хирургии рассуждать сильно не приходится. Основное преимущество — очевидно: нет наркоза и грудная клетка пациента цела, а значит он может на следующий день поехать домой к семье на праздничный пирог, и много медицинских высоколобых плюсов. Дальше я не буду углубляться в сравнение этих двух специальностей, а перейду уже ближе к делу. Самым удобным сосудом, через который легко и удобно можно дойти до сердца, а после операции легко остановить кровотечение, является небольшая лучевая артерия на руке. Думаю, все из вас когда-нибудь пытались пощупать пульс у человека - вот именно эту артерию на запястье вы чувствовали. Так вот, эта артерия после операции может навсегда закрыться (окклюзироваться на языке медицинской терминологии). На картинке ультразвуковое исследование и видно как кровоток по лучевой артерии прерывается, а значит она закрыта.  Пациент этого никак не почувствует, но вот для эндоваскулярного хирурга это уже проблема - надо искать новую артерию, чтобы через неё выполнить операцию. И таких артерий не так много - одна на другой ноге, и две бедренных артерии на ноге. Все это значительно усложняет будущие вмешательства. Поэтому я в аспирантуре решил разобраться какие факторы, ассоциированы с окклюзией лучевой артерии после операции и найти методы, которые помогут этого избежать. 

Ах да, я забыл сказать что стенты доставляются с помощью длинных трубок (они называются катетерами), которые доходят прямо до сердца. Причин, по которой закрывается артерия после операции существует много — основные из них связаны с размером инструментов, которыми выполняются операции (сейчас чаще всего используют размер 6 French - это примерно 2 мм в диаметре). Здесь все довольно просто - чем меньше размер трубки, которую вставишь в артерию, тем меньше вероятности, что она закроется - эту закономерность давно доказали. После операции место где стояли катетеры необходимо чем-нибудь прикрыть, чтобы кровотечение остановилось, и таких вариантов прикрытия существует два - первое это не сильно закрыть только переднюю стенку артерии, при этом кровоток сохраняется, а второе -это полностью перекрыть сосуд, чтобы из него ничего не текло. Первый вариант требует значительно больше времени, покупки специальных коммерчески-доступных устройств и не всегда легко выполним. Второй вариант значительно проще, дешевле раз в 30 и сразу дает результат. Но, есть проблема -  артерия чаще закрывается.

Чем дольше артерия прикрыта , тем больше вероятность, что она никогда больше не откроется. И на этом этапе я разделил всех пациентов на условные две группы, одной из них снимать повязку через 3 часа (условно, короткая группа ), второй через 10 часов (назовем её — длинная группа).

Статистические расчеты

Для генерации двух выборок была использована рандомизация по методу конвертов — то есть, перед тем как наложить повязку пациенту было предложено вытянуть конверт, в котором было написано условно - «короткий» или «длинный». 

Данных по «длинной» группе у меня было много — это стандартная методика, которая используется в отделении и частота окклюзии лучевой артерии была более-менее понятна - 8,8%. Для того, чтобы выбрать размер выборки надо было понять какая частота окклюзии будет в «короткой» группе, для этого сделал небольшое пилотное исследование, выяснил, что частота окклюзии составляет 3 %. После этого приняв приемлемую для меня величину ошибок первого и второго рода определил, что для доказательства преимуществ «короткой» методики мне необходимо взять 988 пациентов, с учетом того что мощность исследования будет 90%, а величина α будет 1%, кроме этого учитывалась 5% вероятность перехода пациентов из «короткой» группы в «длинную». У меня была любовь к круглым числам, можете даже не спрашивать почему, но я хотел набрать 1000 пациентов — мне тогда это казалось очень крутым. В этом случае принципиальной разницы не было. 

Первичная конечная точка соответственно была частота окклюзии лучевой артерии после вмешательства. И сравнивал этот показатель я в двух группах — короткой и длинной. Вторичной конечной точкой была частота кровотечений, это было очень важно считать, ведь любое сокращение времени остановки кровотечения может закономерно привести к увеличению этого показателя. 

Зачем я пришел в R ?!

А дальше, я подумал что результаты работы не должны быть узконаучны для защиты моей диссертации. Надо смотреть дальше и глубже, поэтому сразу решил, что опубликую их в зарубежном журнале. Старшие товарищи сказали, что для такой публикации все расчеты должны быть выполнены на последней версии программного обеспечения для статистики (SRSS или STATISTICA) и непременно на лицензионной версии. Я до сих пор не знаю зачем это, но решил что изучу этот вопрос и найду программу, которая признается мировым научным сообществом, но с открытым доступом и кодом. Так я открыл для себя Rstudio. Плюсы были очевидны — можно без ограничений пользоваться последними обновлениями, и к тому же показать научным руководителям что я странный и слегка чокнутый, потому что вместо того, чтобы вводить две цифры в поля удобного интерфейса STATISTICA я пишу двухстрочный код на совершенно непонятном для них языке. 

С помощью обучающих семинаров разобрался, как писать код, чтобы получить нужные для меня результаты. Я не буду вдаваться в подробности, какими именно общеизвестными методами доказал что в «короткой» группе достоверно ниже частота окклюзии лучевой артерии, чем в «длинной» группе, при сопоставимой частоте кровотечений. Это как бы самый главный результат диссертации — можно было бы на нем и остановиться. 

И тут возникла мысль,- а почему бы не попробовать какие-нибудь интересные функции R?! Вдруг накопаю что-то интересное )). 

С помощью биномиальной логистической регрессии решил построить предсказательную модель в которой зависимой переменной будет окклюзии лучевой артерии (это бинарная переменная, 0 — нет, 1 -есть), а независимыми переменными будут все исходные характеристики (их было 25, включая пол, возраст, наличие сахарного диабета, и разных других сопутствующих болезней), учитывая большое число наблюдений я мог себе позволить взять сразу все факторы, предположительно ассоциированные с исходом - окклюзией лучевой артерии.

glm( LO ~ ., data = Final1, family = 'binomial')

Переменная LO — расшифровывается как «late occlusion», моя таблица с данными называлась «Final1». Для удобства назвал переменную «fit»

fit<-glm( LO ~., Final1, family = 'binomial')

Получилась большая таблица с вероятностями и силой влияния факторов на зависимую переменную. В R есть специальная функция «step» , которая позволяет по очереди исключать факторы, и сравнивать две полученные модели — полную и сокращенную. Если сокращенная моделью обладает не меньшей предсказательной ценностью в сравнении с расширенной, то предпочтение отдается ей (для этого используется информационный критерий Акаике и дисперсионный анализ функцией «Anova»). И все это одной строкой кода - для меня просто невероятно! 

step(fit,direction = 'backward')

В финальной модели получилось, что факторами, ассоциированными с окклюзией лучевой артерии — были наличие сахарного диабета 2 типа, и длительность пережатия лучевой артерии (каждый дополнительный час повышал вероятность возникновения окклюзии в 1,2 раза) 

И это не самое интересное, теперь необходимо было проверить свою модель. Добавил специальный столбец и назвал его вероятностью «Prob». Я получил предсказанное значение вероятности возникновения окклюзии лучевой артерии для каждого пациента, находящегося в моей таблице, основываясь на моей регрессионной модели. Добавил переменную «Prob» в которой будут эти предсказанные значения — вероятность. 

Final1$Prob<-predict(object=fit,type = «response»)

 Для проверки качества модели я воспользовался методом ROC кривых, для этого использовал пакет «ROCR» и функцией «predict» 

И после этого ввел две переменные и построил график с дальнейшим расчетом площади под кривой, которая оказалось равной 0,75, что свидетельствовало о хорошей предсказательной ценности моей модели.

pred_fit<-prediction(Final1$Prob,Final1$LO)
perf_fit<-performance(pred_fit,«tpr»,«fpr»)
plot(perf_fit,colorize=T, print.cutoffs.at=seq(0,1,by=0.1))
auc<-performance(pred_fit,measure = "auc")
str(auc)

После этого необходимо было определить порог классификации

perf6<-performance(pred_fit,x.measure = "cutoff",measure = "spec")
plot(perf6,col="blue",lwd=2)
perf7<-performance(pred_fit,x.measure = "cutoff",measure = "sens")
plot(add=T,perf7,col="green",lwd=2)
perf8<-performance(pred_fit,x.measure = "cutoff",measure = "acc")
plot(add=T,perf8,col="black",lwd=2)
abline(v = 0.085,lwd=2)

Получился вот такой график, здесь виден порог классификации (черной линией)

Теперь ввел переменную pred_resp, для ответа на вопрос: будет ли у пациента окклюзия лучевой артерии или нет. Такой формат легко может быть интерпретирован врачом. Соответственно если предсказанное значение больше порога в 0,085, то в таблице будет указание на то, что артерия закроется, в другом случае она останется проходимой.

Final1$pred_resp<-factor(ifelse(Final1$prob>0.085,1,0), labels = c("0","1"))

Простой функцией для вычисления арифметической средней “mean” я посчитал среднюю вероятность правильно предсказанных значений. Оказалось 70,7%, что очень неплохо.

> Final1$correct<-ifelse(Final1$pred_resp==Final1$LO,1,0)
> mean(Final1$correct)

Теперь я обучил свою модель предсказывать наступления окклюзии лучевой артерии простейшим вариантом машинного обучения. Естественно, всех пациентов, которых направляли мне на операцию я проводил через эту таблицу и получал ответ, стоит ли мне боятся за лучевую артерию после операции или нет. Мои результаты, а также технику расчету, да и многие выводы я не вынес на защиту диссертации, потому что это все выходит за рамки научной работы по конкретной задаче. Однако, мне кажется, что весь массив данных, проанализированных аспирантами не должен лежать на полках и забываться после защиты диссертации. 

Заключение

Очевидно, что полученные результаты могут быть использованы мной и еще парочкой врачей, которые разбираются в R. Введение данных нового пациента для предсказания окклюзии сейчас в таком виде выглядит громоздко и неуклюже и требует определенной доработки. Один из вариантов это создание сайта например, на котором будет две характеристики “Наличие/отсутствие сахарного диабета у пациента” и “Длительность остановки кровотечения”. После введения параметров пациента система на основе моей модели будет выдавать ответ, стоит ли переживать за окклюзию лучевой артерии или нет. Но, я думаю что такой вариант не жизнеспособен, ни один врач не будет постоянно тестировать новых пациентов с помощью такой системы, да и донести всем хирургам информацию о существовании такой модели крайне тяжело. А вот другой вариант - интегрировать модель (конечно предварительно пересчитав её с программистами - для более точных результатов) в электронную историю болезни пациента (в нашем случае это INTERIN Promis). В таком случае, если у пациента будет сахарный диабет 2 типа и ему планируется выполнение стентирования хирургу автоматически будет выводится сообщение в личный кабинет - “Внимание, длительность остановки кровотечения не более 3 часов -  высокая вероятность окклюзии лучевой артерии” -тем самым это позволит создать “чуйку” опытного хирурга, даже у молодого бойца.

Источник: https://habr.com/ru/post/565008/


Интересные статьи

Интересные статьи

В данной пошаговой инструкции мы подробно опишем весь процесс получения доступа к WhatsApp Business API через официального партнера Facebook — сервис Gupshup и подключени...
Недавно на проекте интегрировал модуль CRM Битрикса c виртуальной АТС Ростелеком. Делал по стандартной инструкции, где пошагово показано, какие поля заполнять. Оказалось, следование ей не гаран...
Привет, Хабр! Представим, что у нас есть задача построить новую дорогу. Можно построить магистраль с двумя полосами в каждую сторону, но что, если этого будет недостаточно? Или, наоборот, ока...
Инженеры из MIT разработали математическую модель, которая может увеличить производительность сетей IaaS-провайдеров. В ее основу легли некоторые подходы, используемые профессиональными инвестора...
Привет! Мы начинаем публикацию докладов с QIWI Кухни, и первым будет доклад Абсамата про его сервис искусства по подписке. Слово спикеру. Меня зовут Абсамат, я партнер сервис-дизайн агентства ...