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

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

 
Добавить ответ в эту темуОткрыть тему
> ROC-анализ, помогите разобраться
docent
сообщение 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 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
Эскизы прикрепленных изображений
Прикрепленное изображение
 


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 16.07.2014 - 10:02
Сообщение #3





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



А "интервальной нормы" тут никакой по факту нет smile.gif

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
docent
сообщение 16.07.2014 - 13:26
Сообщение #4





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



Доцент тупой (с)
У иммуноглобулина А есть медицинская норма (я ее и указала). Норма задана интервалом (потому я ее назвала интервальной). Почему тогда нет интервальной нормы? Построить кривую по этим данным я могу, найти площадь тоже могу. Но что делать с порогом отсечения? У меня же есть нижний и верхний пределы уровня иммуноглобулина. Или получается, что для моего случая нет нижнего порога отсечения? А если бы был, то как его искать? Мне хотелось бы понять принцип. Спасибо
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 16.07.2014 - 14:46
Сообщение #5





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



Цитата(docent @ 16.07.2014 - 13:26) *
Доцент тупой (с)
У иммуноглобулина А есть медицинская норма (я ее и указала). Норма задана интервалом (потому я ее назвала интервальной). Почему тогда нет интервальной нормы? Построить кривую по этим данным я могу, найти площадь тоже могу. Но что делать с порогом отсечения? У меня же есть нижний и верхний пределы уровня иммуноглобулина. Или получается, что для моего случая нет нижнего порога отсечения? А если бы был, то как его искать? Мне хотелось бы понять принцип. Спасибо


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


PS А если хочется посчитать предиктивную способность именно "официальной" нормы показателя, то и надо всё пересчитать в отклонения от неё.


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
docent
сообщение 17.07.2014 - 10:15
Сообщение #6





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



Цитата(p2004r @ 16.07.2014 - 14:46) *
PS А если хочется посчитать предиктивную способность именно "официальной" нормы показателя, то и надо всё пересчитать в отклонения от неё.

Попыталась сделать именно так. Но тут тоже непонятно мне, как правильно сделать. Я посчитала абсолютное отклонение от медицинской нормы (без учета знака). Кривая тут же стала не такой красивой (площадь получилась маленькой). Но тут у меня возник следующий вопрос. Закон распределения явно не может быть нормальным (значения иммуноглобулина слева ограничены 0), поэтому отклонения в меньшую сторону от нормы и в большую не могут быть равнозначными. Т.е. небольшие отклонения в сторону уменьшения могут быть более значимыми, чем небольшие отклонения в большую. А я беру дельту фактически с одинаковым весом. Как тут быть?
И тогда граница отсечения - это отклонение от норм, я правильно понимаю?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 17.07.2014 - 13:43
Сообщение #7





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



Цитата(docent @ 17.07.2014 - 10:15) *
Попыталась сделать именно так. Но тут тоже непонятно мне, как правильно сделать. Я посчитала абсолютное отклонение от медицинской нормы (без учета знака). Кривая тут же стала не такой красивой (площадь получилась маленькой). Но тут у меня возник следующий вопрос. Закон распределения явно не может быть нормальным (значения иммуноглобулина слева ограничены 0), поэтому отклонения в меньшую сторону от нормы и в большую не могут быть равнозначными. Т.е. небольшие отклонения в сторону уменьшения могут быть более значимыми, чем небольшие отклонения в большую. А я беру дельту фактически с одинаковым весом. Как тут быть?
И тогда граница отсечения - это отклонение от норм, я правильно понимаю?


1) скорее всего AUC не только мал, но и неотличим от 0.5 (0.5 входит в доверительный интервал для величины AUC)

2) выше был пример с логарифмом показателя, распределения получились более менее, но можно и преобразование специально настроить http://forum.disser.ru/index.php?showtopic=3133

3) есть еще вариант --- посчитать отдельно для случая "выше нормы", "ниже нормы" (как то сомнительно, что заболевания сопровождающиеся "выше нормы" и заболевание сопровождающиеся "ниже нормы" это одно и то же заболевание)



Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
DoctorStat
сообщение 17.07.2014 - 15:25
Сообщение #8





Группа: Пользователи
Сообщений: 377
Регистрация: 18.08.2008
Из: Москва Златоглавая
Пользователь №: 5224



Цитата(docent @ 16.07.2014 - 00:28) *
Помогите разобраться "чайнику" в 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


Signature
Просто включи мозги => http://doctorstat.narod.ru
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
anserovtv
сообщение 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

Добавить ответ в эту темуОткрыть тему