[英]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.