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


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)=di∑j:tj≥tiexp⁡(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:tj≤th^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.