ROC-анализ, определение чувствительности и специфичности метода |
Здравствуйте, гость ( Вход | Регистрация )
ROC-анализ, определение чувствительности и специфичности метода |
12.07.2008 - 09:21
Сообщение
#31
|
|
Группа: Пользователи Сообщений: 1114 Регистрация: 10.04.2007 Пользователь №: 4040 |
Обнаружен интересный эффект при построении ROC. В литературе объяснений не нашел. Вероятно, плохо искал, но тем не менее...
Иногда при построении ROC по всем правилам алгоритма кривая оказывается ниже диагонали Se + (1 - Sp) = 0,5. Следовательно, AUC получается менее 0,5. В источниках утверждается, что AUC = 0,5 - это "бесполезный классификатор". Как тогда объяснить AUC менее 0,5? Нами предложено такое решение. Классически считается алгоритм ROC. Если AUC оказывается менее 0,5, то в исходных данных меняется кодировка с 0 на 1 (или, что то же самое, меняются местами опытная и стандартная выборки). Затем расчет производится заново. При этом ROC как бы "переворачивается" относительно диагонали. Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
12.07.2008 - 10:27
Сообщение
#32
|
|
Группа: Пользователи Сообщений: 1325 Регистрация: 27.11.2007 Пользователь №: 4573 |
Я вам об этом и писала
5.07.2008 - 01:57 ПОэтому, обнаруженный вами "эффект" абсолютно закономерен. Любая программа по умолчанию считает, что "1" это больной или спрашивает относительно какой кодировки будет рассчитана чувствительность. |
|
12.07.2008 - 10:59
Сообщение
#33
|
|
Группа: Пользователи Сообщений: 1114 Регистрация: 10.04.2007 Пользователь №: 4040 |
Я вам об этом и писала 5.07.2008 - 01:57 ПОэтому, обнаруженный вами "эффект" абсолютно закономерен. Любая программа по умолчанию считает, что "1" это больной или спрашивает относительно какой кодировки будет рассчитана чувствительность. В примере плава данного эффекта нет, потому мы на него и не наткнулись. А пусть, к примеру, вот такие данные: Больные (кодировка - 1): 49,00 35,00 26,00 59,00 35,00 58,00 14,00 29,00 17,00 11,00 37,00 22,00 39,00 8,00 50,00 67,00 54,00 19,00 29,00 93,00 109,00 95,00 Здоровые (кодировка - 0): 16,00 31,00 10,00 60,00 13,00 7,00 20,00 36,00 18,00 12,00 55,00 7,00 41,00 5,00 28,00 16,00 9,00 Некоторые результаты: AUC 0,74599 SE(AUC) 0,08 Нижний CI 95% 0,59 Верхний CI 95% 0,90 Оптимальный порог отсечения 22,00000, при этом Чувствительность, % 77,27273 Специфичность, % 64,70588235 Теперь, предположим, что первая выборка - здоровые, вторая - больные. Применение алгоритма дает "перевернутую" ROC и AUC < 0,5? Прошу заранее прощения, но хотелось бы услышать объяснение "эффекту". И правильно ли мы делаем в предложенном решении проблемы. Может, дело в том, что значение исследуемого параметра в одном случае означает "чем более, тем здоровее". А в другом случае "чем менее, тем здоровее"? Мы предполагали, что дело в численности здоровых и больных (для Манна-Уитни это важно). Оказалось, что это ложное предположение. В том, что программы считают правильно, сомнения нет. Но формальное применение алгоритма не дает такой "правильности". Следовательно, описанный в начале темы алгоритм не полный и в программы заложен не он. Следовательно, его нужно усовершенствовать. Только и всего. Ничего личного. Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
12.07.2008 - 12:01
Сообщение
#34
|
|
Группа: Пользователи Сообщений: 1325 Регистрация: 27.11.2007 Пользователь №: 4573 |
Я пользуюсь лицензионной программой MedCalc, сама программы не пишу, но документации читаю.
Однако, для меня важна именно смысловая интерпретация, нежели особенности алгоритма. По вашему примеру программы выдает: Area under the ROC curve (AUC) 0,746 Standard error 0,0783 95% Confidence interval 0,581 to 0,871 Significance level P (Area=0.5) 0,0017 Указанная вами чувтвительность и специфичность, однако, относится к другой точке разделения >20, а в точке 22 чувствительность ниже se=72,73 sp=64,71. Если поменять кодировки (больных на здоровых), то программа будет выдавать те же оценки площади, но в точке разделения <=20 чувствительность будет 64,7 специфичность 77,3. |
|
12.07.2008 - 12:44
Сообщение
#35
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 |
Обнаружен интересный эффект при построении ROC. В литературе объяснений не нашел. Вероятно, плохо искал, но тем не менее... Иногда при построении ROC по всем правилам алгоритма кривая оказывается ниже диагонали Se + (1 - Sp) = 0,5. Следовательно, AUC получается менее 0,5. В источниках утверждается, что AUC = 0,5 - это "бесполезный классификатор". Как тогда объяснить AUC менее 0,5? Нами предложено такое решение. Классически считается алгоритм ROC. Если AUC оказывается менее 0,5, то в исходных данных меняется кодировка с 0 на 1 (или, что то же самое, меняются местами опытная и стандартная выборки). Затем расчет производится заново. При этом ROC как бы "переворачивается" относительно диагонали. На самом деле очень просто. Если AUC меньше 0.5, то это фактор, который чаще встречается у здоровых, чем у больных (т.е. обратная классификация - например, если в моем примере использовать как диагностическое правило "ХС меньше границы", то получится AUC меньше 0.5). Соответственно, надо тогда просто изменить классифицирующее правило. Я не совсем понял насчет важности "здоровые" и "больные" для теста МУ. Фактически ведь там две группы - и как их обозначить - дело второе. Расчет же AUC исходя из теста МУ автоматически предполагает, что 0.5<=AUC<=1.0 (по крайней мере в версии, которая обсуждалась выше, можно рассчитывать U-статистику не по правилам критерия и тогда будет и AUC меньше 0.5, но не уверен, что все нормальной пойдет с оценкой дисперсии AUC). Отсюда вывод - надо вначале нарисовать график ROC, посмотреть не перевернут ли он и затем только интерпретировать результаты. |
|
12.07.2008 - 14:25
Сообщение
#36
|
|
Группа: Пользователи Сообщений: 1325 Регистрация: 27.11.2007 Пользователь №: 4573 |
ROC обычно применяют во второй части анализа, после анализа различия средних значений, или когда посчитыны вероятности логистической регрессией, и т.д., потому уже известно, какие средние у больных или здоровых и вероятность чего вы вычисляете. Научная гипотезе может быть проверена различными методами, но без нее похоже на гадание на кофейтой гуще. ROC анализ меня и вдохновляет потому, что имеет ясную интерпретацию в диагностике или прогнозе.
|
|
12.07.2008 - 16:38
Сообщение
#37
|
|
Группа: Пользователи Сообщений: 1114 Регистрация: 10.04.2007 Пользователь №: 4040 |
Большое спасибо, плав, DrgLena!
Теперь о ROC анализе понятно всё. Полное совпадение. Не так просто, даже имея понимаемую концепцию, составить алгоритм с учетом всех нюансов, а из него работающую программу, пусть даже это всего лишь макрос в Excel, а вычислительная сложность невысока. Аналогичная история у нас происходила при обработке практически всех расчетных методов. А это очень важно для тех пользователей, кто не имеет средств на приобретение дорогостоящих аналитических программ, но имеет немного свободного личного времени, чтобы попытаться разобраться с алгоритмами. Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
12.07.2008 - 17:07
Сообщение
#38
|
|
Группа: Пользователи Сообщений: 1325 Регистрация: 27.11.2007 Пользователь №: 4573 |
Хорошо, чтобы и автор поста Татьяна24 смогла выполнить этот анализ для своих данных.
Добавить еще можно полезную характеристику диагностического теста, которая одновременно характеризует и чувствительность и специфичность:отношение правдоподобия для конкретного результата теста (отношение вероятности результата диагностического теста у больных к вероятности этого же результата у здоровых +LR: Positive likelihood ratio 2,19 (первоначальные данные) 2,37 (если поменять кодировки) |
|
12.07.2008 - 18:55
Сообщение
#39
|
|
Группа: Пользователи Сообщений: 1114 Регистрация: 10.04.2007 Пользователь №: 4040 |
Хорошо, чтобы и автор поста Татьяна24 смогла выполнить этот анализ для своих данных. Надеюсь, в понедельник 14.07.2008 часам к 8 мск будет собран и выложен на соответствующем сайте дистрибутив новой версии бесплатного ПО AtteStat, ПРАВИЛЬНО выполняющей ROC анализ. Поэтому Татьяна24 сможет легко выполнить свои расчеты. Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
12.07.2008 - 18:55
Сообщение
#40
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 |
Я тут проанализировал результаты разных подходов (пример Игоря) и получил следующие данные (для иллюстрации некоторых различий методов):
NLMIXED (нормальная аппроксимация, метод максимального правдоподобия) AUC 0.7433 (0.5903 - 0.8963 ) BOOT (нормальная аппроксимация, метод с интенсивным использованием ЭВМ (бутстрап)) AUC 0.74979 (0.59707 - 0.86256) BOOT Mann-Whitney (аппроксимация по тесту Мэнна-Уитни, метод с интенсивным использованием ЭВМ (бутстрап)) AUC 0.74866 (0.57487 - 0.88503) Mann-Whitney approx (аппроксимация по тесту Мэнна-Уитни, асимптотический метод (описанный выше)) AUC 0.74599 (0.59259 - 0.89939) Somer's D (аппроксимация через статистику Сомера, асимптотический метод (SAS)) AUC 0.74599 (0.59169 - 0.90029) Хотя общий вывод одинаков (в смысле значимости теста), различия есть Это я писал еще до поста Игоря, который выше а так можно только поздравить автора, т.к. ROC анализ используется не так часто, как хотелось бы и виной тому отсутствие внятных модулей в программах (чего стоит, например, необходимость писать в SAS описанный выше код даже для простейших случаев ) |
|
14.04.2015 - 22:48
Сообщение
#41
|
|
Группа: Пользователи Сообщений: 1 Регистрация: 14.04.2015 Пользователь №: 27163 |
Надеюсь, в понедельник 14.07.2008 часам к 8 мск будет собран и выложен на соответствующем сайте дистрибутив новой версии бесплатного ПО AtteStat, ПРАВИЛЬНО выполняющей ROC анализ. Поэтому Татьяна24 сможет легко выполнить свои расчеты. Игорь, скачала Attestat, версия 12.0.5. и опробовала на ней ваш пример в разделе "Распознавание образов" - Логистическая регрессия. Все данные совпадают, кроме порога: выдает пороги, равные 0.6 и 0.62 (2 метода). Как получить числовое значение порога? Может быть кто-то сталкивался с этой проблемой. |
|
18.04.2015 - 19:05
Сообщение
#42
|
|
Группа: Пользователи Сообщений: 1202 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 |
Игорь, скачала Attestat, версия 12.0.5. и опробовала на ней ваш пример в разделе "Распознавание образов" - Логистическая регрессия. Все данные совпадают, кроме порога: выдает пороги, равные 0.6 и 0.62 (2 метода). Как получить числовое значение порога? Может быть кто-то сталкивался с этой проблемой. Не хочется вас расстраивать , но вы опоздали с вопросом лет на 7 (!). Проект Attestat закрыт. Автор покинул форум, но похоже за это время вырастил достойную смену: http://shgs.ru/news-8352.html Что касается порогов - возможно вам нужен ROC-aнализ. Про него здесь на форуме много информации. Погуглите также на тему индекса Юдена (Youden Index) и Optimal Cut-point in ROC. |
|
20.04.2015 - 08:44
Сообщение
#43
|
|
Группа: Пользователи Сообщений: 94 Регистрация: 18.06.2014 Пользователь №: 26469 |
В одной из работ видел, что критерием определения оптимального порога отсечения (cut-off) являлось минимальное абсолютное значение разницы между Se и Sp. Подскажите пожалуйста принят ли сейчас подход и не лучше ли воспользоваться для этих целей критерием ACC (диагностической точности)?
|
|
20.04.2015 - 10:01
Сообщение
#44
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
В одной из работ видел, что критерием определения оптимального порога отсечения (cut-off) являлось минимальное абсолютное значение разницы между Se и Sp. Подскажите пожалуйста принят ли сейчас подход и не лучше ли воспользоваться для этих целей критерием ACC (диагностической точности)? Главное что бы критерий выбора точки отсечения включал в себя частоты обоих исходов в популяции (и опционально "цены" ошибки первого и второго рода). |
|
20.04.2015 - 10:11
Сообщение
#45
|
|
Группа: Пользователи Сообщений: 94 Регистрация: 18.06.2014 Пользователь №: 26469 |
Спасибо. Подскажите пожалуйста еще, принят ли какой-нибудь диапазон значений индекса Юдена для поиска порога, или чем он больше тем лучше?
|
|