survfit 输出 NA 上限,但达到中位生存期

survfit outputs NA upper bounds but median survival is reached

以下数据达到 50% 的中位生存率,但上限为 NA。如果我有有效的生存历史,我无法弄清楚为什么上限是 NA。

.data = structure(list(event_occurred = c(TRUE, FALSE, TRUE, FALSE, TRUE, 
TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, 
FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, 
FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, 
FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, 
TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, FALSE, 
FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, 
TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, 
TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, 
FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, 
FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, 
FALSE, FALSE, FALSE), fu_time = c(190, 961, 483, 112, 56, 248, 
127, 366, 80, 105, 158, 127, 1464, 217, 1700, 530, 1363, 1360, 
963, 557, 668, 813, 504, 422, 147, 989, 872, 828, 419, 1071, 
1155, 1791, 368, 667, 147, 1643, 1012, 874, 941, 52, 379, 333, 
987, 30, 230, 166, 336, 764, 332, 4, 314, 1113, 1053, 1072, 91, 
1693, 766, 1362, 265, 646, 780, 164, 1070, 142, 1772, 313, 1925, 
118, 964, 988, 1980, 1172, 1358, 1694, 1751, 1754, 309, 1766, 
889, 390, 1601, 9, 800, 396, 249, 224, 363, 151, 1500, 1913, 
126, 280, 1734, 182, 220, 929, 330, 39, 56, 1077, 455, 924, 811, 
475, 43, 205, 504, 748), strat = c("A", "A", "A", "B", "B", "B", 
"B", "A", "B", "B", "B", "A", "B", "B", "B", "A", "A", "A", "B", 
"A", "B", "A", "A", "B", "A", "B", "A", "A", "A", "A", "A", "A", 
"A", "A", "B", "A", "A", "B", "A", "B", "A", "B", "A", "B", "A", 
"B", "B", "B", "A", "B", "A", "A", "A", "B", "B", "A", "A", "A", 
"A", "A", "A", "A", "B", "A", "A", "B", "B", "B", "B", "B", "A", 
"A", "A", "A", "A", "A", "B", "A", "A", "A", "A", "B", "A", "A", 
"B", "B", "B", "B", "A", "B", "B", "A", "A", "B", "B", "A", "B", 
"B", "B", "A", "A", "A", "A", "A", "B", "B", "B", "A")), row.names = c(NA, 
-108L), class = c("tbl_df", "tbl", "data.frame"))

survival::survfit(survival::Surv(time = .data$fu_time, event = .data$event_occurred) ~ strat,.data)

这是一个non-parametric分析。大多数死亡发生在达到估计的中位时间之前,这支持了 95% LCL 的计算。但在中位数之后,任何一组都很少发生事件,因此 95% 的 UCL 仍然是推测性的。 C.I.'s in non-parametric 建模关键取决于支持估计的事件数量。 (不是真正合适的 SO 问题。应该张贴在 stats.stackexchange.com )