![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#31
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 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!
|
|
![]() |
![]() |
![]()
Сообщение
#32
|
|
Группа: Пользователи Сообщений: 1325 Регистрация: 27.11.2007 Пользователь №: 4573 ![]() |
Я вам об этом и писала
5.07.2008 - 01:57 ПОэтому, обнаруженный вами "эффект" абсолютно закономерен. Любая программа по умолчанию считает, что "1" это больной или спрашивает относительно какой кодировки будет рассчитана чувствительность. |
|
![]() |
![]() |
![]()
Сообщение
#33
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 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!
|
|
![]() |
![]() |
![]()
Сообщение
#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. |
|
![]() |
![]() |
![]()
Сообщение
#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, посмотреть не перевернут ли он и затем только интерпретировать результаты. |
|
![]() |
![]() |
![]()
Сообщение
#36
|
|
Группа: Пользователи Сообщений: 1325 Регистрация: 27.11.2007 Пользователь №: 4573 ![]() |
ROC обычно применяют во второй части анализа, после анализа различия средних значений, или когда посчитыны вероятности логистической регрессией, и т.д., потому уже известно, какие средние у больных или здоровых и вероятность чего вы вычисляете. Научная гипотезе может быть проверена различными методами, но без нее похоже на гадание на кофейтой гуще. ROC анализ меня и вдохновляет потому, что имеет ясную интерпретацию в диагностике или прогнозе.
|
|
![]() |
![]() |
![]()
Сообщение
#37
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
Большое спасибо, плав, DrgLena!
Теперь о ROC анализе понятно всё. ![]() Полное совпадение. Не так просто, даже имея понимаемую концепцию, составить алгоритм с учетом всех нюансов, а из него работающую программу, пусть даже это всего лишь макрос в Excel, а вычислительная сложность невысока. Аналогичная история у нас происходила при обработке практически всех расчетных методов. А это очень важно для тех пользователей, кто не имеет средств на приобретение дорогостоящих аналитических программ, но имеет немного свободного личного времени, чтобы попытаться разобраться с алгоритмами. ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]()
Сообщение
#38
|
|
Группа: Пользователи Сообщений: 1325 Регистрация: 27.11.2007 Пользователь №: 4573 ![]() |
Хорошо, чтобы и автор поста Татьяна24 смогла выполнить этот анализ для своих данных.
Добавить еще можно полезную характеристику диагностического теста, которая одновременно характеризует и чувствительность и специфичность:отношение правдоподобия для конкретного результата теста (отношение вероятности результата диагностического теста у больных к вероятности этого же результата у здоровых +LR: Positive likelihood ratio 2,19 (первоначальные данные) 2,37 (если поменять кодировки) |
|
![]() |
![]() |
![]()
Сообщение
#39
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
Хорошо, чтобы и автор поста Татьяна24 смогла выполнить этот анализ для своих данных. Надеюсь, в понедельник 14.07.2008 часам к 8 мск будет собран и выложен на соответствующем сайте дистрибутив новой версии бесплатного ПО AtteStat, ПРАВИЛЬНО выполняющей ROC анализ. Поэтому Татьяна24 сможет легко выполнить свои расчеты. ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]()
Сообщение
#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) Хотя общий вывод одинаков (в смысле значимости теста), различия есть Это я писал еще до поста Игоря, который выше ![]() ![]() |
|
![]() |
![]() |
![]()
Сообщение
#41
|
|
Группа: Пользователи Сообщений: 1 Регистрация: 14.04.2015 Пользователь №: 27163 ![]() |
Надеюсь, в понедельник 14.07.2008 часам к 8 мск будет собран и выложен на соответствующем сайте дистрибутив новой версии бесплатного ПО AtteStat, ПРАВИЛЬНО выполняющей ROC анализ. Поэтому Татьяна24 сможет легко выполнить свои расчеты. Игорь, скачала Attestat, версия 12.0.5. и опробовала на ней ваш пример в разделе "Распознавание образов" - Логистическая регрессия. Все данные совпадают, кроме порога: выдает пороги, равные 0.6 и 0.62 (2 метода). Как получить числовое значение порога? Может быть кто-то сталкивался с этой проблемой. |
|
![]() |
![]() |
![]()
Сообщение
#42
|
|
Группа: Пользователи Сообщений: 1218 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 ![]() |
Игорь, скачала Attestat, версия 12.0.5. и опробовала на ней ваш пример в разделе "Распознавание образов" - Логистическая регрессия. Все данные совпадают, кроме порога: выдает пороги, равные 0.6 и 0.62 (2 метода). Как получить числовое значение порога? Может быть кто-то сталкивался с этой проблемой. Не хочется вас расстраивать ![]() Что касается порогов - возможно вам нужен ROC-aнализ. Про него здесь на форуме много информации. Погуглите также на тему индекса Юдена (Youden Index) и Optimal Cut-point in ROC. |
|
![]() |
![]() |
![]()
Сообщение
#43
|
|
Группа: Пользователи Сообщений: 94 Регистрация: 18.06.2014 Пользователь №: 26469 ![]() |
В одной из работ видел, что критерием определения оптимального порога отсечения (cut-off) являлось минимальное абсолютное значение разницы между Se и Sp. Подскажите пожалуйста принят ли сейчас подход и не лучше ли воспользоваться для этих целей критерием ACC (диагностической точности)?
|
|
![]() |
![]() |
![]()
Сообщение
#44
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
В одной из работ видел, что критерием определения оптимального порога отсечения (cut-off) являлось минимальное абсолютное значение разницы между Se и Sp. Подскажите пожалуйста принят ли сейчас подход и не лучше ли воспользоваться для этих целей критерием ACC (диагностической точности)? Главное что бы критерий выбора точки отсечения включал в себя частоты обоих исходов в популяции (и опционально "цены" ошибки первого и второго рода). ![]() |
|
![]() |
![]() |
![]()
Сообщение
#45
|
|
Группа: Пользователи Сообщений: 94 Регистрация: 18.06.2014 Пользователь №: 26469 ![]() |
Спасибо. Подскажите пожалуйста еще, принят ли какой-нибудь диапазон значений индекса Юдена для поиска порога, или чем он больше тем лучше?
|
|
![]() |
![]() |
![]() ![]() |