У меня есть набор данных в следующем формате.
Есть бинарный исход рак / нет рака. Каждый врач в наборе данных осмотрел каждого пациента и дал независимое суждение о том, есть ли у пациента рак или нет. Затем врачи дают из 5 уровень уверенности в том, что их диагноз верен, а уровень достоверности отображается в скобках.
Я пробовал разные способы получить хорошие прогнозы из этого набора данных.
Для меня очень хорошо просто усреднять врачей, игнорируя их уровень доверия. В приведенной выше таблице это поставило бы правильные диагнозы для Пациента 1 и Пациента 2, хотя было бы неправильно сказать, что Пациент 3 имеет рак, так как большинством 2-1 врачи считают, что Пациент 3 имеет рак.
Я также попробовал метод, в котором мы случайным образом выбираем двух врачей, и если они не соглашаются друг с другом, то решающий голос переходит к тому, кто из врачей будет более уверен. Этот метод экономичен тем, что нам не нужно консультироваться со многими врачами, но он также немного увеличивает частоту появления ошибок.
Я попробовал родственный метод, в котором мы случайным образом выбираем двух врачей, и, если они не согласны друг с другом, мы случайным образом выбираем еще двух. Если один диагноз опережает по крайней мере два «голоса», то мы решаем вопросы в пользу этого диагноза. Если нет, мы продолжаем отбирать новых врачей. Этот метод довольно экономичен и не допускает слишком много ошибок.
Я не могу избавиться от ощущения, что мне не хватает более сложного способа ведения дел. Например, мне интересно, можно ли каким-то образом разделить набор данных на обучающие и тестовые наборы и разработать какой-то оптимальный способ объединения диагнозов, а затем посмотреть, как эти веса работают на тестовом наборе. Одна из возможностей - это какой-то метод, который позволяет мне лечить врачей с избыточным весом, которые постоянно допускают ошибки на испытательном полигоне, и, возможно, диагностировать избыточный вес, которые сделаны с высокой степенью достоверности (достоверность коррелирует с точностью в этом наборе данных).
У меня есть различные наборы данных, соответствующие этому общему описанию, поэтому размеры выборки различаются, и не все наборы данных относятся к врачам / пациентам. Тем не менее, в этом конкретном наборе данных есть 40 врачей, каждый из которых видел 108 пациентов.
РЕДАКТИРОВАТЬ: Вот ссылка на некоторые из весов, которые являются результатом моего чтения ответа @ jeremy-miles.
Невзвешенные результаты находятся в первом столбце. На самом деле в этом наборе данных максимальное значение достоверности было 4, а не 5, как я ошибочно сказал ранее. Таким образом, следуя подходу @ jeremy-miles, наивысший невзвешенный балл, который может получить любой пациент, будет равен 7. Это означает, что буквально каждый врач утверждал с уровнем достоверности 4, что у этого пациента был рак. Самая низкая невзвешенная оценка, которую может получить любой пациент, равна 0, что означает, что каждый врач утверждал с уровнем достоверности 4, что у этого пациента не было рака.
Взвешивание по Альфе Кронбаха. В SPSS я обнаружил, что общая Альфа Кронбаха составляет 0,9807. Я попытался проверить, правильно ли это значение, вычислив Альфу Кронбаха более ручным способом. Я создал ковариационную матрицу из всех 40 врачей, которую я вставил сюда . Затем, основываясь на моем понимании формулы Альфа Кронбаха где - количество предметов (здесь врачи - «предметы»), которые я вычислил путем суммирования всех диагональных элементов в ковариационной матрице, а путем суммирования всех элементов в ковариационная матрица. Я тогда получил я рассчитал 40 различных результатов Альфа-Кронбаха, которые будут иметь место, когда каждый врач будет удален из набор данных. Я взвешивал любого доктора, который внес отрицательный вклад в Альфу Кронбаха, в ноль. Я придумал веса для оставшихся докторов, пропорциональные их положительному вкладу в Альфу Кронбаха.
Взвешивание по общим соотношениям предметов. Я вычисляю все общие корреляции предметов, а затем взвешиваю каждого доктора пропорционально размеру их корреляции.
Взвешивание по коэффициентам регрессии.
В одном я до сих пор не уверен, как сказать, какой метод работает «лучше», чем другой. Ранее я вычислял такие вещи, как показатель навыка Пирса, который подходит для случаев, когда есть двоичное предсказание и двоичный результат. Однако теперь у меня есть прогнозы в диапазоне от 0 до 7 вместо 0 к 1. Должен ли я конвертировать все взвешенные баллы> 3,50 в 1, и все взвешенные баллы <3,50 в 0?
источник
No Cancer (3)
этоCancer (2)
? Это немного упростит вашу проблему.Cancer (4)
до прогноза отсутствия рака с максимальной достоверностьюNo Cancer (4)
. Мы не можем сказать, что это одноNo Cancer (3)
иCancer (2)
то же, но мы можем сказать, что существует континуум, а средние точки в этом континууме -Cancer (1)
иNo Cancer (1)
.Ответы:
Во-первых, я бы посмотрел, согласны ли врачи друг с другом. Вы не можете анализировать 50 врачей по отдельности, потому что вы будете соответствовать модели - один врач будет выглядеть великолепно, случайно.
Вы можете попытаться объединить доверие и диагностику в 10-балльной шкале. Если врачи говорят, что у пациента нет рака, и они очень уверены в себе, то это 0. Если врач говорит, что у него есть рак, и они очень уверены, то это 9. Если они говорят, что у них нет, и не уверены, это 5 и т. д.
Когда вы пытаетесь предсказать, вы делаете какой-то регрессионный анализ, но, думая о причинном порядке этих переменных, все наоборот. Причиной диагноза является наличие у пациента рака, а в результате - диагноз.
Ваши ряды должны быть пациентами, а ваши столбцы должны быть врачами. Теперь у вас есть ситуация, которая часто встречается в психометрии (вот почему я добавил тег).
Затем посмотрите на отношения между оценками. Каждый пациент имеет средний балл и балл от каждого врача. Средняя оценка положительно коррелирует с оценкой каждого врача? Если нет, то этот врач, вероятно, не заслуживает доверия (это называется корреляцией между предметами). Иногда вы удаляете одного врача из общего балла (или среднего балла) и смотрите, коррелирует ли этот врач со средним значением всех других докторов - это общая скорректированная статья.
Вы можете рассчитать альфу Кронбаха (которая является формой внутриклассовой корреляции) и альфу без каждого доктора. Альфа всегда должна повышаться, когда вы добавляете доктора, поэтому, если она повышается, когда вы удаляете доктора, оценка этого доктора является подозрительной (это не часто говорит вам о чем-то отличном от скорректированной корреляции между количеством элементов).
Если вы используете R, то такого рода вещи доступны в пакете psy, используя функцию alpha. Если вы используете Stata, команда является альфа-версией, в SAS это proc corr, а в SPSS - масштабируемая надежность.
Затем вы можете рассчитать оценку, как среднюю оценку от каждого врача, или средневзвешенную величину (взвешенную по корреляции) и посмотреть, является ли эта оценка прогностической в отношении истинного диагноза.
Или вы можете пропустить эту стадию, и регрессировать оценку каждого врача по диагнозу отдельно, и рассматривать параметры регрессии как веса.
Не стесняйтесь просить разъяснений, и если вы хотите книгу, мне нравятся «Шкалы измерения здоровья» Стрейнера и Нормана.
-Редакт: на основе дополнительной информации ОП.
Вау, это чертов альфа Кронбаха. Единственный раз, когда я видел это так высоко, это когда была допущена ошибка.
Я бы сейчас сделал логистическую регрессию и посмотрел на кривые ROC.
Разница между взвешиванием по регрессии и корреляции зависит от того, как, по вашему мнению, реагируют врачи. Некоторые документы в целом могут быть более уверенными (не будучи более умелыми), и, следовательно, они могут больше использовать экстремальные диапазоны. Если вы хотите исправить это, используйте корреляцию, а не регрессию. Я бы, вероятно, взвесил регрессию, так как при этом сохраняются исходные данные (и не отбрасывается никакая информация).
Редактировать (2): Я запустил модели логистической регрессии в R, чтобы увидеть, насколько хорошо каждая из них предсказала результат. ТЛ / ДР: между ними ничего нет.
Вот мой код:
И вывод:
источник
Два готовых предложения:
источник
P
= вероятность заболевания раком, указанная доктором, затем (в записи Python):y=[1 if p >= 0.5 else 0 for p in P]
иw=[abs(p-0.5)*2 for p in P]
. Тогда тренируйте модель:LogisticRegression().
fit
(X,y,w)
(Это выходит за рамки моей компетенции, поэтому ответ Джереми Майлза может быть более надежным.)
Вот одна идея.
0^0=1
0^0=NaN
источник
No Cancer (3) = Cancer (2)
No Cancer (3) = Cancer (3)
Из вашего вопроса выясняется, что вы хотите проверить свою систему измерений. В области технологического проектирования это будет анализ системы измерения атрибутов или MSA.
Эта ссылка предоставляет некоторую полезную информацию о необходимом размере выборки и проведении расчетов для проведения исследования такого типа. https://www.isixsigma.com/tools-templates/measurement-systems-analysis-msa-gage-rr/making-sense-attribute-gage-rr-calculations/
В этом исследовании вам также потребуется врач для диагностики одного и того же пациента с той же информацией, по крайней мере, дважды.
Вы можете провести это исследование одним из двух способов. Вы можете использовать простой рейтинг рака / без рака, чтобы определить соглашение между врачами и каждым врачом. В идеале, они также должны быть в состоянии диагностировать с тем же уровнем доверия. Затем вы можете использовать полную 10-балльную шкалу для проверки согласия между каждым врачом. (Все должны согласиться с тем, что рак (5) имеет одинаковую оценку, а рак (1) не имеет одинаковой оценки и т. Д.)
Расчеты на связанном веб-сайте просты для проведения на любой платформе, которую вы можете использовать для своих тестов.
источник