Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  < 1 2 3 4 >  
Добавить ответ в эту темуОткрыть тему
> ROC-анализ, определение чувствительности и специфичности метода
Игорь
сообщение 12.07.2008 - 09:21
Сообщение #31





Группа: Пользователи
Сообщений: 1113
Регистрация: 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 как бы "переворачивается" относительно диагонали.


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
DrgLena
сообщение 12.07.2008 - 10:27
Сообщение #32





Группа: Пользователи
Сообщений: 1325
Регистрация: 27.11.2007
Пользователь №: 4573



Я вам об этом и писала
5.07.2008 - 01:57
ПОэтому, обнаруженный вами "эффект" абсолютно закономерен. Любая программа по умолчанию считает, что "1" это больной или спрашивает относительно какой кодировки будет рассчитана чувствительность.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 12.07.2008 - 10:59
Сообщение #33





Группа: Пользователи
Сообщений: 1113
Регистрация: 10.04.2007
Пользователь №: 4040



Цитата(DrgLena @ 12.07.2008 - 10:27) *
Я вам об этом и писала
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?

Прошу заранее прощения, но хотелось бы услышать объяснение "эффекту". И правильно ли мы делаем в предложенном решении проблемы. Может, дело в том, что значение исследуемого параметра в одном случае означает "чем более, тем здоровее". А в другом случае "чем менее, тем здоровее"?

Мы предполагали, что дело в численности здоровых и больных (для Манна-Уитни это важно). Оказалось, что это ложное предположение.

В том, что программы считают правильно, сомнения нет. Но формальное применение алгоритма не дает такой "правильности". Следовательно, описанный в начале темы алгоритм не полный и в программы заложен не он. Следовательно, его нужно усовершенствовать. Только и всего. Ничего личного.


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
DrgLena
сообщение 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



Цитата(Игорь @ 12.07.2008 - 10:21) *
Обнаружен интересный эффект при построении 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, посмотреть не перевернут ли он и затем только интерпретировать результаты.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
DrgLena
сообщение 12.07.2008 - 14:25
Сообщение #36





Группа: Пользователи
Сообщений: 1325
Регистрация: 27.11.2007
Пользователь №: 4573



ROC обычно применяют во второй части анализа, после анализа различия средних значений, или когда посчитыны вероятности логистической регрессией, и т.д., потому уже известно, какие средние у больных или здоровых и вероятность чего вы вычисляете. Научная гипотезе может быть проверена различными методами, но без нее похоже на гадание на кофейтой гуще. ROC анализ меня и вдохновляет потому, что имеет ясную интерпретацию в диагностике или прогнозе.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 12.07.2008 - 16:38
Сообщение #37





Группа: Пользователи
Сообщений: 1113
Регистрация: 10.04.2007
Пользователь №: 4040



Большое спасибо, плав, DrgLena!

Теперь о ROC анализе понятно всё. smile.gif

Полное совпадение.

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


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
DrgLena
сообщение 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





Группа: Пользователи
Сообщений: 1113
Регистрация: 10.04.2007
Пользователь №: 4040



Цитата(DrgLena @ 12.07.2008 - 17:07) *
Хорошо, чтобы и автор поста Татьяна24 смогла выполнить этот анализ для своих данных.

Надеюсь, в понедельник 14.07.2008 часам к 8 мск будет собран и выложен на соответствующем сайте дистрибутив новой версии бесплатного ПО AtteStat, ПРАВИЛЬНО выполняющей ROC анализ. Поэтому Татьяна24 сможет легко выполнить свои расчеты.


Signature
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)
Хотя общий вывод одинаков (в смысле значимости теста), различия есть

Это я писал еще до поста Игоря, который выше smile.gif а так можно только поздравить автора, т.к. ROC анализ используется не так часто, как хотелось бы и виной тому отсутствие внятных модулей в программах (чего стоит, например, необходимость писать в SAS описанный выше код даже для простейших случаев frown.gif )
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
log
сообщение 14.04.2015 - 22:48
Сообщение #41





Группа: Пользователи
Сообщений: 1
Регистрация: 14.04.2015
Пользователь №: 27163



Цитата(Игорь @ 12.07.2008 - 19:55) *
Надеюсь, в понедельник 14.07.2008 часам к 8 мск будет собран и выложен на соответствующем сайте дистрибутив новой версии бесплатного ПО AtteStat, ПРАВИЛЬНО выполняющей ROC анализ. Поэтому Татьяна24 сможет легко выполнить свои расчеты.

Игорь, скачала Attestat, версия 12.0.5. и опробовала на ней ваш пример в разделе "Распознавание образов" - Логистическая регрессия. Все данные совпадают, кроме порога: выдает пороги, равные 0.6 и 0.62 (2 метода). Как получить числовое значение порога? Может быть кто-то сталкивался с этой проблемой.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 18.04.2015 - 19:05
Сообщение #42





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Цитата(log @ 15.04.2015 - 00:48) *
Игорь, скачала Attestat, версия 12.0.5. и опробовала на ней ваш пример в разделе "Распознавание образов" - Логистическая регрессия. Все данные совпадают, кроме порога: выдает пороги, равные 0.6 и 0.62 (2 метода). Как получить числовое значение порога? Может быть кто-то сталкивался с этой проблемой.

Не хочется вас расстраивать shuffle.gif , но вы опоздали с вопросом лет на 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 (диагностической точности)?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 20.04.2015 - 10:01
Сообщение #44





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(малой @ 20.04.2015 - 08:44) *
В одной из работ видел, что критерием определения оптимального порога отсечения (cut-off) являлось минимальное абсолютное значение разницы между Se и Sp. Подскажите пожалуйста принят ли сейчас подход и не лучше ли воспользоваться для этих целей критерием ACC (диагностической точности)?


Главное что бы критерий выбора точки отсечения включал в себя частоты обоих исходов в популяции (и опционально "цены" ошибки первого и второго рода).


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
малой
сообщение 20.04.2015 - 10:11
Сообщение #45





Группа: Пользователи
Сообщений: 94
Регистрация: 18.06.2014
Пользователь №: 26469



Спасибо. Подскажите пожалуйста еще, принят ли какой-нибудь диапазон значений индекса Юдена для поиска порога, или чем он больше тем лучше?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

4 страниц V  < 1 2 3 4 >
Добавить ответ в эту темуОткрыть тему