如何在生存分析中获得50%的生存事件时间

时间:2019-12-23 22:07:57

标签: r survival-analysis

我正在整理一个生存分析,该生存分析通过一个闪亮的应用程序运行,因此输出将经常更改。我有运行生存分析的代码,然后每26个月打印一次摘要(目前随机选择的数字),然后执行10次。

nil

摘要的输出大致如下所示:

km_fit <- survfit(Surv(Life_Time_Months, Is_Closed) ~ 1, data = My_Data)
summary(km_fit, times = c(25 * (1:10)))

我真的希望只有一个结果在生存百分比为0.5或尽可能接近的情况下才具有26的倍数。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

在拟合摘要中可以获得与存活百分比中位数相对应的时间。

例如,如果您使用数据集lung

library(survival)
library(survminer)
data("lung")
fit <- survfit(Surv(time, status) ~ sex, data = lung)

fit的输出为:

> fit
Call: survfit(formula = Surv(time, status) ~ sex, data = lung)

        n events median 0.95LCL 0.95UCL
sex=1 138    112    270     212     310
sex=2  90     53    426     348     550

如您所见,中位数是每种情况下生存百分比等于0.5的时间。 要提取此值,可以对摘要表进行排序:

> summary(fit)$table
      records n.max n.start events   *rmean *se(rmean) median 0.95LCL 0.95UCL
sex=1     138   138     138    112 325.0663   22.59845    270     212     310
sex=2      90    90      90     53 458.2757   33.78530    426     348     550

执行以下操作,仅提取median

> summary(fit)$table[,"median"]
sex=1 sex=2 
  270   426 

适应您的代码,您应该尝试:

summary(km_fit)$table[,"median"]

它回答了您的问题吗?

如果没有,请考虑提供数据的可复制示例(How to make a great R reproducible example