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

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

> Определение чувствительности и специфичности комбинации маркеров
Zaycho
сообщение 2.08.2012 - 14:20
Сообщение #1





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



Здравствуйте!

Есть задача определить диагностическую ценность ряда маркеров (допустим, А, В и С) и их комбинаций в диагностике некоторого заболевания.
Я расчитал все параметры (чувствительность, специфичность, PPV, NPV, LR) и построил в SPSS ROC-кривые отдельно для А, В и С.
Как теперь сделать то же самое для комбинаций этих маркеров, допустим, А+В и В+С? Где копать?

Заранее огромное спасибо!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
 
Открыть тему
Ответов
DrgLena
сообщение 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 групп риска будет иметь свою расчетную вероятность наступления события. При этом экспоненциальные коэффициенты уравнения регрессии для каждого предиктора будут иметь ясную интерпретацию и показывать независимый вклад каждого фактора.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 4.08.2012 - 10:42
Сообщение #3





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



Цитата(DrgLena @ 3.08.2012 - 23:56) *
А если не лес строить, а одно дерево, то при одном ветвлении, на двух конечных узлах при условии С<=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$выжил.умер)])


второй вариант наоборот цветом группы, значками исходы.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


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


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

Сообщений в этой теме
- 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
- - DrgLena   А если не лес строить, а одно дерево, то при одном...   3.08.2012 - 23:56
|- - p2004r   Цитата(DrgLena @ 3.08.2012 - 23:56) ...   4.08.2012 - 10:42
|- - p2004r   собственно да, svm получше выделяет Код> mode...   4.08.2012 - 11:18
|- - 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


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