Определение чувствительности и специфичности комбинации маркеров |
Здравствуйте, гость ( Вход | Регистрация )
Определение чувствительности и специфичности комбинации маркеров |
2.08.2012 - 14:20
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 10 Регистрация: 2.08.2012 Пользователь №: 24035 |
Здравствуйте!
Есть задача определить диагностическую ценность ряда маркеров (допустим, А, В и С) и их комбинаций в диагностике некоторого заболевания. Я расчитал все параметры (чувствительность, специфичность, PPV, NPV, LR) и построил в SPSS ROC-кривые отдельно для А, В и С. Как теперь сделать то же самое для комбинаций этих маркеров, допустим, А+В и В+С? Где копать? Заранее огромное спасибо! |
|
2.08.2012 - 14:24
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Здравствуйте! Есть задача определить диагностическую ценность ряда маркеров (допустим, А, В и С) и их комбинаций в диагностике некоторого заболевания. Я расчитал все параметры (чувствительность, специфичность, PPV, NPV, LR) и построил в SPSS ROC-кривые отдельно для А, В и С. Как теперь сделать то же самое для комбинаций этих маркеров, допустим, А+В и В+С? Где копать? Заранее огромное спасибо! можно рандомфорест применить и вклад маркеров по его результатам определить. можно логистическую регрессию для полной модели построить и для комбинаций. модели сравнивать через сравнение ROC. |
|
2.08.2012 - 14:37
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 10 Регистрация: 2.08.2012 Пользователь №: 24035 |
можно рандомфорест применить и вклад маркеров по его результатам определить. можно логистическую регрессию для полной модели построить и для комбинаций. модели сравнивать через сравнение ROC. Big thx за ответ, но я не такой великий спец в статистике - если не затруднит, можно чуть подробнее? Как построить логистическую регрессию для полной модели (как сгруппировать исходные данные?) В идеале - где это все в SPSS и/или Статистике? Ну а если с примером........ )) Сообщение отредактировал Zaycho - 2.08.2012 - 14:40 |
|
2.08.2012 - 19:38
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Big thx за ответ, но я не такой великий спец в статистике - если не затруднит, можно чуть подробнее? Как построить логистическую регрессию для полной модели (как сгруппировать исходные данные?) В идеале - где это все в SPSS и/или Статистике? Ну а если с примером........ )) могу в R показать , но для полного примера нужны данные ) как понимаю есть эксперимент или наблюдение в котором каждому случаю наличия-отсутствия заболевания соответствует строка наличия-отсутствия признаков? если случаи наблюдения-эксперимента не представляют сочетания наличия-отсутствия признаков то естественно ничего хорошего скорее всего не получится. на такую таблицу (назовем её table) легко натравить randomForest Код rf <- randomForest(Болезнь ~ ., data=table, importance=TRUE, proximity=TRUE) После этого смотрим вклад признаков Код varImpPlot(rf) |
|
2.08.2012 - 21:55
Сообщение
#5
|
|
Группа: Пользователи Сообщений: 10 Регистрация: 2.08.2012 Пользователь №: 24035 |
А можно я все-таки покажу исходные данные?
А, В и С - непрерывные величины Выжил/умер - принимает только 2 значения )
Прикрепленные файлы
|
|
3.08.2012 - 08:55
Сообщение
#6
|
|
Группа: Пользователи Сообщений: 116 Регистрация: 20.02.2011 Пользователь №: 23251 |
Здравствуйте! Есть задача определить диагностическую ценность ряда маркеров (допустим, А, В и С) и их комбинаций в диагностике некоторого заболевания. Я расчитал все параметры (чувствительность, специфичность, PPV, NPV, LR) и построил в SPSS ROC-кривые отдельно для А, В и С. Как теперь сделать то же самое для комбинаций этих маркеров, допустим, А+В и В+С? Где копать? Заранее огромное спасибо! Если Вы лучше знакомы с СПСС, постройте модель с помощью логистической регрессии. Заходите в Analyze-Regression-Binary. Факторы А,Б,С перемещаете в Covariates (independent variables), наличие/отсутсвие заболевания в Dependent variable. Закладка Categorical Вам не нужна, поскольку, как я понял, предикторы все у вас количественные. В закладке Save выбираете сохранить вероятности группы (group probabilities). В опциях 95% ДИ, тест Хосмера-Лемешова и все остальное по-желанию. Нажимаете ОК, строится модель, которая включает в себя набор всех предикторов А,Б,С, рассчитанные коэффициенты, р-значения, ДИ и т.д. ROC-кривая строится с помощью меню ROC-curve, где в Test-variable Вы закидываете рассчитанные групповые вероятности, а в State - указываете код, которым у Вас закодировано состояние больного человека (1 например). Построенная логистическая модель может предсказывать аддитивный (суммационный) эффект всех факторов А,Б,С на риск развития заболевания. То есть, все факторы представлены главными эффектами (main effects) - не учитывается возможность взаимодействия фактора А например с фактором Б. Если Вас такое устраивает, можно на этом остановиться. А если Вам интересно посмотреть взаимодействует ли фактор А с фактором Б (присутствует ли синергетический эффект например), нужно построить модель, которая учитывала бы взаимодействие факторов (для этого используется кнопочка a*b в логистической регрессии). Интерпретировать результаты будет намного сложнее, могу посоветовать хорошую книгу на эту тему от Sage publishing - Interaction effects (terms) in logistic regression. Если нравятся случайные леса, установите SPSS Clementine или используйте код, который привел p2004r Сообщение отредактировал TheThing - 3.08.2012 - 08:56 |
|
3.08.2012 - 12:04
Сообщение
#7
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
А можно я все-таки покажу исходные данные? А, В и С - непрерывные величины Выжил/умер - принимает только 2 значения ) таблицу чуток пришлось отредактировать от пояснений Код rf<-randomForest(data.na[,2:4],factor(data.na$выжил.умер), proximity=TRUE) > rf Call: randomForest(x = data.na[, 2:4], y = factor(data.na$выжил.умер), proximity = TRUE) Type of random forest: classification Number of trees: 500 No. of variables tried at each split: 1 OOB estimate of error rate: 31.43% Confusion matrix: 0 1 class.error 0 22 11 0.3333333 1 11 26 0.2972973 > round(importance(rf), 2) MeanDecreaseGini A 10.93 B 12.09 C 10.97 > MDSplot(rf, factor(data.na$выжил.умер), k=2, palette=c(1, 2), pch=data.na$выжил.умер) собственно все случаи делятся явно на две группы, и имеются два фактора "выживания". первый фактор действует в обоих группах. второй фактор собственно определяет деление на две группы в одной из которых смертность намного ниже чем во второй группе (и обусловлена действием первого фактора). |
|
3.08.2012 - 14:27
Сообщение
#8
|
|
Группа: Пользователи Сообщений: 10 Регистрация: 2.08.2012 Пользователь №: 24035 |
Огромное спасибо за разъяснения! А можете теперь ткнуть пальцем ламеру, где здесь групповые вероятности, которые можно подставить в ROC-анализ?
Прикрепленные файлы
|
|
3.08.2012 - 14:59
Сообщение
#9
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Огромное спасибо за разъяснения! А можете теперь ткнуть пальцем ламеру, где здесь групповые вероятности, которые можно подставить в ROC-анализ? для первого датасета Код > data.frame(votes=rf$votes, alive=data.na$выжил.умер, n=data.na$N )
votes.0 votes.1 alive n 1 0.76243094 0.23756906 0 1 2 0.80203046 0.19796954 1 2 3 0.72067039 0.27932961 0 3 4 0.17486339 0.82513661 0 4 5 0.74054054 0.25945946 0 5 6 0.82352941 0.17647059 1 6 7 0.37055838 0.62944162 1 7 8 0.80213904 0.19786096 1 8 9 0.27472527 0.72527473 1 9 10 0.70322581 0.29677419 0 10 11 0.60215054 0.39784946 0 11 12 0.39512195 0.60487805 1 12 13 0.83815029 0.16184971 0 13 14 0.89893617 0.10106383 0 14 15 0.40101523 0.59898477 0 15 16 0.79081633 0.20918367 0 16 17 0.68333333 0.31666667 0 17 18 0.67875648 0.32124352 0 18 19 0.75126904 0.24873096 0 19 20 0.91847826 0.08152174 1 20 21 0.61931818 0.38068182 1 21 22 0.35955056 0.64044944 1 22 23 0.95480226 0.04519774 0 23 24 0.61271676 0.38728324 0 24 25 0.84574468 0.15425532 0 25 26 0.91256831 0.08743169 0 26 27 0.43930636 0.56069364 1 27 28 0.22857143 0.77142857 1 28 29 0.15346535 0.84653465 1 29 31 0.12626263 0.87373737 0 31 33 0.29444444 0.70555556 0 33 34 0.28571429 0.71428571 1 34 35 0.07692308 0.92307692 1 35 36 0.04216867 0.95783133 1 36 37 0.59259259 0.40740741 1 37 38 0.63725490 0.36274510 1 38 39 0.38596491 0.61403509 1 39 40 0.41340782 0.58659218 0 40 41 0.08074534 0.91925466 1 41 42 0.39779006 0.60220994 0 42 43 0.31428571 0.68571429 1 43 44 0.16666667 0.83333333 1 44 45 0.38636364 0.61363636 0 45 46 0.24043716 0.75956284 0 46 47 0.66883117 0.33116883 0 47 48 0.69540230 0.30459770 0 48 49 0.60679612 0.39320388 0 49 50 0.45180723 0.54819277 1 50 51 0.08152174 0.91847826 1 51 52 0.09696970 0.90303030 1 52 53 0.20329670 0.79670330 0 53 54 0.30898876 0.69101124 1 54 55 0.63783784 0.36216216 1 55 56 0.58285714 0.41714286 0 56 57 0.09826590 0.90173410 1 57 58 0.08045977 0.91954023 1 58 59 0.07608696 0.92391304 1 59 60 0.30508475 0.69491525 0 60 61 0.40000000 0.60000000 1 61 62 0.28342246 0.71657754 1 62 63 0.63068182 0.36931818 1 63 64 0.58252427 0.41747573 1 64 65 0.87730061 0.12269939 1 65 66 0.08982036 0.91017964 1 66 67 0.36898396 0.63101604 1 67 68 0.72881356 0.27118644 0 68 69 0.71022727 0.28977273 0 69 70 0.74033149 0.25966851 0 70 71 0.37158470 0.62841530 1 71 72 0.47849462 0.52150538 0 72 |
|
3.08.2012 - 16:05
Сообщение
#10
|
|
Группа: Пользователи Сообщений: 10 Регистрация: 2.08.2012 Пользователь №: 24035 |
Глубокоуважаемый p2004r, правильно ли я понял, что первый столбец цифр с большим количеством знаков после запятой - это для А+В, а второй столбец - для В+С?
Если да, то можно то же самое для А+С? СПАСИБО! |
|
3.08.2012 - 16:30
Сообщение
#11
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Глубокоуважаемый p2004r, правильно ли я понял, что первый столбец цифр с большим количеством знаков после запятой - это для А+В, а второй столбец - для В+С? Если да, то можно то же самое для А+С? СПАСИБО! нет, не так. первые два столбца это вероятность для 0, и вероятность для 1 исхода (они зеркальны). нелинейная модель включает в себя все три исходных фактора. Ваша группа неоднородна. Надо смотреть что из исходных факторов на что влияет. Иными словами --- какой вклад в два фактора про которых я написал в предыдущем посте (группообразующий и повышающий вероятность неблагоприятного исхода). |
|
3.08.2012 - 16:38
Сообщение
#12
|
|
Группа: Пользователи Сообщений: 10 Регистрация: 2.08.2012 Пользователь №: 24035 |
Я вконец запутался. А,В и С - это параметры, не влияющие на наступление исхода. А и В - это результаты биохимических тестов, С - оценка тяжести состояния по интегральной шкале. Все три параметра выше при неблагоприятном исходе. Определенный уровень каждого из них с известной чувствительностью и специфичностью является предиктором неблагоприятного исхода. Нас не устраивает их недостаточная прогностическая ценность по отдельности. Как расчитать эти показатели для комбинаций - я так и не понял...........
|
|
3.08.2012 - 19:29
Сообщение
#13
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Я вконец запутался. А,В и С - это параметры, не влияющие на наступление исхода. А и В - это результаты биохимических тестов, С - оценка тяжести состояния по интегральной шкале. Все три параметра выше при неблагоприятном исходе. Определенный уровень каждого из них с известной чувствительностью и специфичностью является предиктором неблагоприятного исхода. Нас не устраивает их недостаточная прогностическая ценность по отдельности. Как расчитать эти показатели для комбинаций - я так и не понял........... B имеет несколько больший вес чем A и C. Но сама картина существенно нелинейна. Имеют место две группы --- 1я с более высоким уровнем смертности и низкой прогнозируемостью исхода, и 2я с низким уровнем смертности и визуально более предсказуемым исходом. За разбиение на эти две группы отвечает некая комбинация ABC (её надо проанализировать). В каждой из этих групп действует некий дополнительный фактор определяющий смертность, причем действует количественно разно. Что входит в этот фактор тоже нужно проанализировать. Сначала надо построить решающее правило к какой группе относится конкретный случай, а потом построить для каждой из групп правило исхода. |
|
3.08.2012 - 20:07
Сообщение
#14
|
|
Группа: Пользователи Сообщений: 116 Регистрация: 20.02.2011 Пользователь №: 23251 |
Согласно моим расчетам лишь фактор С (тяжесть состояния больного) статистически значимо ассоциирован с риском смерти (повышенный риск). Первый столбец цифр - групповые вероятности факторов А+Б+С, второй столбец - вероятности А+Б, третий столбец - А+С, четвертый - Б+С.
0,34015 0,40888 0,34989 0,39730 0,49263 0,50523 0,38566 0,55469 0,42836 0,26548 0,39794 0,62781 0,59121 0,36225 0,60615 0,70132 0,25785 0,31131 0,25945 0,36786 0,43051 0,43519 0,44927 0,47932 0,57229 0,30174 0,58240 0,72457 0,25236 0,38984 0,23751 0,31511 0,48796 0,40442 0,50717 0,56495 0,28626 0,39493 0,29287 0,34319 0,49658 0,37706 0,51123 0,59569 0,37246 0,31495 0,38091 0,50680 0,12237 0,25227 0,11330 0,21316 0,12748 0,31118 0,10785 0,19567 0,53328 0,46286 0,54719 0,57564 0,52075 0,45196 0,49164 0,58775 0,49832 0,42483 0,47445 0,58010 0,36305 0,40782 0,37485 0,42414 0,45776 0,43172 0,47040 0,51505 0,36475 0,42263 0,34469 0,43039 0,57694 0,45255 0,59446 0,62775 0,76129 0,46953 0,75743 0,81078 0,14571 0,39503 0,14859 0,16921 0,13010 0,47251 0,11741 0,13051 0,18435 0,41960 0,15968 0,21998 0,11134 0,39310 0,10980 0,12896 0,86965 0,82693 0,66838 0,83274 0,72274 0,61052 0,74657 0,68379 0,88778 0,82411 0,75763 0,84437 0,86492 0,79245 0,63566 0,81702 0,75099 0,74476 0,35380 0,73615 0,40006 0,19948 0,83108 0,69577 0,83671 0,77659 0,73978 0,64728 0,77173 0,67595 0,67489 0,61222 0,70833 0,62232 0,79319 0,67501 0,82141 0,72640 0,69415 0,70943 0,72958 0,57129 0,70840 0,70052 0,74604 0,59504 0,73655 0,79736 0,77758 0,54065 0,58925 0,63310 0,62808 0,50647 0,55043 0,71285 0,58524 0,40279 0,69639 0,67085 0,71908 0,61115 0,88188 0,67862 0,89790 0,84678 0,46330 0,67591 0,50338 0,33916 0,49648 0,53330 0,52366 0,48054 0,74687 0,58398 0,77340 0,72615 0,47468 0,57482 0,49834 0,42908 0,54642 0,51868 0,56019 0,55171 0,34062 0,60430 0,36285 0,27085 0,73011 0,55340 0,75691 0,72478 0,76456 0,50137 0,78571 0,78991 0,60758 0,46409 0,63096 0,64996 0,66616 0,59398 0,69391 0,62750 0,76595 0,57299 0,74402 0,77482 0,53226 0,56143 0,52938 0,51339 0,65210 0,57569 0,68407 0,62190 0,55687 0,54630 0,58823 0,53632 0,82779 0,56820 0,84837 0,82598 0,63646 0,52353 0,63253 0,65455 0,25158 0,48530 0,26149 0,24793 0,76566 0,53693 0,78297 0,77582 0,66544 0,55563 0,69248 0,65225 0,35473 0,50851 0,36883 0,34657 0,47536 0,54117 0,50240 0,45183 0,68043 0,58309 0,71167 0,64929 0,32747 0,47152 0,34773 0,33673 0,12440 0,56551 0,13399 0,09099 0,74684 0,58395 0,77340 0,72612 0,47667 0,58016 0,50408 0,42592 0,32795 0,59106 0,35756 0,26315 0,56675 0,64000 0,45425 0,54231 Коэффициент конкордации около 65%, что в принципе совпадает с классификационной способностью модели, полученной с помощью случайного леса (100 - OOB error = 100 - 31,43 = 68,57%). Сообщение отредактировал TheThing - 3.08.2012 - 20:12 |
|
3.08.2012 - 21:12
Сообщение
#15
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Согласно моим расчетам лишь фактор С (тяжесть состояния больного) статистически значимо ассоциирован с риском смерти (повышенный риск). Первый столбец цифр - групповые вероятности факторов А+Б+С, второй столбец - вероятности А+Б, третий столбец - А+С, четвертый - Б+С. Код plot(cmdscale(dist(rf$proximity), k=2), col=c("red","green")[factor(data.na$выжил.умер)], cex=c(seq(from=1, to=1.8, along.with=levels(factor(data.na$A))))[factor(data.na$A)]) plot(cmdscale(dist(rf$proximity), k=2), col=c("red","green")[factor(data.na$выжил.умер)], cex=c(seq(from=1, to=1.8, along.with=levels(factor(data.na$B))))[factor(data.na$B)]) plot(cmdscale(dist(rf$proximity), k=2), col=c("red","green")[factor(data.na$выжил.умер)], cex=c(seq(from=1, to=1.8, along.with=levels(factor(data.na$C))))[factor(data.na$C)]) Согласно трем графикам (по A, B, и C размер кругов) в пространстве mds полученном из proximity рандомфореста. Если и можно сомневаться в связи какого то фактора так это C . Ну а разделяет группы больных B. Это очевидно из графика. Его маленькое значение во второй группе наступает ступенчато и ведет к низкому риску летального исхода. И этот фактор по мнению рандом фореста самый весомый. Два остальных фактора --- маленькие значения A в обоих группах у выздоровевших. С ведет себя аналогично A но менее выражена разница у противоположных исходов. Сообщение отредактировал p2004r - 3.08.2012 - 21:19 |
|