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

问题描述 投票:0回答:1

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

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

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

time n.risk n.event survival std.err lower 95% CI upper 95% CI
   26  99910   19897    0.841 0.00104        0.839        0.843
   52  72512   15084    0.704 0.00134        0.701        0.707
   78  52153   10037    0.598 0.00150        0.595        0.601
  104  39170    5106    0.534 0.00159        0.531        0.537
  130  30783    3394    0.484 0.00165        0.481        0.487
  156  24563    2404    0.444 0.00171        0.440        0.447
  182  19351    1625    0.412 0.00176        0.408        0.415
  208  15463    1154    0.385 0.00182        0.382        0.389
  234  11924     796    0.363 0.00187        0.359        0.367
  260   9179     512    0.346 0.00194        0.342        0.349

而不是要获得10个打印结果,是26的倍数,我真的只希望其中一个结果在生存百分比为0.5或尽可能接近时才具有。

我将如何去做?

r survival-analysis
1个回答
0
投票

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

例如,如果您使用数据集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

© www.soinside.com 2019 - 2024. All rights reserved.