问题描述
这似乎是一个愚蠢的问题,但是我想知道为什么median
的中位数和survfit
的中位数(“ 生存包”)不同>
我试图模拟sciencing.com中的教程:
列出样本中所有主题的生存时间。对于 例如,如果您有五个学生(在实际学习中,您会有更多) 他们毕业的时间是3年4年(到目前为止)4.5 年,3.5年和7年(到目前为止),记下时间:3、4, 4.5、3.5、7。
在以下任何时间旁边加一个加号(或其他标记) 右删失(即未发生事件的事件发生 然而)。您的列表如下所示:3、4 +,4.5、3.5、7 +。
因此,我创建了一个data.frame({T
表示无效,F
表示动态):
survive <- data.frame(OS = c(3,4,4.5,3.5,7),status = c(T,F,T,F))
中位数是4,如sciencing.com所说:
median(survive$OS)
[1] 4
但是当我使用“ 生存包”进行生存分析时,我得到了:
Call: survfit(formula = Surv(OS,status) ~ 1,data = survive)
n events median 0.95LCL 0.95UCL
5.0 3.0 4.5 3.5 NA
所以我的问题是为什么这两个中位数不同?
谢谢
解决方法
请记住,您拥有的时间是 not 生存时间-它们是跟进时间。其中两个人是右删失,这意味着我们不知道他们的随访时间之后发生了什么。
假设我们绘制了您的生存曲线:
plot(Surv(survive$OS,survive$status))
此图向我们显示了幸存者在我们积极跟进的人中所占的比例。它随着人们死亡而逐步下降,但是如果我们失去某人进行跟进,那么此时的估计生存率就不会改变(为什么我们失去某人进行跟进的事实在那一点上会改变我们的估计生存率?)
现在,让我们使用该曲线图来回答问题“观察到的存活率在50%以下会持续多长时间?”我们可以在y = 0.5处画一条水平线,看看这条线与生存曲线的交点是多少:
abline(h = 0.5,lty = 2,col = "red")
abline(v = 4.5,col = "red")
我们可以看到估计的生存期在4.5年时降至50%以下,因此这是中位生存时间。计算每个点的人数,我们可以看到:
- 时间= 0:我们的样本中有5个人,他们都还活着(生存率= 100%)
- 时间= 3:我们的样本中有5个人,其中一个已经死亡(生存= 80%)
- 时间= 3.5:我们的样本中有5个人,其中有2人死亡(生存= 60%)
- 时间= 4:我们的样本中有4个人,因为我们失去了一名跟进人员。我们失去这个人进行跟进的事实不能影响当时的估计生存率,因此生存率仍为60%。请注意,如果此人死亡而不是失去随访,其生存率将降至40%,中位生存期确实为4年。
- 时间= 4.5:我们的样本中有4个人,其中只有一个还活着(生存= 0.25)