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

如何计算R中协变量的限制平均生存时间?,r,survival,R,Survival,我试图计算由协变量分组的受限平均生存时间,但我得到了一个错误。您能看一下下面的代码示例代码并告诉我问题是什么吗 library(survival) library(flexsurv) data <- survival::lung formula <- Surv(data$time, data$status) ~data$sex fsmodel_exponential<-flexsurvreg(formula,dist = "exp") #Produces the expec

我试图计算由协变量分组的受限平均生存时间,但我得到了一个错误。您能看一下下面的代码示例代码并告诉我问题是什么吗

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
库(生存)
图书馆(flexsurv)

数据您的
fsmodel\u index$res[2]
为负值,这会导致错误。在指数模型中,这些参数的协变量表示加速失效时间(AFT)模型。当你反转
性别的因子水平时,你会得到这些,这会导致正的最大似然估计

库(生存)
图书馆(flexsurv)

谢谢你的回复!但是,我想知道是否有一种方法可以同时计算两条曲线的RMST?例如,对于你例子中的女性来说是29.23,但是对于男性来说是多少?@gibsonmate:参见我答案中的编辑-
摘要(fsmodel\u index,type=“rmst”,t=30)
会给出
t=30
。有关更多详细信息,请参阅
?summary.flexsurvreg
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