Здравствуйте, гость ( Вход | Регистрация )
21.02.2012 - 23:27
Сообщение
#1
|
|
|
Группа: Пользователи Сообщений: 27 Регистрация: 5.02.2012 Пользователь №: 23464 |
Уважаемые форумчане!
Для анализа выживаемости строю модель Кокса, с разными независимыми переменными. И появилась необходимость сравнить модели. И собственно вопрос у меня к Вам - как сравнить что одна полученная модель лучше чем другая? |
|
|
![]() |
![]() |
![]() |
9.03.2012 - 10:04
Сообщение
#2
|
|
|
Группа: Пользователи Сообщений: 27 Регистрация: 5.02.2012 Пользователь №: 23464 |
Уважаемый p2004r, прошу меня извинить, но не сразу заметил в Вашем сообщении кроме кода, который привели, Вы указали функцию basehaz.
Написал такой простой код: baseline <- basehaz(model4, centered=FALSE) plot(baseline$time,baseline$hazard,xlab="Time",ylab="Hazard",col="red",type="l") и получил в итоге график: ![]() и для средних: baseline1 <- basehaz(model4, centered=TRUE) plot(baseline1$time,baseline1$hazard,xlab="Time",ylab="Hazard",col="red",type="l") ![]() Уважаемая DrgLena, скажите пожалуйста это и есть нужный мне график H0(t) ? Сообщение отредактировал propedevt - 9.03.2012 - 10:45 |
|
|
![]() |
![]() |
9.03.2012 - 11:25
Сообщение
#3
|
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Уважаемый p2004r, прошу меня извинить, но не сразу заметил в Вашем сообщении кроме кода, который привели, Вы указали функцию basehaz. Написал такой простой код: baseline <- basehaz(model4, centered=FALSE) plot(baseline$time,baseline$hazard,xlab="Time",ylab="Hazard",col="red",type="l") и получил в итоге график: ![]() Уважаемая DrgLena, скажите пожалуйста это и есть нужный мне график H0(t) ? Код > basehaz function (fit, centered = TRUE) { if (!inherits(fit, "coxph")) stop("must be a coxph object") sfit <- survfit(fit) H <- -log(sfit$surv) strata <- sfit$strata if (!is.null(strata)) strata <- factor(rep(names(strata), strata), levels = names(strata)) if (!centered) { z0 <- fit$means bz0 <- sum(z0 * coef(fit)) H <- H * exp(-bz0) } if (is.null(strata)) return(data.frame(hazard = H, time = sfit$time)) else return(data.frame(hazard = H, time = sfit$time, strata = strata)) } <environment: namespace:survival> В Вашем случае срабатывает Код sfit <- survfit(fit) H <- -log(sfit$surv) z0 <- fit$means bz0 <- sum(z0 * coef(fit)) H <- H * exp(-bz0) Именно hazard у одиночного случая по времени h(t)=h0(t)*exp(sum(z_случая*coef(fit))) h0(t) hazard для случая когда z<-0, и его считают как -log(sfit$surv) Как показывает код функция считает именно то что Вы хотели. Подставляет средние всех ковариант. Цитата Finally, the program lists the baseline cumulative hazard H0(t), with the cumulative hazard and survival at mean of all covariates in the model. Вообще то для расчетов проще использовать predict(), весь этот закат солнца в ручную признаться утомителен. Если конечно это не самоцель http://stat.ethz.ch/R-manual/R-devel/libra...dict.coxph.html Цитата The Cox model is a relative risk model; predictions of type "linear predictor", "risk", and "terms" are all relative to the sample from which they came. By default, the reference value for each of these is the mean covariate within strata. The primary underlying reason is statistical: a Cox model only predicts relative risks between pairs of subjects within the same strata, and hence the addition of a constant to any covariate, either overall or only within a particular stratum, has no effect on the fitted results. Using the reference="strata" option causes this to be true for predictions as well.
When the results of predict are used in further calculations it may be desirable to use a fixed reference level. Use of reference="sample" will use the overall means, and agrees with the linear.predictors component of the coxph object (which uses the overall mean for backwards compatability with older code). Predictions of type "expected" incorportate the baseline hazard and are thus absolute instead of relative; the reference option has no effect on these. ![]() |
|
|
![]() |
![]() |
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
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![]() ![]() |