ROC-анализ, помогите разобраться |
Здравствуйте, гость ( Вход | Регистрация )
ROC-анализ, помогите разобраться |
15.07.2014 - 23:28
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 16 Регистрация: 20.10.2013 Пользователь №: 25460 |
Доброго времени суток всем профи. Помогите разобраться "чайнику" в ROC-анализе. ROC-кривую строю с помощью пакета SPSS.
У меня много вопросов. Но самый первый - может ли в качестве тестовой переменной выступать переменная, которая имеет интервальную норму? Т.е. у меня в качестве такой переменной выступает иммуноглобулин А (норма 1,6-5,0). Если можно, то как интерпретировать данные? Как найти пороги отсечения (их же в таком случае должно быть два)? Привожу исходные данные (0 - здоровый, 1 - больной). Заранее всем спасибо 0 1,4 0 2,6 0 4,1 0 2,6 0 1,4 1 2,8 1 2,8 1 2,8 0 2,8 0 1,0 1 2,1 1 4,4 0 0,9 0 0,8 1 0,9 0 1,2 0 2,2 1 0,9 1 2,8 1 6,7 1 3,0 0 0,6 1 10,1 0 1,8 1 0,8 1 5,0 0 0,8 1 2,8 1 2,8 0 5,0 1 2,8 0 1,8 1 2,8 1 10,7 1 2,3 1 3,4 1 4,8 1 7,9 1 4,6 0 2,3 1 3,1 1 4,3 1 3,8 1 1,4 1 4,1 0 12,4 0 2,2 0 0,9 1 3,1 1 8,2 0 3,1 0 1,4 0 2,7 0 2,5 0 2,2 0 0,9 1 4,9 1 3,2 1 1,8 1 2,2 1 2,3 1 2,0 1 4,3 1 4,8 1 3,5 1 12,1 1 3,5 0 1,8 1 2,1 1 1,4 0 1,7 1 8,2 1 4,5 0 3,1 1 2,1 1 1,9 1 1,7 0 1,2 1 2,3 1 3,5 1 1,2 1 1,1 0 0,8 0 0,9 0 1,4 1 0,8 1 1,2 0 1,5 1 1,4 0 1,1 1 1,3 1 0,8 1 0,6 0 0,9 0 1,1 0 0,5 |
|
16.07.2014 - 01:11
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Доверительный интервал для AUC
Код > library(pROC) > ci(roc(data$V1, data$V2), method="bootstrap") Loading required package: tcltk 95% CI: 0.6202-0.8203 (2000 stratified bootstrap replicates) Принятие оптимального решения в условии равенства частот и "стоимости" ошибок первого и второго рода. Код > coords(roc(data$V1, data$V2), "best", ret=c("threshold", "specificity", "sensitivity", "1-npv")) threshold specificity sensitivity 1-npv 2.7500000 0.8421053 0.5862069 0.4285714 Ну и результат применения Код > table(data$V1,data$V2>2.75)
FALSE TRUE 0 32 6 1 24 34 Сообщение отредактировал p2004r - 16.07.2014 - 01:14 |
|
16.07.2014 - 10:02
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
|
|
16.07.2014 - 13:26
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 16 Регистрация: 20.10.2013 Пользователь №: 25460 |
Доцент тупой (с)
У иммуноглобулина А есть медицинская норма (я ее и указала). Норма задана интервалом (потому я ее назвала интервальной). Почему тогда нет интервальной нормы? Построить кривую по этим данным я могу, найти площадь тоже могу. Но что делать с порогом отсечения? У меня же есть нижний и верхний пределы уровня иммуноглобулина. Или получается, что для моего случая нет нижнего порога отсечения? А если бы был, то как его искать? Мне хотелось бы понять принцип. Спасибо |
|
16.07.2014 - 14:46
Сообщение
#5
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Доцент тупой (с) У иммуноглобулина А есть медицинская норма (я ее и указала). Норма задана интервалом (потому я ее назвала интервальной). Почему тогда нет интервальной нормы? Построить кривую по этим данным я могу, найти площадь тоже могу. Но что делать с порогом отсечения? У меня же есть нижний и верхний пределы уровня иммуноглобулина. Или получается, что для моего случая нет нижнего порога отсечения? А если бы был, то как его искать? Мне хотелось бы понять принцип. Спасибо Ну "норма" кем то вводилась? Вводилась как доверительный интервал для среднего скорее всего по большой обследованной группе. Смысл у двустороннего доверительного интервала в данном случае был только статистический. Патология "по факту" нарушает только "верхнюю границу", причем даже не первоначальной "нормы". PS А если хочется посчитать предиктивную способность именно "официальной" нормы показателя, то и надо всё пересчитать в отклонения от неё. |
|
17.07.2014 - 10:15
Сообщение
#6
|
|
Группа: Пользователи Сообщений: 16 Регистрация: 20.10.2013 Пользователь №: 25460 |
PS А если хочется посчитать предиктивную способность именно "официальной" нормы показателя, то и надо всё пересчитать в отклонения от неё. Попыталась сделать именно так. Но тут тоже непонятно мне, как правильно сделать. Я посчитала абсолютное отклонение от медицинской нормы (без учета знака). Кривая тут же стала не такой красивой (площадь получилась маленькой). Но тут у меня возник следующий вопрос. Закон распределения явно не может быть нормальным (значения иммуноглобулина слева ограничены 0), поэтому отклонения в меньшую сторону от нормы и в большую не могут быть равнозначными. Т.е. небольшие отклонения в сторону уменьшения могут быть более значимыми, чем небольшие отклонения в большую. А я беру дельту фактически с одинаковым весом. Как тут быть? И тогда граница отсечения - это отклонение от норм, я правильно понимаю? |
|
17.07.2014 - 13:43
Сообщение
#7
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Попыталась сделать именно так. Но тут тоже непонятно мне, как правильно сделать. Я посчитала абсолютное отклонение от медицинской нормы (без учета знака). Кривая тут же стала не такой красивой (площадь получилась маленькой). Но тут у меня возник следующий вопрос. Закон распределения явно не может быть нормальным (значения иммуноглобулина слева ограничены 0), поэтому отклонения в меньшую сторону от нормы и в большую не могут быть равнозначными. Т.е. небольшие отклонения в сторону уменьшения могут быть более значимыми, чем небольшие отклонения в большую. А я беру дельту фактически с одинаковым весом. Как тут быть? И тогда граница отсечения - это отклонение от норм, я правильно понимаю? 1) скорее всего AUC не только мал, но и неотличим от 0.5 (0.5 входит в доверительный интервал для величины AUC) 2) выше был пример с логарифмом показателя, распределения получились более менее, но можно и преобразование специально настроить http://forum.disser.ru/index.php?showtopic=3133 3) есть еще вариант --- посчитать отдельно для случая "выше нормы", "ниже нормы" (как то сомнительно, что заболевания сопровождающиеся "выше нормы" и заболевание сопровождающиеся "ниже нормы" это одно и то же заболевание) |
|
17.07.2014 - 15:25
Сообщение
#8
|
|
Группа: Пользователи Сообщений: 377 Регистрация: 18.08.2008 Из: Москва Златоглавая Пользователь №: 5224 |
Помогите разобраться "чайнику" в ROC-анализе. Строка (пациент) с данными: 0 12,4 - ошибочна. Это выброс в данных, который портит всю "малину". Уберите ее из анализа, и все будет "как доктор прописал". Чего-то я заврался совсем. Провел ROC-анализ в программе SPSS с этой точкой (выбросом) и без него. С выбросом площадь под кривой AUC=0.723, без выброса площадь стала на 0,02 больше AUC=0.743. Увеличение площади (и качества классификации) после цензурирования сильноотклоняющихся данных кажется мне незначительным. Интервальную норму можно использовать для улучшения ROC-кривой. Экспериментальные данные ограничены, поэтому ROC-кривая получилась угловатой, см.рис. p2004r. Если мы из каких-то соображений параметрически зададим вид кривой концентрации иммуноглобулина (см.рис. p2004r чуть ниже), то ROC-кривая станет плавной, а ее площадь должна увеличиться за счет использования дополнителдьной информации о дисперсии (норме). Сообщение отредактировал DoctorStat - 19.07.2014 - 22:18 Просто включи мозги => http://doctorstat.narod.ru
|
|
21.07.2014 - 18:56
Сообщение
#9
|
|
Группа: Пользователи Сообщений: 219 Регистрация: 4.06.2013 Из: Тверь Пользователь №: 24927 |
docent!
Сделал некоторые вычисления. Вот что у меня получилось: 1) ваш показатель не является очень хорошим для классификации по данному заболеванию/ площадь под кривой всего чуть более 0,7.| 2) Не обнаружена связь между нормой- ненормой по вашему показателю и статусом болен-здоров! Как-то это очень странно. 3) Да, как я понимаю, если бы качество классификатора было более высоким, то можно было бы вычислить два порога отсечения по вашему показателю. Я вижу совсем простой способ сделать это: разделить испытуемых на 2 категории / с низким уровнем /меньше среднего 2,83/ и с высоким и выполнить ROC-анализ по этим категориям. Я разделил и сделал все вычисления (хотя данных явно мало). Получил следующие пороги (чувствительность равна специфичности): с низким уровнем - 1,5 , с высоким - 3,5 (нужно правильно делать выводы!). Качество этого классификатора /показателя/ чуть лучше для людей с высоким уровнем . Мой вывод: в данной ситуации наряду с этим нужно использовать и другие показатели и далее...; к норме следует относиться очень осторожно. Существуют и другие подходы к решению этой задачи (для одного показателя). Сообщение отредактировал anserovtv - 22.07.2014 - 12:09 |
|