繁体   English   中英

如何计算R中协变量的受限平均生存时间?

[英]How to calculate restricted mean survival time for covariates in R?

我正在尝试计算按协变量分组的受限平均生存时间,但出现错误。 你能看看下面的代码示例代码,让我知道问题是什么吗?

library(survival)
library(flexsurv)

data <- survival::lung
formula <- Surv(data$time, data$status) ~data$sex
fsmodel_exponential<-flexsurvreg(formula,dist = "exp")

#Produces the expected results
rate_exponential<-fsmodel_exponential$res[1]
rmst_exp <- rmst_exp(t = 30, rate = rate_exponential, start = 0)
rmst_exp

#Gives error for the covariate
rate_exponential_sex<- fsmodel_exponential$res[2]
rmst_exp2 <- rmst_exp(t = 30, rate = rate_exponential_sex, start = 0)
rmst_exp2

您的fsmodel_exponential$res[2]是负数,这会导致错误。 在指数模型中,这些参数的协变量代表加速故障时间 (AFT) 模型。 当您反转sex的因子水平时,您确实会得到这些,这会导致最大似然估计为正。

library(survival)
library(flexsurv)
data <- lung
data$sex <- relevel(factor(data$sex, labels = c("M", "F")), "F")
formula <- with(data, Surv(time, status) ~ sex)
fsmodel_exponential <- flexsurvreg(formula, dist = "exp")
rmst_exp(t = 30, rate = fsmodel_exponential$res[1], start = 0)
#> [1] 29.23162
rmst_exp(t = 30, rate = fsmodel_exponential$res[2], start = 0)
#> [1] 1.998406

plot(fsmodel_exponential, col = c("blue", "red"), 
    lwd.obs = 2, xlab = "months", ylab = "Recurrence-free survival")
legend("topright", levels(data$sex), col=c("red", "blue"), lty=1)

编辑:要获得 RMST,只需运行:

summary(fsmodel_exponential, type = "rmst", t= 30 )
#> sex=M 
#>   time     est      lcl      ucl
#> 1   30 28.7467 28.49528 28.94901
#> 
#> sex=F 
#>   time      est      lcl      ucl
#> 1   30 29.23162 28.98571 29.40346

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM