我希望从coxme模型中,在给定的时间步骤中,为我的解释变量的给定值,获得事件概率的预测。我的数据结构如下:
# Generate data
set.seed(123)
mydata <- data.frame(Site = as.factor(sample(c("SiteA", "SiteB", "SiteC"), 1000, replace = TRUE)),
Block = as.factor(sample(c("A", "B", "C", "D", "E", "F"), 1000, replace = TRUE)),
Treatment = as.factor(sample(c("Treat.A", "Treat.B"), 1000, replace = TRUE)),
Origin = as.factor(sample(c("Origin.A", "Origin.B"), 1000, replace = TRUE)),
Time = sample(seq(3), 1000, replace = TRUE),
Surv = sample(c(0, 1), 1000, replace = TRUE)) # Alive is 0, death is 1
# Coxme model
mymodel <- coxme(Surv(Time , Surv) ~ Treatment*Origin +
(1|Site/Block), data = mydata)我想在时间= 3的时候获得预测的生存可能性,对于每种治疗:起源组合。如果我有一个coxph模型(即没有随机效应),这可以很容易地从生存包中获得满足:
# use expand.grid to get a table with all possible combinations of Site and Treatment
newdata.surv <- with(mydata, expand.grid(Site = unique(Origin), Treatment = unique(Treatment)))
# run survfit to predict the new values
fitted <- survival::survfit(mymodel, newdata = newdata.surv)
# extract the fitted values for the time slice of interest: 3
newdata.surv$fit <- fitted$surv[3,]
newdata.surv$lower <- fitted$lower[3,] # Lower confidence interval
newdata.surv$upper <- fitted$upper[3,] # Upper confidence interval然而,survfit不适用于coxme object。我知道predict.coxme存在于coxme package中,但是当我尝试使用它时,我总是会得到错误:“无法找到函数" predict.coxme”,我使用的是coxme包的2.2-10版本,因此应该包含predict.coxme函数(参见https://cran.r-project.org/web/packages/coxme/news.html)。
我已经看到coxme对象被包emmeans和lsmeans所支持,但我不确定这些包是否可以用来预测生存。提前谢谢你的帮助。
发布于 2020-03-01 01:41:56
coxme.predict函数本身并不导出,但您可以使用predict(mymodel)调用它,后者将调用此方法(或者您可以直接调用coxme:::predict.coxme(mymodel) (带有3个冒号))。有关简要说明,请参见?coxme:::predict.coxme。它目前似乎不支持新数据参数,所以我不确定它对您的用例有多大的帮助。
https://stackoverflow.com/questions/60467243
复制相似问题