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

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

> Как сравнить результаты регрессии Кокса
propedevt
сообщение 21.02.2012 - 23:27
Сообщение #1





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



Уважаемые форумчане!
Для анализа выживаемости строю модель Кокса, с разными независимыми переменными. И появилась необходимость сравнить модели.
И собственно вопрос у меня к Вам - как сравнить что одна полученная модель лучше чем другая?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
 
Открыть тему
Ответов
propedevt
сообщение 4.03.2012 - 14:24
Сообщение #2





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



Посмотрел, нашел что AIC ? информационный критерий Акаике (первый раз слышу про такой insane.gif )
Почитал про step ( http://stat.ethz.ch/R-manual/R-devel/libra.../html/step.html ) , и не совсем понял его рекомендуют применять для линейных моделей? насколько оправданно и возможно его применение для регресии кокса?

Дальше попробовал его применить - мне нужно сравнить модель1, включающую proBNP + efmss, и модель2, включающую proBNP + efmss + gal + cys.
Получилось это в два действия, из 2 модели программа выбирает 3 предиктора, до двух она не доходит. Поэтому вторым действием вручную сделал модель proBNP + efmss:

Код
> step(coxph(Surv(day,event)~ proBNP + efmss + gal + cys, data), direction = "backward")
Start:  AIC=865.02
Surv(day, event) ~ proBNP + efmss + gal + cys

         Df    AIC
- proBNP  1 864.48
<none>      865.02
- cys     1 865.74
- efmss   1 869.86
- gal     1 932.18

Step:  AIC=864.48
Surv(day, event) ~ efmss + gal + cys

        Df    AIC
<none>     864.48
- cys    1 867.13
- efmss  1 874.56
- gal    1 930.86
Call:
coxph(formula = Surv(day, event) ~ efmss + gal + cys, data = data)


          coef exp(coef) se(coef)     z       p
efmss -3.75697    0.0234 1.13e+00 -3.32 0.00089
gal    0.09448    1.0991 1.05e-02  8.99 0.00000
cys    0.00019    1.0002 8.61e-05  2.20 0.02800

Likelihood ratio test=209  on 3 df, p=0  n= 197, number of events= 108






> step(coxph(Surv(day,event)~ proBNP + efmss, data), direction = "backward")
Start:  AIC=971.42
Surv(day, event) ~ proBNP + efmss

         Df    AIC
<none>      971.42
- proBNP  1 982.64
- efmss   1 999.83
Call:
coxph(formula = Surv(day, event) ~ proBNP + efmss, data = data)


           coef exp(coef) se(coef)     z       p
proBNP  0.00031   1.00031 8.15e-05  3.81 1.4e-04
efmss  -6.32391   0.00179 1.23e+00 -5.13 2.9e-07

Likelihood ratio test=100  on 2 df, p=0  n= 197, number of events= 108


Посоветуйте пожалуйста как нарисовать AIC, тут я не понял frown.gif Сами модели до этого рисовал просто - plot(survfit(model1))
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 4.03.2012 - 18:31
Сообщение #3





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



Цитата(propedevt @ 4.03.2012 - 14:24) *
Посмотрел, нашел что AIC ? информационный критерий Акаике (первый раз слышу про такой insane.gif )
Почитал про step ( http://stat.ethz.ch/R-manual/R-devel/libra.../html/step.html ) , и не совсем понял его рекомендуют применять для линейных моделей? насколько оправданно и возможно его применение для регресии кокса?

Дальше попробовал его применить - мне нужно сравнить модель1, включающую proBNP + efmss, и модель2, включающую proBNP + efmss + gal + cys.
Получилось это в два действия, из 2 модели программа выбирает 3 предиктора, до двух она не доходит. Поэтому вторым действием вручную сделал модель proBNP + efmss:

Код
> step(coxph(Surv(day,event)~ proBNP + efmss + gal + cys, data), direction = "backward")
Start:  AIC=865.02
Surv(day, event) ~ proBNP + efmss + gal + cys

         Df    AIC
- proBNP  1 864.48
<none>      865.02
- cys     1 865.74
- efmss   1 869.86
- gal     1 932.18

Step:  AIC=864.48
Surv(day, event) ~ efmss + gal + cys

        Df    AIC
<none>     864.48
- cys    1 867.13
- efmss  1 874.56
- gal    1 930.86
Call:
coxph(formula = Surv(day, event) ~ efmss + gal + cys, data = data)


          coef exp(coef) se(coef)     z       p
efmss -3.75697    0.0234 1.13e+00 -3.32 0.00089
gal    0.09448    1.0991 1.05e-02  8.99 0.00000
cys    0.00019    1.0002 8.61e-05  2.20 0.02800

Likelihood ratio test=209  on 3 df, p=0  n= 197, number of events= 108






> step(coxph(Surv(day,event)~ proBNP + efmss, data), direction = "backward")
Start:  AIC=971.42
Surv(day, event) ~ proBNP + efmss

         Df    AIC
<none>      971.42
- proBNP  1 982.64
- efmss   1 999.83
Call:
coxph(formula = Surv(day, event) ~ proBNP + efmss, data = data)


           coef exp(coef) se(coef)     z       p
proBNP  0.00031   1.00031 8.15e-05  3.81 1.4e-04
efmss  -6.32391   0.00179 1.23e+00 -5.13 2.9e-07

Likelihood ratio test=100  on 2 df, p=0  n= 197, number of events= 108


Посоветуйте пожалуйста как нарисовать AIC, тут я не понял frown.gif Сами модели до этого рисовал просто - plot(survfit(model1))


AIC нужен чтобы выбрать правильно модель которая сочетает оптимально и сложность своей структуры и точность подгонки к данным. Такая модель имеет наибольшую прогностическую ценность для новых данных.

step() можно применять, модель чем бы она не была описана сводится к своему предсказанию для экспериментальной точки. По остаткам и проводится сравнение моделей.

Вот степ пишет как уменьшается AIC упрощаемой модели, достигает минимума и потом растет. Модель с минимальным AIC должна обладать наилучшими способностями прогноза.

Да, для трех параметров пожалуй достаточно перечислить в порядке убывания. Обычно параметров очень много и получается последовательность которую лучше увидеть графически.


Правильно все рисовали, только вот такое замечание есть

?survival::survfit.coxph
Users are strongly advised to use the newdata argument. Note that
this data set needs to contain values for the main effects but not
for any interaction terms.


Еще можно протестировать выполнены ли предположения о пропорциональности cox.zph

Вот еще графики диагностические для таких моделей
http://stats.stackexchange.com/questions/2...xph-and-rms-cph

Вот для визуализации самой модели
plot.coxph {flexCrossHaz} Plot the estimated time varying log hazard ratio along with pointwise confidence intervals


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

Сообщений в этой теме
- propedevt   Как сравнить результаты регрессии Кокса   21.02.2012 - 23:27
- - propedevt   Никто не знает как сравнить?   23.02.2012 - 08:14
- - DrgLena   У вас была проблема, вы не знали формулу, хотя в д...   23.02.2012 - 11:24
|- - propedevt   Цитата(DrgLena @ 23.02.2012 - 11:24)...   23.02.2012 - 22:29
- - p2004r   Цитата(propedevt @ 21.02.2012 - 23:2...   23.02.2012 - 17:50
|- - propedevt   Цитата(p2004r @ 23.02.2012 - 17:50) ...   23.02.2012 - 22:33
- - p2004r   дубль   23.02.2012 - 18:01
- - propedevt   Уважаемый p2004r! Последовал Вашему совету и н...   3.03.2012 - 21:40
|- - p2004r   Цитата(propedevt @ 3.03.2012 - 21:40...   4.03.2012 - 12:54
- - propedevt   Посмотрел, нашел что AIC ? информационный критерий...   4.03.2012 - 14:24
|- - p2004r   Цитата(propedevt @ 4.03.2012 - 14:24...   4.03.2012 - 18:31
- - propedevt   Доброго времени суток, настали выходные и добрался...   8.03.2012 - 11:49
|- - p2004r   Вот приличный мануал http://cran.r-project.org/do...   8.03.2012 - 14:44
|- - propedevt   Цитата(p2004r @ 8.03.2012 - 14:44) В...   8.03.2012 - 15:24
- - DrgLena   ...   8.03.2012 - 18:13
- - propedevt   Просто средние ковариат? тогда вот они: gal 25,234...   8.03.2012 - 21:10
- - DrgLena   ...   8.03.2012 - 22:27
|- - propedevt   Цитата(DrgLena @ 8.03.2012 - 22:27) ...   8.03.2012 - 23:09
- - DrgLena   Вы сами выбираете единицу измерения времени, в зав...   9.03.2012 - 01:00
- - propedevt   Вычитал даты и получал дни жизни (до 805 дней макс...   9.03.2012 - 08:15
- - propedevt   Уважаемый p2004r, прошу меня извинить, но не сразу...   9.03.2012 - 10:04
|- - p2004r   Цитата(propedevt @ 9.03.2012 - 10:04...   9.03.2012 - 11:25
- - DrgLena   ...   9.03.2012 - 10:59
- - propedevt   Да понял, что если риск 0,8 то выживаемость 0,2 Гр...   9.03.2012 - 11:29
- - DrgLena   Цитата(propedevt @ 9.03.2012 - 11:29...   9.03.2012 - 11:56
- - DrgLena   Закат солнца в ручную у меня не получается с таким...   9.03.2012 - 12:32
|- - p2004r   Цитата(DrgLena @ 9.03.2012 - 12:32) ...   9.03.2012 - 13:24
- - DrgLena   ...   9.03.2012 - 13:41
- - propedevt   Что-то Вы меня совсем запутали:( перечитал что мне...   9.03.2012 - 14:04
|- - p2004r   Цитата(propedevt @ 9.03.2012 - 14:04...   9.03.2012 - 14:14
- - propedevt   Хорошо, файл прикрепил. В последней модели использ...   9.03.2012 - 14:40
|- - p2004r   Цитата(propedevt @ 9.03.2012 - 14:40...   9.03.2012 - 17:15
- - propedevt   Да, до predict все делал точно также   9.03.2012 - 17:18
- - p2004r   Теперь basehazard и счет на прямую. Центрированная...   9.03.2012 - 17:43
|- - p2004r   Код> exp(model5$linear.predictors...   9.03.2012 - 18:36
|- - propedevt   Цитата(p2004r @ 9.03.2012 - 18:36) К...   9.03.2012 - 18:49
|- - p2004r   Линейный предиктор он считает в момент фита name...   9.03.2012 - 19:19
|- - p2004r   Конкретно в этой модели первая переменная похоже н...   9.03.2012 - 19:42
||- - propedevt   Цитата(p2004r @ 9.03.2012 - 19:42) К...   9.03.2012 - 20:35
||- - p2004r   Цитата(propedevt @ 9.03.2012 - 20:35...   9.03.2012 - 21:59
|- - propedevt   Цитата(p2004r @ 9.03.2012 - 19:19) Л...   9.03.2012 - 20:26
|- - p2004r   Цитата(propedevt @ 9.03.2012 - 20:26...   9.03.2012 - 22:33
- - propedevt   Действия математические понятны. Но каков смысл pr...   9.03.2012 - 17:58
- - propedevt   давайте уберем ее из модели, построим только на ga...   9.03.2012 - 22:01
- - propedevt   Так понятно, но я вижу predict не используется же ...   9.03.2012 - 22:39
- - propedevt   Итак хочу написать в математических операциях. нач...   9.03.2012 - 23:23
|- - p2004r   Цитата(propedevt @ 9.03.2012 - 23:23...   10.03.2012 - 11:17
- - propedevt   Т.к. убрал из модели efmss, добавил в нее возраст....   10.03.2012 - 13:43
- - p2004r   Цитата(propedevt @ 10.03.2012 - 13:4...   10.03.2012 - 21:06


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