2017-01-31 6 views
2

Я хочу провести анализ выживаемости (моделирование Kaplan-Meier и Cox PH) на данных, которые цензурируются как слева, так и справа. Я смотрю на время возникновения сердечной аритмии (AF) в присутствии против отсутствия определенного гена (Gene 0 или 1). Однако у некоторых испытуемых уже есть аритмия при наборе, и поэтому их следует подвергать цензуре. Я прочитал документацию по выживанию, но не могу понять, как объяснить левую цензуру. Некоторые из них составили приведенные ниже данные. Субъекты 1 и 3 имели ФП в исходном состоянии и поэтому должны подвергаться цензуре. Предмет 2 не переживал события к концу наблюдения, и поэтому он подвергся цензуре. Субъекты 5 и 6 испытали событие (соответственно через 8 и 3 месяца).Левая цензура для данных о выживании в R

Gene<-c(0,0,1,1,0) 
AF_at_baseline<-c(1,0,1,0, 0) 
Followup_time<-c(11,3,8,15,7) 
AF_time<-c(NA, NA, NA, 8, 3) 
AF_data<-data.frame(Gene, AF_at_baseline, Followup_time, AF_time) 
+0

Левая цензура подходит, если у вас есть время начала наблюдения, и вы не знаете точное время события, но у вас есть верхняя граница. [См., Например, пример в этом ответе] (http://stats.stackexchange.com/a/144098/7515). Для этих данных цензура будет иметь смысл только в том случае, если бы ваше нулевое время (начало наблюдения) было сказано, рождение. Кажется, вы хотите использовать набор в качестве начала наблюдения, поэтому левый цензура на самом деле не применяется. – Gregor

+0

Это не похоже на тему для SO, я бы порекомендовал задать дополнительные вопросы в stats.stackexchange, если вам нужно больше методологического/статистического руководства. – Gregor

+0

Как правило, вы просто опускаете случаи в AF, когда пытаетесь предсказать время до появления лиц, которые в настоящее время свободны от этого состояния. –

ответ

0

У меня была аналогичная проблема, и решить ее, как этот:

Как указано в survivalhelp file вам нужно указать time и time2.

Вы можете думать о слева цензура данных, не происходит от -infinity до time вы измерили, и правая цензуру из не происходит от time вы измерили (вероятно, последнее наблюдение) до +infinity. Бесконечность лучше всего кодируется NA.

Что я решил создать две векторы: вектор начала time и вектор остановки time2.

Для time вы хотите, чтобы все эти значения были левым цензором были NA. Право цензуры наблюдения заполняются со временем измерения, точно так же как События.

Для time2 все наоборот.

Я действительно не получаю ваши данные. Почему бы вам следить за предметами, если они уже провели это мероприятие? Это то, что вы делаете для субъектов 4 и 5, указав, что время AF - 8 и 3, а для последующего - 15 и 7.

Пытаясь помочь, я предполагаю следующее:

У вас есть 5 пациентов с

AF_at_baseline<-c(1,0,1,0,0) #where 1 indicates left censoring 

Последующими раз моменты событий (или последний раз по итогам для левого и правого цензурированной)

Так левых цензурированного данных ваш Followup_time будет выглядеть следующим образом:

Followup_time <- c(NA, 3, NA, 15, 7) 

Для правой цензуре данные:

Followup_time2 <- c(11, NA, 8 ,15, 7) 
#Since you indicated that only subject 2 didn't experience the event 

Теперь вы можете позвонить Surv

Surv.Obj <- Surv(Followup_time, Followup_time2, type = 'interval2') 
Surv.Obj 
[1] 11- 3+ 8- 15 7 # with '-' indicating left censoring and '+' right censoring 

Тогда вы можете вызвать survfit и построить кривую Kaplan-Meier:

km <- survfit(Surv.Obj ~ 1, conf.type = "none") 
km 
Call: survfit(formula = Surv.Obj ~ 1, conf.type = "none") 

     n events median 0.95LCL 0.95UCL 
     5  4  7  7  NA 
    enter code here 

summary(km) 
Call: survfit(formula = Surv.Obj ~ 1, conf.type = "none") 

time n.risk n.event survival std.err lower 95% CI upper 95% CI 
    7.0  4 3.00e+00  0.25 0.217  0.0458   1 
    7.5  1 4.44e-16  0.25 0.217  0.0458   1 
15.0  1 1.00e+00  0.00  NaN   NA   NA 


plot(km, conf.int = FALSE, mark.time = TRUE) 

До сих пор я не узнал, как делать Cox PH с интервальными данными. См. Мой вопрос here.

0

Если у вас есть как цензурные, так и цензурированные данные, вы можете считать это особым случаем интервальной цензуры. Это тот случай, когда вы знаете время события только с интервалом. Если вы оставите цензуру, этот интервал (-Inf, t), с правой цензурой это (t, Inf).

Таким образом, вы можете использовать мой пакет R icenReg для моделирования ваших данных. Для модели Кокса-PH, это может быть пригодным в качестве

fit <- ic_sp(cbind(left, right) ~ covars, 
      data = myData, model = 'ph', 
      bs_samples = 500) 

left где и right являются левые и правые части интервала, в котором произошло событие для человека. Если событие не подвержено цензуре, просто установите left, равный right.