Forex.Coxph () и SurvC1 :: Est.Cval - тип для вывода предиката () - PullRequest
0 голосов
/ 11 июля 2019

Учитывая модель coxph(), я хочу использовать predict() для прогнозирования опасностей, а затем использовать survC1::Est.Cval( . . . nofit=TRUE) для получения значения c для модели.

Документация Est.Cval() довольно краткая, но говорит, что "nofit = TRUE: если TRUE, 3-й столбец mydata используется в качестве оценки риска непосредственно при расчете C."

Скажите, для простоты, что я хочучтобы прогнозировать на тех же данных, на которых я построил модель.Для

  • coxModel модель регрессии Кокса от coxph();
  • time вектор времен (положительных реалов), столько же, сколько было построено coxModel
  • event вектор 0/1, той же длины, индикаторов событий / цензоров, тех же событий, на которых был построен coxModel -

указывает ли эточто я хочу

predictions <- predict(coxModel, type="risk")

dd <- cbind(time, event, pred)

Est.Cval(mydata=dd, tau=tau, nofit=TRUE)

или эта первая строка должна быть

predictions <- predict(coxModel, type="lp")

?

Спасибо за любую помощь,

1 Ответ

0 голосов
/ 15 июля 2019

Ответ таков: это не имеет значения .

По сути, значение согласованности проверяет, для всех сопоставимых пар времени (события и цензоры), насколько вероятно, что более позднее время имеет меньший риск (для действительно хорошей модели, почти всегда). Но поскольку e ^ u является монотонной функцией действительного u, а значение c служит только для проверки сравнений, не имеет значения, указывается ли отношение рисков, e ^ (sum {\ beta_i x_i}) или линейный предиктор , сумма {\ beta_i x_i}.

Поскольку @ 42 побудило меня создать минимальный рабочий пример, мы можем это проверить. Мы сравним значения, которые Est.Cval() предоставляет, используя один вход с другим; и мы можем сравнить оба значения, которые мы получаем из coxph().

(Это последнее значение не будет точно соответствовать, потому что Est.Cval() использует метод Uno и др. 2011 (Uno, H., Cai, T., Pencina, MJ, D'Agostino, RB & Вэй, Л.Дж. О С-статистике для оценки общей адекватности процедур прогнозирования риска с цензурированными данными о выживаемости.Статист. Мед. 30, 1105–1117 (2011), https://onlinelibrary.wiley.com/doi/full/10.1002/sim.4154), но это может служить проверкой работоспособности, поскольку значения должны быть близки.)

Нижеследующее основано на примере, проработанном в Анализ выживания с R , 2017-09-25, Джозефом Риккертом, https://rviews.rstudio.com/2017/09/25/survival-analysis-with-r/.

library("survival")
library("survC1")

# Load dataset included with survival package
data("veteran")
# The variable `time` records survival time; `status` indicates whether the 
# patient’s death was observed (status=1) or that survival time was censored 
# (status = 0). 

# The model they build in the example:
coxModel <- coxph(Surv(time, status) ~ trt + celltype + karno + diagtime + 
    age + prior, data=veteran)

# The results
summary(coxModel)

Обратите внимание, с-счет, который он нам дает:

Concordance= 0.736  (se = 0.021 )

Теперь мы вычисляем c-показатель, заданный Est.Cval() для двух типов значений:

# The value from Est.Cval(), using a risk input
cvalByRisk <- Est.Cval(mydata=cbind(time=veteran$time, event=veteran$status, 
  predictions=predict(object=coxModel, newdata=veteran, type="risk")), 
  tau=2000, nofit=TRUE)

# The value from Est.Cval(), using a linear predictor input
cvalByLp <- Est.Cval(mydata=cbind(time=veteran$time, event=veteran$status, 
  predictions=predict(object=coxModel, newdata=veteran, type="lp")), 
  tau=2000, nofit=TRUE)

И мы сравним результаты:

cvalByRisk$Dhat
[1] 0.7282348
cvalByLp$Dhat
[1] 0.7282348
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...