如何计算平均生存时间
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
的输出中复制它?
非常感谢!我会再次投票给你,但我不能。 :-|以上是关于如何计算平均生存时间的主要内容,如果未能解决你的问题,请参考以下文章