我想对左右删失的数据进行生存分析(Kaplan-Meier 和 Cox PH 建模)。我正在研究在存在与不存在特定基因(基因 0 或 1)的情况下发生心律失常 (AF) 的时间。然而,一些受试者在招募时已经发现心律失常,因此应该进行审查。我已经阅读了生存包文档,但无法弄清楚如何解释左删失。下面是一些组成的示例数据。受试者 1 和 3 在基线时有房颤,因此应该进行审查。受试者 2 在随访结束时没有经历该事件,因此被右删失。受试者 5 和 6 都经历了该事件(分别在 8 个月和 3 个月时)。
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)
最佳答案
我遇到了类似的问题,并像这样解决了它:
正如 survival
help file 中所述,您需要指定 time
和 time2
。
您可以将左删失数据视为从 -infinity
到您测量的 time
,以及从您测量的 time
(可能是最后一次跟进)到 +infinity
的右删失数据。 Infinity 最好用 NA
编码。
解决我的问题的是创建两个向量:一个开始向量 time
和一个停止向量 time2
。
对于 time
,您希望所有经过审查的值都为 NA
。右删失观察值填充有测量时间,就像事件一样。
对于 time2
则相反。
然而,我并没有真正得到你的数据。如果他们已经举办了事件,您为什么要跟进主题?这就是你对主题 4 和 5 所做的,说 AF 时间是 8 和 3,但 Followup_time 是 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 。
关于r - R 中生存数据的左删失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41968606/