Генерация таблицы рисков из пакета выживания

#r #survival-analysis #survival

#r #анализ выживания #Выживание

Вопрос:

Есть ли встроенная функция, которая генерирует таблицу рисков в пакете выживания? Я хочу сообщить о количестве подверженных риску, количестве событий и количестве цензоров по временному интервалу. Если это недоступно, есть ли способ эффективно создать эту таблицу? Я видел другие пакеты с некоторыми встроенными функциями, но предпочел бы работать с пакетом выживания.

Ответ №1:

Насколько мне известно, в пакете нет встроенной функции survival , которая генерировала бы таблицы набора рисков, но вы можете написать простую функцию для ее генерации. Вот пример кода, использующего данные ветерана из survival пакета для графика Каплана-Мейера с набором рисков,

 library(survival)
data(veteran)

RiskSetCount <- function(timeindex, survivaltime) {
  atrisk <- NULL
  for (t in timeindex)
  atrisk <- c(atrisk, sum(survivaltime >= t))
  return(atrisk)
}

fit <- survfit(Surv(time, status) ~ trt, data=veteran) 
par(mfrow=c(1,1),mar = c(7,6,2,2)) # defining plot parameters
plot(fit, xlab="Time",ylab="Survival probability",lwd=2,mark.time=T,col=c(1,2),xlim=c(0,500))
legend("topright",col=c(1,2),lwd=2,legend=c("Control","Intervention"))
mtext("Risk set:", 1, line=4, at=-90)
grid <- seq(0,500,by=100)
mtext(RiskSetCount(grid,veteran$time[veteran$trt==1]), side=1, line=4, at=grid)
mtext(RiskSetCount(grid,veteran$time[veteran$trt==2]), side=1, line=5, at=grid)
  

Вот график Km,

График K-M

Вы можете добавить дополнительные показатели, такие как количество событий, количество подвергнутых цензуре наблюдений и т.д. для программы.

Комментарии:

1. Спасибо за ваш ответ. Еще один вопрос: можете ли вы объяснить, как n.risk суммирует данные о риске? Я понял, что n.risk не обязательно равен N — ( количество событий события с цензурой) до i-го события.

2. Если я правильно понял ваш вопрос, вы спрашиваете, как мы создаем набор рисков в каждый момент времени? Если да, то набор рисков — это количество людей, подверженных риску в каждый момент времени. Сюда входят как люди, которые испытают результат, так и будут подвергнуты цензуре позже. Следовательно, риск, установленный в момент времени 0, будет соответствовать N (поскольку событие еще не произошло). Для риска, установленного в будущие моменты времени, скажем, в момент t, мы должны вычесть общее количество событий общее количество подвергнутых цензуре событий до t из N.