Создание набора данных для анализа выживаемости

Я пытаюсь выполнить анализ выживаемости, используя пакет выживания в R.

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

event <- c(1,0,0,1,0,1)
time <-c(8,50,100,200,300, 1)
id <- c(1,2,3,4,5, 6)
sex<-c(1,0,1,0,1,0)
mydat <- data.frame(id, time, event)


library(survival)
library(survminer)
fit<-survfit(Surv(time,event)~sex, mydat)
ggsurvplot(fit, size = 1, # change line size
      #palette = c("#E7B800", "#2E9FDF"), # custom color palette
        conf.int = TRUE, # Add confidence interval
        pval = TRUE, # Add p-value
        risk.table = TRUE, # Add risk table
        risk.table.col = "strata", # Risk table color by groups
 )

Однако mydat как таковой не работает в качестве исходных данных для анализа выживаемости.

Как результат выглядит так

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

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

Заранее спасибо.


person riz    schedule 02.09.2016    source источник
comment
Не могли бы вы добавить больше кода, который вы пытаетесь использовать после создания фрейма данных? Без дополнительной информации сложно определить, в чем проблема.   -  person Sam    schedule 02.09.2016
comment
Дополнительная информация о mydat как таковая не работает в качестве исходных данных для анализа выживаемости.   -  person r.bot    schedule 02.09.2016
comment
@sam дополнительные данные / код включены   -  person riz    schedule 02.09.2016
comment
@ r.bot дополнительные данные / код включены   -  person riz    schedule 02.09.2016


Ответы (1)


Я думаю, что ваши данные работают как входные данные для анализа выживаемости (после исправления ошибки в sex), я думаю, они просто не показывают того, чего вы ожидаете.

Никаких ошибок не возвращается ни при выполнении survfit(), ни при построении графика выживания или ggsurvplot. Любой из этих методов отражает имеющиеся у вас данные.

summary(fit) возвращает значимый результат для соответствия вашей модели:

summary(fit)
Call: survfit(formula = Surv(time, event) ~ sex, data = mydat)

                sex=0 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
    1      3       1    0.667   0.272          0.3            1
  200      1       1    0.000     NaN           NA           NA

                sex=1 
        time       n.risk      n.event     survival      std.err lower 95% CI upper 95% CI 
       8.000        3.000        1.000        0.667        0.272        0.300        1.000 

В ваших данных есть три события: одно время 1 для секса == 0, одно время 8 для секса == 1 и одно во время 200 для секса == 0. Это то, что показано на графике. Затененные доверительные интервалы очень широки, потому что у вас так мало наблюдений.

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

person r.bot    schedule 02.09.2016
comment
Спасибо за ответ. число, подверженное риску по времени, показывает 3 на время 300, тогда как оно должно быть 0 ??. по мере увеличения количества событий с течением времени. или я полностью неверно истолковал это? - person riz; 02.09.2016
comment
Riz - возможно, вы неправильно читаете свой код или смотрите на старое изображение. Изображение из @ r.bot выше показывает (и я также получаю) 0 и 1 при времени = 300. Я не вижу, как вы получили 3 и 1, как показано на вашем первом изображении. Также не совсем связано с вашим вопросом, но, вероятно, в этом конкретном случае стоит установить conf.int=FALSE. - person Big Old Dave; 03.09.2016