Краткое введение:
Модель пропорциональных опасностей Кокса (PH) может быть оценена с помощью функции coxph
пакета survival
. Очевидным требованием для получения разумных результатов от модели этого типа является пропорциональность рисков, то есть постоянство во времени. Если это не так для определенной переменной, ее можно решить, изменив коэффициент этой переменной во времени. (Теперь это технически расширенная модель Кокса.) Это делается путем добавления tt()
к этой переменной и определения функции во времени (см. vignette("timedep", package = "survival")
стр. 19+).
Вопрос:
Какая функция используется, если tt()
используется без указания функции?
Вот пример:
library(survival)
data(lung)
cox_model <- coxph(Surv(time, status) ~ age + sex + ph.karno, data = lung)
cox_model_ph <- cox.zph(cox_model)
# rho chisq p
# age 0.00701 0.00871 0.92566
# sex 0.12249 2.42336 0.11954
# ph.karno 0.23135 8.24167 0.00409
# GLOBAL NA 11.54750 0.00911
Мы видим, что ph.karno
нарушает предположение PH (малое значение p), поэтому добавьте tt()
:
cox_model_tt <- coxph(Surv(time, status) ~ age + sex + tt(ph.karno), data = lung)
cox_model_tt_ph <- cox.zph(cox_model_tt)
# rho chisq p
# age -0.00907 0.0142 0.9052
# sex 0.12844 2.7270 0.0987
# tt(ph.karno) 0.11643 2.3846 0.1225
# GLOBAL NA 5.0220 0.1702
Теперь предположение PH выполнено, но я понятия не имею, что на самом деле делала функция tt()
. Я пробовал некоторые часто используемые функции, такие как tt = function(x, t, ...) x*t
, tt = function(x, t, ...) x + t
, tt = function(x, t, ...) x*log(t)
. Но все дали разные результаты (и не смогли исправить нарушение PH).
Любая помощь приветствуется.