Прогноз в регрессии Кокса


38

Я делаю многомерную регрессию Кокса, у меня есть значимые независимые переменные и бета-значения. Модель очень хорошо вписывается в мои данные.

Теперь я хотел бы использовать мою модель и прогнозировать выживание нового наблюдения. Мне неясно, как это сделать с моделью Кокса. В линейной или логистической регрессии было бы легко, просто поместите значения нового наблюдения в регрессию и умножьте их на бета-версии, и поэтому у меня есть прогноз моего результата.

Как я могу определить мою базовую опасность? Мне это нужно в дополнение к вычислению прогноза.

Как это делается в модели Кокса?

Ответы:


30

Следуя модели Кокса, предполагаемая опасность для индивидуума с ковариатным вектором имеет вид где определяется путем максимизации частичной вероятности, тогда как следует из оценки Нельсона-Аалена, с , различными временами события и числом смертей в (см., например, раздел 3.6 ).х я ч я ( т ) = ч 0 ( т ) ехр ( х ' я β ) , β ч 0 ч 0 ( т я ) = d яixi

h^i(t)=h^0(t)exp(xiβ^),
β^h^0 т1т2,...dятя
h^0(ti)=dij:tjtiexp(xjβ^)
t1t2,diti

Аналогично, с и S 0(т)=ехр( - Л 0(т)) Л 0(т)=ЕJ:тJт ч 0(тJ).

S^i(t)=S^0(t)exp(xiβ^)
S^0(t)=exp(Λ^0(t))
Λ^0(t)=j:tjth^0(tj).

РЕДАКТИРОВАТЬ: Это также может представлять интерес :-)


1
Это как раз мой вопрос ... Мне нужна оценка базовой функции риска, чтобы иметь возможность сделать прогноз, верно? Знаете ли вы какой-нибудь метод для его оценки?
Марья

2
@ Марьян, складной нож может неправильно отражать неопределенность, вызванную выбором переменной. Начальная загрузка правильно показывает больше изменчивости, в которой переменные помечены как «значимые». Если вы хотите провести «относительную валидацию», вы можете показать, что прогностическая дискриминация хороша после корректировки на переоснащение. Это не требует работы с базовой опасностью, но проверяет относительные оценки опасности в журнале. validateФункция в R rmsпакет в сочетании с cphфункцией будет делать. Единственный пошаговый алгоритм, реализованный в, validate- это обратное понижение.
Фрэнк Харрелл

1
Получение предсказанных относительных опасностей (т. Е. Линейного предиктора) довольно просто. Но я перестал использовать SAS в 1991 году.
Фрэнк Харрелл,

8
Ссылка оборвалась :-(.
gung - Восстановить Монику

2
Есть ли способ предсказать время выживания T для конкретного человека? Я имею в виду, что, учитывая список значений для ковариат, как определить время, после которого человек, скорее всего, умрет?
statBeginner

14

Функция predictSurvProbв pecпакете может дать вам оценки абсолютного риска для новых данных на основе существующей модели Кокса, если вы используете R.

Математические детали я не могу объяснить.

РЕДАКТИРОВАТЬ: функция обеспечивает вероятности выживания, которые я принял за 1- (вероятность события).

РЕДАКТИРОВАТЬ 2:

Можно обойтись без пакета pec. Используя только пакет выживания, следующая функция возвращает абсолютный риск на основе модели Кокса

risk = function(model, newdata, time) {
  as.numeric(1-summary(survfit(model, newdata = newdata, se.fit = F, conf.int = F), times = time)$surv)
}

1-Вероятность выживания - совокупная опасность. Я думаю, что OP запрашивает функцию мгновенной опасности (базовой линии) или какую-то сглаженную оценку ( muhazпакеты в R).
ECII

1
1-Вероятность выживания не является кумулятивной опасностью. В отсутствие конкурирующих рисков оба связаны, как подробно описано на en.wikipedia.org/wiki/… .
миура

1-Вероятность выживания = частота отказов (при условии только 1x метода отказа). Отношение вероятности выживания к накопленной опасности изложено в принятом ответе: S(t)=exp(−Λ(t))где Λ(t)накопленная опасность.
НикБраунагель

11

Может быть, вы хотели бы попробовать что-то подобное? Установите модель пропорциональных рисков Кокса и используйте ее, чтобы получить предсказанную кривую выживания для нового экземпляра.

Взято из файла справки для файлаfitfit.coxph в R (я только что добавил часть строк)

# fit a Cox proportional hazards model and plot the  
# predicted survival for a 60 year old 
fit <- coxph(Surv(futime, fustat) ~ age, data=ovarian) 
plot(survfit(fit, newdata=data.frame(age=60)),
     xscale=365.25, xlab="Years", ylab="Survival", conf.int=F) 
# also plot the predicted survival for a 70 year old
lines(survfit(fit, newdata=data.frame(age=70)),
     xscale=365.25, xlab="Years", ylab="Survival") 

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


6

basehazФункция survivalпакетов обеспечивает базовый риск в моменты времени событий. Исходя из этого, вы можете продвигаться вверх по математике, которую предоставляет ocram, и включать OR своих оценок coxph.


2

Весь смысл модели Кокса заключается в предположении о пропорциональной опасности и использовании частичной вероятности. Частичное правдоподобие исключает базовую функцию опасности. Таким образом, вам не нужно указывать один. В этом вся прелесть!


2
Однако если вы хотите получить оценку опасности или выживаемости для конкретного значения ковариатного вектора, вам нужна оценка базовой опасности или выживаемости. Оценка Нельсона-Аалена обычно делает работу ...
Октябрь

1
Часто с моделью Кокса вы сравниваете две функции выживания, и ключом является отношение опасности, а не функция опасности. Базовая опасность подобна неприятному параметру, который Кокс так ловко исключил из проблемы, используя предположение о пропорциональной опасности. Какой бы метод вы не хотели использовать для оценки функции опасности и / или базовой опасности в контексте модели, потребовалось бы использовать форму модели Кокса, которая вызывает пропорциональность.
Майкл Р. Черник

Большое спасибо, было бы здорово, если бы вы увидели мой комментарий к ответу ocram. Может ты мне тоже поможешь?
Марья

3
Вы также можете разделить на факторы, которые не находятся в пропорциональной опасности. Но, во всяком случае, модель Кокса и ее оценку исходной опасности после подгонки можно использовать для получения предсказанных квантилей времени выживания, различных вероятностей выживания и предсказанного среднего времени выживания, если у вас есть долгосрочное наблюдение. Все эти величины легко получить в пакете R rms.
Фрэнк Харрелл

Вам не нужно указывать это, но это оценивается.
DWin
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.