R
我从以下代码中获得了一个生存图:R,r,R,我从以下代码中获得了一个生存图: s = Surv(outcome.[,1], outcome.[,2]) survplot= (survfit(s ~ person.list[,1])) plot(survplot, mark.time = FALSE) person.list只是一个包含15个人的列表 当我绘制这个图时,图上的线都在不同的时间点结束。有没有办法延长所有的线,使它们在某个时间点结束?(即结果。[,1]是一个时间到事件变量,我希望图上的存活线延长到5(年
s = Surv(outcome.[,1], outcome.[,2])
survplot= (survfit(s ~ person.list[,1]))
plot(survplot, mark.time = FALSE)
person.list只是一个包含15个人的列表
当我绘制这个图时,图上的线都在不同的时间点结束。有没有办法延长所有的线,使它们在某个时间点结束?(即结果。[,1]是一个时间到事件变量,我希望图上的存活线延长到5(年))
谢谢,
Matt这不是关于如何做你要求的事情的答案,而是关于为什么你不应该做你要求的事情的解释
行在数据停止的地方停止。过了那个段时间,你们就并没有信息来估计存活率了(这是在传统的卡普兰-迈耶生存分析中,正如你们所设置的)。因此,Kaplan-Meier估计在该时间之后没有得到很好的定义,因此延伸该曲线没有任何特殊意义。虽然从图形上看,您可以在与上一个生存值相同的级别上绘制一条水平线,但这并没有真正意义。这是我不久前在rhelp上发布的类似问题的代码:
?survfit#获取一个工作示例,因为您没有提供一个
lsurv2我觉得有必要指出,在这种情况下,1)有54(周)的数据,因此曲线定义良好,2)绘制的是Cox比例风险模型,这也使得延长线合理。给出的代码是有效的,并且符合提问者的要求,但对于Kaplan Meier的案例可能没有意义。对不起。不同意。不管这是考克斯模型还是公里数估计,都无关紧要。水平线应延伸至最后一次观察到的受审查幸存者的时间。它形成了累积存活率的最后估计值。如果这能让你感觉好一点的话,我的向上投票是对你答案的第一个也是迄今为止唯一的回应。我认为建议提问者仔细思考这条线代表的是什么是好的。只是我认为数据是在最后一次审查时停止的,而不是在最后一次审查时停止的。事实上,我同意你的看法。绘制到最后一次审查时间的曲线是合适的。到那时为止,已经有了信息,也有了做出估计的能力。我的问题是把它从上次审查的观察中拉出来(在Kaplan Meier的案例中,上次审查的事件在每组中可能不同)。在您链接的示例中,54周是最后一次经过审查的观察,因此绘制到该点的曲线是合适的。我的评论是关于在你给出的例子中它是如何合适的,而在一般情况下它可能不合适。太好了。那么,我们完全同意。
?survfit # to get a working example since you did not provide one
lsurv2 <- survfit(Surv(time, status) ~ x, aml, type='fleming')
plot(lsurv2, lty=2:3, xmax=300) # drats, no effect of xmax
str(lsurv2) # so see the structure of the survfit object
lsurv2$time[21] <- 300 #add a time value
lsurv2$n.censor[21] <- 1 # mark as censoring time
lsurv2$strata[2] <- 11 # add to count of group 2
plot(lsurv2, lty=2:3, xmax=300) # horizontal line to 300 for group 2
plot(surv, mark.time=F, fun='event', xlim=c(0, 54))
for (i in 1:length(surv$strata)) { #number of curves
temp <- surv[i]
lines(c(max(temp$time), 54), 1- rep(min(temp$surv),2))
}