Актуарный анализ выживаемости, разделенный на интервалы


Я пытаюсь создать актуарный анализ выживания в R (я следую некоторым отработанным примерам). Я думаю, что лучший способ сделать это-использовать пакет survival. Итак, что-то вроде:

library(survival)
surv.test <- survfit(Surv(TIME,STATUS), data=test)
Однако, чтобы получить правильный ответ, мне нужно будет разделить переменную TIME на 365 дневных интервалов, и я не могу точно решить, как это сделать, чтобы она соответствовала данному результату.

Насколько я могу понять, в функции survfit нет опции, которая сделает это. Я прошел через несколько примеры документов, и ни один из них не пытался создать лестничный тип участка (есть вариант type='interval', но, кажется, делает что-то другое). Итак, я предполагаю, что мне нужно перегруппировать мои данные, прежде чем я применю функцию survival?

Есть идеи?

P. S: в SPSS это будет INTERVAL = THRU 10000 BY 365; в Stata intervals(365) ... connect(stairsteps)

3 3

3 ответа:

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

s=survfit(Surv(futime, fustat)~rx, data=ovarian)
plot(s)

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


Я думаю, что понимаю ваш вопрос немного лучше. Причина, по которой вы получаете толстую черную линию, заключается в том, что у вас много цензуры, и + строится в каждой отдельной точке, где есть цензура, вы можете отключить это с mark.time=F. (Вы можете увидеть другие варианты в ?survival:::plot.survfit) Однако, если вы все еще хотите агрегировать по годам, просто разделите время наблюдения на 365 и округлите. ceiling используется для округления. Вот пример агрегирования на разных временных уровнях без цензуры.
par(mfrow=c(1,3))
plot(survfit(Surv(ceiling(futime), fustat)~rx, data=ovarian),col=c('blue','red'),main='Day',mark.time=F)
plot(survfit(Surv(ceiling(futime/30), fustat)~rx, data=ovarian),col=c('blue','red'),main='Month',mark.time=F)
plot(survfit(Surv(ceiling(futime/365), fustat)~rx, data=ovarian),col=c('blue','red'),main='Year',mark.time=F)
par(mfrow=c(1,1))
Но я думаю, что построение графика Каплана-Мейера без символов цензуры будет выглядеть очень красиво и даст больше понимания.

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

Ура, теперь я смогу опубликовать изображения:

1) Вот как выглядит на данный момент основной сюжет выживания R Введите описание изображения здесь

2) и вот как это должно выглядеть (пример SPSS) Введите описание изображения здесь

Это было именно то, что мне не хватало! Спасибо!

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

Решение:

vas.surv <- survfit(Surv(ceiling(TIME/365), STATUS)~1, conf.type="none", data=vasectomy)
plot(vas.surv, ylim=c(0.975,1), mark.time=F, xlab="Years", ylab="Cumulative Survival")

Хорошим штрихом было бы отображение дней на оси x вместо лет (как в Примере SPSS), но я не слишком беспокоюсь об этом.