2016-09-02 6 views
0

Я пытаюсь выполнить анализ выживаемости с использованием пакета выживания в R.Создание набора данных для анализа выживаемости

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

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 как таковой не подходит для анализа выживания.

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

enter image description here

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

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

+2

Не могли бы вы включить больше кода, который вы пытаетесь использовать после создания фрейма данных? Трудно определить, в чем проблема, без дополнительной информации. – Sam

+0

Дополнительная информация о «* mydat как таковой не работает как вход для анализа выживаемости *» было бы полезно. –

+0

@sam дальнейшие detials/код в комплекте – riz

ответ

0

Я думаю, что ваши данные являются работы в качестве входных данных для анализа выживаемости (после того, как ошибка в 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. Это то, что показывает график. Заштрихованные доверительные интервалы очень широки, потому что у вас так мало наблюдений.

enter image description here

+0

благодарю вас за ответ. число под угрозой по времени показывает 3 в момент времени 300, тогда как оно должно быть 0 ??. поскольку количество событий увеличивается за период времени. или я неправильно истолковал его? – riz

+0

Riz - возможно, вы неправильно читаете свой код или смотрите на старое изображение. Изображение из @ r.bot выше показывает (и я также получаю) 0 и 1 в момент = 300. Я не вижу, как вы получили 3 и 1, как показано на первом изображении. Также не совсем связано с вашим вопросом, но, вероятно, стоит установить 'conf.int = FALSE' в этом конкретном случае. –