如何计算平均生存时间

Posted

技术标签:

【中文标题】如何计算平均生存时间【英文标题】:How to compute the mean survival time 【发布时间】:2017-08-27 15:15:32 【问题描述】:

我正在使用survival 库。在计算生存函数的 Kaplan-Meier 估计后:

km = survfit(Surv(time, flag) ~ 1)

我知道如何计算百分位数:

quantile(km, probs = c(0.05,0.25,0.5,0.75,0.95))

但是,我?

【问题讨论】:

【参考方案1】:

计算平均生存时间

平均生存时间通常取决于为最大生存时间选择的值。您可以使用print(km, print.rmean=TRUE) 获得受限的平均生存时间。默认情况下,这假设最长生存时间等于数据中最长的生存时间。您可以通过添加 rmean 参数(例如,print(km, print.rmean=TRUE, rmean=250))将其设置为不同的值。

提取平均生存时间值并存储在对象中

针对您的评论:我最初认为可以通过查看print(km, print.rmean=TRUE) 返回的对象来提取平均生存时间,但事实证明print.survfit 不返回列表对象,而只是返回文本到控制台。

相反,我查看了print.survfit 的代码(您可以通过在控制台中输入getAnywhere(print.survfit) 来查看代码)来查看计算平均生存时间的位置。事实证明,一个名为 survmean 的函数负责处理此问题,但它不是导出函数,这意味着当您尝试像“正常”函数一样运行它时,R 将无法识别该函数。因此,要访问该功能,您需要运行以下代码(您需要明确设置rmean):

survival:::survmean(km, rmean=60) 

您会看到该函数返回一个列表,其中第一个元素是一个具有多个命名值的矩阵,包括平均值和平均值的标准误差。因此,例如,要提取平均生存时间,您可以:

survival:::survmean(km, rmean=60)[[1]]["*rmean"]

关于如何计算平均生存时间的详细信息

print.survfit 的帮助提供了有关选项的详细信息以及如何计算受限均值:

?print.survfit 

均值及其方差基于截断的估计量。那是, 如果最后一次观察不是死亡,则生存曲线 估计不为零,平均值未定义。有四个 解决这个问题的可能方法,由 rmean 选择 选项。首先是将上限设置为常数, 例如,rmean=365。在这种情况下,报告的平均值将是预期的 在前 365 天中,将经历的天数 每组。如果兴趣集中在固定时期,这很有用。 其他选项有“none”(没有估计)、“common”和“individual”。这 “common”选项使用对象中所有曲线的最大时间作为 auc 计算的通用上限。为了 “个人”选项均值计算为每条曲线下的面积, 在从 0 到该曲线的最大观察时间的范围内。 由于终点是随机的,因此不同曲线的值不 具有可比性,并且打印的标准误差被低估为 他们没有考虑到这种随机变化。这个选项是 主要是为了向后兼容,因为这个估计是 默认(仅)一个在早期版本的代码中。请注意,SAS(如 9.3 版)使用积分直到每个事件的最后一个事件时间 个人曲线;我们认为这是最糟糕的选择并且不 为该计算提供一个选项。

【讨论】:

很好,谢谢!有什么方法可以将受限均值直接存储到变量中,还是我必须从print 的输出中复制它? 非常感谢!我会再次投票给你,但我不能。 :-|

以上是关于如何计算平均生存时间的主要内容,如果未能解决你的问题,请参考以下文章

SPSS如何计算3年及5年无进展生存率

数据挖掘专题 | 计算生存时间

如何计算并计算 PIG 中的总平均值

如何在 MS reportviewer/rdlc 中计算计算平均值的平均值?

如何计算时间预言机的算术平均值?

如何计算日历年的平均值