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

Автор Сообщение
news_bot ®

Стаж: 6 лет 7 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
28-Июн-2021 12:31


Ультразвуковое исследование артерий на запястье. Стрелкой указана лучевая артерия, по которой нет кровотока, потому что она закрылась после эндоваскулярной операции на сердце.ВступлениеЕсли спросить у эндоваскулярного хирурга с 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 часов -  высокая вероятность окклюзии лучевой артерии” -тем самым это позволит создать “чуйку” опытного хирурга, даже у молодого бойца.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_r, #_zdorove (Здоровье), #_predskazatelnaja_model (Предсказательная модель), #_mashinnoe_obuchenie (машинное обучение), #_hirurgija (хирургия), #_endovaskuljarnaja_hirurgija (эндоваскулярная хирургия), #_statistika (статистика), #_r, #_zdorove (
Здоровье
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Сен 01:11
Часовой пояс: UTC + 5