Как оценить базовую функцию опасности в модели Кокса с R

13

Мне нужно оценить базовую функцию риска λ0(T) в зависящей от времени модели Кокса

λ(T)знак равноλ0(T)ехр(Z(T)'β)

Хотя я проходил курс «Выживание», я помню, что прямая производная функции кумулятивной опасности ( ) не была бы хорошей оценкой, потому что оценщик Бреслоу дает ступенчатую функцию.λ0(T)dTзнак равноdΛ0(T)

Итак, есть ли функция в R, которую я мог бы использовать напрямую? Или какая-нибудь ссылка на эту тему?

Я не уверен, стоит ли открывать еще один вопрос, поэтому я просто добавляю некоторую предысторию, почему базовая функция опасности важна для меня. Приведенная ниже формула оценивает вероятность того, что время выживания одного субъекта больше, чем другого. При настройке модели Кокса требуется базовая функция опасности . λ0(T)

п(T1>T2)знак равно-0S1(T)dS2(T)знак равно-0S1(T)S2(T)λ2(T)dT

Элонг
источник
2
Это помогает? stats.stackexchange.com/questions/36015/…
ocram
Об оценке Breslow
Стефан Лоран,
Формула (4) этой статьи дает оценку. jstor.org/stable/2530904
августа

Ответы:

20

Модель Кокса была специально разработана, чтобы иметь возможность оценивать отношения опасности без необходимости оценивать базовую функцию опасности. Это сила и слабость. Сила в том, что вы не можете делать ошибки в функциях, которые вы не оцениваете. Это реальная сила и является причиной, по которой люди называют его «полупараметрическим» и во многом ответственным за его популярность. Тем не менее, это также реальная слабость: в том случае, если вы хотите узнать что-то, кроме отношения рисков, вам часто требуется базовая функция риска, и это противоречит самой цели модели Кокса.

Поэтому я склонен использовать модели Кокса только тогда, когда меня интересуют коэффициенты опасности и больше ничего. Если я хочу знать другие вещи, я обычно перейти к другим моделям , как те обсуждали здесь: http://www.stata.com/bookstore/flexible-parametric-survival-analysis-stata/

Мартен Буис
источник
2
+1 Это еще один способ параметрического моделирования базовой опасности data.princeton.edu/wws509/notes/c7s4.html
boscovich
3

Базовая функция опасности может быть оценена в R с помощью функции «basehaz». Файл «справки» гласит, что это функция «предсказанного выживания», которой явно нет. Если проверять код, это, очевидно, функция кумулятивной опасности от survfitобъекта. Для дальнейшей глупости настройкой по умолчанию является то, centered=TRUEчто а) не является базовой функцией риска (как следует из названия), и б) использует прогнозирование на средстве, которое дико дискредитируется как действительное в любом практическом смысле.

И к вашей более ранней точке: да, эта функция использует функцию шага. Вы можете преобразовать этот вывод в функцию опасности, используя сглаживание. Худшая часть всего этого, каков интервал неопределенности для этого прогноза? Вы можете получить медаль Филдса, если сможете ее получить. Я не думаю, что мы даже знаем, работает ли начальная загрузка или нет.

Например:

set.seed(1234)
x <- rweibull(1000, 2, 3)
coxfit <- coxph(Surv(x) ~ 1)
bhest <- basehaz(coxfit)
haz <- exp(diff(bhest[, 1])*diff(bhest[, 2]))
time <- (bhest[-1,2] + bhest[-1000, 2])/2
b <- 2^-3

curve(3*b*x, from=0, to=max(x), xlab='Survival time', ylab='Weibull hazard')
points(t <- bhest[-1,2], h <- diff(bhest[, 1])/diff(bhest[, 2]), col='grey')
smooth <- loess.smooth(t, h)
lines(smooth$x, smooth$y, col='red')
legend('topright', lty=c(1,1,0), col=c('black', 'red', 'grey'), pch=c(NA,NA,1), c('Actual hazard fun', 'Smoothed hazard fun', 'Stepped discrete-time hazards'), bg='white')

введите описание изображения здесь

Adamo
источник