Здравствуйте, гость ( Вход | Регистрация )
2.08.2012 - 14:20
Сообщение
#1
|
|
|
Группа: Пользователи Сообщений: 10 Регистрация: 2.08.2012 Пользователь №: 24035 |
Здравствуйте!
Есть задача определить диагностическую ценность ряда маркеров (допустим, А, В и С) и их комбинаций в диагностике некоторого заболевания. Я расчитал все параметры (чувствительность, специфичность, PPV, NPV, LR) и построил в SPSS ROC-кривые отдельно для А, В и С. Как теперь сделать то же самое для комбинаций этих маркеров, допустим, А+В и В+С? Где копать? Заранее огромное спасибо! |
|
|
![]() |
![]() |
![]() |
3.08.2012 - 23:56
Сообщение
#2
|
|
|
Группа: Пользователи Сообщений: 1325 Регистрация: 27.11.2007 Пользователь №: 4573 |
А если не лес строить, а одно дерево, то при одном ветвлении, на двух конечных узлах при условии С<=16,64 классификация произойдет с точностью 65,7%
Переменная С разделяет пациентов реальной выборки, а вот В не разделяет и вообще не имеет различий в группах выживших и нет ни по каким парным критериям. И не удивительно, такие разбросы данных (скорее всего ошибки ввода) например, у умерших больных есть значение 237 и 0,14. Вряд ли В может называться маркером. Но в сгенерированных выборках значения могут повторяться или вообще не попасть. ПО приведенным исходным данным точки разделения, и соответственно чувствительность и специфичность с моими расчетами не сходятся, но площадь ROC сходится, это очень странно. Автор должен верифицировать данные, иначе никакие многомерные методы на таких данных применять нельзя. Автор поста проделал часть работы и задал конкретный вопрос, как объединить результаты трех тестов. Это не задача классификации. Есть понятие положительного и отрицательного теста (найдены значения для разделения на положительный и отрицательный результат теста) и нужно узнать вероятность исхода при различных сочетаниях положительных или отрицательных тестов. Если не придираться к конкретным данным, то решить эту задачу можно следующим образом. Создать три бинарных переменных по результатам ROC, для этого использовать оптимальные точки разделения, фактор риска имеется, код 1 и нет ? 0. Эти переменные использовать в логистической регрессии. По полученным коэффициентам посчитать вероятности наступления интересующего события. При этом возможны 8 комбинаций наличия и отсутствия трех факторов риска, от отсутствия всех трех (000) до присутствия всех трех (111). Каждая из 8 групп риска будет иметь свою расчетную вероятность наступления события. При этом экспоненциальные коэффициенты уравнения регрессии для каждого предиктора будут иметь ясную интерпретацию и показывать независимый вклад каждого фактора. |
|
|
![]() |
![]() |
4.08.2012 - 10:42
Сообщение
#3
|
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
А если не лес строить, а одно дерево, то при одном ветвлении, на двух конечных узлах при условии С<=16,64 классификация произойдет с точностью 65,7% Переменная С разделяет пациентов реальной выборки, а вот В не разделяет и вообще не имеет различий в группах выживших и нет ни по каким парным критериям. И не удивительно, такие разбросы данных (скорее всего ошибки ввода) например, у умерших больных есть значение 237 и 0,14. Вряд ли В может называться маркером. Но в сгенерированных выборках значения могут повторяться или вообще не попасть. ПО приведенным исходным данным точки разделения, и соответственно чувствительность и специфичность с моими расчетами не сходятся, но площадь ROC сходится, это очень странно. Автор должен верифицировать данные, иначе никакие многомерные методы на таких данных применять нельзя. 1 по мимо того что B надо логарифмировать, имеются корреляции между предикторами Код > cor(cbind(data.na[,c(2,4)], log(data.na[,3]))) A C log(data.na[, 3]) A 1.0000000 0.2813438 0.1289035 C 0.2813438 1.0000000 0.2625643 log(data.na[, 3]) 0.1289035 0.2625643 1.0000000 > cor.test(data.na[,4], data.na[,2]) Pearson's product-moment correlation data: data.na[, 4] and data.na[, 2] t = 2.4177, df = 68, p-value = 0.01831 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.04965218 0.48430137 sample estimates: cor 0.2813438 > cor.test(data.na[,4], log(data.na[,3])) Pearson's product-moment correlation data: data.na[, 4] and log(data.na[, 3]) t = 2.2439, df = 68, p-value = 0.0281 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.02940446 0.46862610 sample estimates: cor 0.2625643 > cor.test(data.na[,2], log(data.na[,3])) Pearson's product-moment correlation data: data.na[, 2] and log(data.na[, 3]) t = 1.0719, df = 68, p-value = 0.2876 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: -0.1093837 0.3531800 sample estimates: cor 0.1289035 Группа выделена и имеет отличный состав Код > table(factor(cmdscale(dist(rf1$proximity), k=2)[,2]>0.2), factor(data.na$выжил.умер)) 0 1 FALSE 24 21 TRUE 9 16 во 2й группе исходы 9 к 16, в первой 24 к 21 вклад в разделение групп оказывает не один единственный предиктор, (B и С вместе) Кружки первая группа, треугольники вторая. (На сечении С|log(B) вообще летальные исходы сгруппировались в центре и вверху. Может отработать эту нелинейность не может при разделении групп рандомфорест. Нужен какой нибудь svm или явная трансформация данных.) Код > pairs(cbind(data.na[,c(2,4)], log(data.na[,3])), pch=c(1,2)[factor(cmdscale(dist(rf1$proximity), k=2)[,2]>0.2)], col=c("red","green")[factor(data.na$выжил.умер)]) второй вариант наоборот цветом группы, значками исходы. ![]() |
|
|
![]() |
![]() |
4.08.2012 - 11:18
Сообщение
#4
|
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
собственно да, svm получше выделяет
Код > model <- svm( выжил.умер ~ A+B+C, data = data.na, type= "C-classification") > table(model$decision.values<=0,data.na$выжил.умер) 0 1 FALSE 25 12 TRUE 8 25 > table(model$decision.values<=-0.1,data.na$выжил.умер) 0 1 FALSE 27 13 TRUE 6 24 ## логарифмирование имеет значение!! > model <- svm( выжил.умер ~ A+log(B)+C, data = data.na, type= "C-classification") > table(model$decision.values<=-0.1,data.na$выжил.умер) 0 1 FALSE 27 9 TRUE 6 28 вот собственно он их сумел обвести Код > pairs(cbind(data.na[,c(2,4)], log(data.na[,3])), pch=c(1,2)[factor(model$decision.values<=-0.1)], col=c("red","green")[factor(data.na$выжил.умер)]) более сложное ядро в svm смогло бы осилить две области выделения. а так наверное надо просто отрезать всех явно тяжелых сначала, и потом запускать svm который научен центр резать. PS пробабилити Код > cbind(model$decision.values,data.na$выжил.умер)
0/1 1 0.98331246 0 2 0.61530576 1 3 1.00012653 0 4 -0.21684733 0 5 0.99955666 0 6 0.16078293 1 7 -1.00012726 1 8 1.14854667 1 9 -0.99985686 1 10 0.99966273 0 11 0.37811021 0 12 -0.42755238 1 13 1.00021827 0 14 1.00007588 0 15 0.76925049 0 16 0.88688175 0 17 1.01823453 0 18 0.86095764 0 19 1.01908459 0 20 1.18428922 1 21 0.45588013 1 22 -0.73663584 1 23 0.89897670 0 24 1.00026140 0 25 1.00020960 0 26 1.12620025 0 27 -0.71744634 1 28 -0.93837583 1 29 -0.99987350 1 31 -1.20454616 0 33 0.62211341 0 34 -1.37866569 1 35 -1.07486185 1 36 -1.09031422 1 37 -1.06053528 1 38 -0.50515338 1 39 -0.75995557 1 40 0.16392607 0 41 -1.00022084 1 42 0.34876086 0 43 -0.64127520 1 44 -1.15716373 1 45 0.11486255 0 46 -0.13282404 0 47 -1.04569130 0 48 0.37514348 0 49 0.56057748 0 50 0.49439228 1 51 -1.11937289 1 52 -0.89372931 1 53 -0.49529302 0 54 -0.65597539 1 55 -0.92934884 1 56 0.62306627 0 57 -1.15534228 1 58 -1.02889926 1 59 -1.00000111 1 60 0.11401070 0 61 0.68242740 1 62 -1.00003176 1 63 -0.65191720 1 64 0.74228345 1 65 -0.04860989 1 66 -1.13318704 1 67 -0.73920762 1 68 0.73537165 0 69 -1.04658105 0 70 0.16253365 0 71 -0.44523330 1 72 0.41346047 0 Сообщение отредактировал p2004r - 4.08.2012 - 11:29 ![]() |
|
|
![]() |
![]() |
Zaycho Определение чувствительности и специфичности комбинации маркеров 2.08.2012 - 14:20
p2004r Цитата(Zaycho @ 2.08.2012 - 14:20) З... 2.08.2012 - 14:24
Zaycho Цитата(p2004r @ 2.08.2012 - 15:24) м... 2.08.2012 - 14:37
p2004r Цитата(Zaycho @ 2.08.2012 - 14:37) B... 2.08.2012 - 19:38
Zaycho А можно я все-таки покажу исходные данные?
А, В и ... 2.08.2012 - 21:55
p2004r Цитата(Zaycho @ 2.08.2012 - 21:55) А... 3.08.2012 - 12:04
Zaycho Огромное спасибо за разъяснения! А можете тепе... 3.08.2012 - 14:27
p2004r Цитата(Zaycho @ 3.08.2012 - 14:27) О... 3.08.2012 - 14:59
Zaycho Глубокоуважаемый p2004r, правильно ли я понял, что... 3.08.2012 - 16:05
p2004r Цитата(Zaycho @ 3.08.2012 - 16:05) Г... 3.08.2012 - 16:30
Zaycho Я вконец запутался. А,В и С - это параметры, не вл... 3.08.2012 - 16:38
p2004r Цитата(Zaycho @ 3.08.2012 - 16:38) Я... 3.08.2012 - 19:29
TheThing Цитата(Zaycho @ 2.08.2012 - 14:20) З... 3.08.2012 - 08:55
TheThing Согласно моим расчетам лишь фактор С (тяжесть сост... 3.08.2012 - 20:07
p2004r Цитата(TheThing @ 3.08.2012 - 20:07)... 3.08.2012 - 21:12
TheThing значит логистическая регрессия и рэндом форест даю... 3.08.2012 - 21:22
p2004r Цитата(TheThing @ 3.08.2012 - 21:22)... 3.08.2012 - 21:48
p2004r линеаризирующее преобразование (!после отрезан... 4.08.2012 - 11:41
Zaycho Коллеги, а если вернуться к посту #14, то как опре... 5.08.2012 - 11:23
p2004r Цитата(Zaycho @ 5.08.2012 - 11:23) К... 5.08.2012 - 12:55
Zaycho Да, я и не предполагал, что задача окажется не так... 4.08.2012 - 09:39
TheThing Решил сделать рэндом форест, а также построить про... 5.08.2012 - 15:37
p2004r и все таки, после применения правила С>25, оста... 5.08.2012 - 15:56
TheThing Кстати, вот хорошая статья, где проводился сравнит... 5.08.2012 - 16:40
p2004r Цитата(TheThing @ 5.08.2012 - 16:40)... 5.08.2012 - 19:05
Диана Раз зашла речь про ROC-анализ в программе SPSS под... 16.08.2012 - 09:25
TheThing Цитата(Диана @ 16.08.2012 - 09:25) Р... 16.08.2012 - 15:38
Диана Цитата(TheThing @ 16.08.2012 - 16:38... 16.08.2012 - 20:10
p2004r Цитата(Диана @ 16.08.2012 - 20:10) С... 16.08.2012 - 21:53
TheThing Цитата(Диана @ 16.08.2012 - 20:10) С... 16.08.2012 - 22:34
Диана КФР-контролируемый фактор риска, НФР-неконтролируе... 17.08.2012 - 09:02
p2004r Цитата(Диана @ 17.08.2012 - 09:02) К... 17.08.2012 - 15:28
Диана я немножко сократила таблицу, убрала малоинтересую... 17.08.2012 - 18:05
p2004r Цитата(Диана @ 17.08.2012 - 18:05) я... 17.08.2012 - 22:26
Диана Факторы риска:
2
3
5 ... 18.08.2012 - 08:58
p2004r Цитата(Диана @ 18.08.2012 - 08:58) Ф... 18.08.2012 - 13:18
Диана спасибо за помощь. колонки 44-46 не имеют влияние... 18.08.2012 - 20:57
p2004r Цитата(Диана @ 18.08.2012 - 20:57) с... 18.08.2012 - 22:37
Диана колонки 44А 45А 46А были перекодированные колонки ... 19.08.2012 - 09:21
Диана Подскажите кто знает: возможно ли удалить выложенн... 26.08.2012 - 08:57
Диана ничего не получается, от проводимого лечения нет д... 26.08.2012 - 08:59
p2004r Цитата(Диана @ 26.08.2012 - 08:59) н... 27.08.2012 - 15:12
Диана Цитата(p2004r @ 27.08.2012 - 16:12) ... 27.08.2012 - 16:58
p2004r Цитата(Диана @ 27.08.2012 - 16:58) з... 27.08.2012 - 17:14
Диана 2) "влияет ли тип операции на снижение частот... 27.08.2012 - 17:42
Диана Хорошо, 13 колонка делит пациентов на 3 группы. Ле... 27.08.2012 - 17:25
Диана 1) влияет ли снижение ЧСС до операции на снижение ... 27.08.2012 - 17:29
p2004r Цитата(Диана @ 27.08.2012 - 17:29) 1... 27.08.2012 - 22:24
Диана супер, в мозаичных графиках данные очень наглядно ... 28.08.2012 - 09:02
p2004r Цитата(Диана @ 28.08.2012 - 09:02) с... 28.08.2012 - 12:07
Диана у меня есть данные факторного анализа, но, как сей... 28.08.2012 - 13:46
p2004r Цитата(Диана @ 28.08.2012 - 13:46) у... 28.08.2012 - 19:54
Диана RE: Определение чувствительности и специфичности комбинации маркеров 28.08.2012 - 21:10
p2004r Цитата(Диана @ 28.08.2012 - 21:10)
... 31.08.2012 - 16:49
Диана фактически группы две - 1 и 3, вторая размазана ме... 1.09.2012 - 22:22
Диана не могу разобраться с 3 графиком, какой то он слож... 1.09.2012 - 22:26
p2004r Цитата(Диана @ 1.09.2012 - 22:26) н... 3.09.2012 - 18:18
p2004r Для новых данных надо заново номера переменных соб... 7.09.2012 - 20:00
p2004r Цитата(p2004r @ 7.09.2012 - 20:00) Д... 10.09.2012 - 11:33
Диана ГБ : int 3 3 3 3 3 3 3 3 3 3 .... 10.09.2012 - 21:47![]() ![]() |