Как использовать функцию gnastSurvProb() в пакете "pec" для прогнозирования вероятностей выживания для набора данных с ковариатами, зависящими от времени?
У меня есть набор данных, как показано ниже:
Patient_ID Time_Start Time_End X1 X2 X3 Status
001 0 1 0
001 1 2 0
001 2 3 0
001 3 4 0
002 0 1 0
002 1 2 0
002 2 3 0
002 3 4 1
В котором X3 является переменной времени.
Я построил модель регрессии Кокса, как показано ниже:
model.cox=coxph(Surv(Time_Start, Time_End, Status)~X1+X2+X3+CLUSTER(ID), data=mydata)
После получения модели я использую предикат SurvProb() из библиотеки "pec", чтобы предсказать вероятность выживания каждого пациента в каждый момент времени:
predicted.surv.prob=predictSurvProb(model.cox, newdata=mydataset, times=seq(1:4))
Однако функция вернула кадр данных, как показано ниже, в котором каждая запись имеет свои собственные вероятности выживания в период с 1 по 4 месяц:
Patient_ID Time_Start Time_End Month1 Month2 Month3 Month4
001 0 1 0.99 0.98 0.97 0.96
001 1 2 0.985 0.976 0.968 0.965
001 2 3 .......................
001 3 4 .........................
002 0 1 ........................
002 1 2 ........................
002 2 3 ..........................
002 3 4
Очевидно, что результат не имеет смысла. Пациент 001 имел четыре группы прогнозируемой вероятности, и каждая из них отличается от других.
Как я могу добавить что-то, чтобы предикат предиката SurvProb() знал, что все записи с одинаковым идентификатором должны быть сгруппированы вместе и возвращать только одну группу прогноза?