繁体   English   中英

在生存模型中使用时间相关协变量进行预测

[英]Predictions using time dependent covariates in survival model

一个简单的问题,当您进行预测时,如何在提供给newdata的data.frame中指定时间相关协变量?

换句话说,我使用时间相关协变量拟合模型:

cfit <- coxph(Surv(tstart, tstop, status) ~ treat + sex + age +
            inherit + cluster(id), data=cgd)

现在,我想为患者创建一个预测,但要使用该患者的最新数据。 换句话说,假设我们在特定时间间隔内观察到某些协变量的变化,它们的生存概率是多少?

我可以预测患者的存活情况,如下所示:

survfit(cfit, newdata=data.frame(treat = "placebo", age = 12, sex ="male", inherit = "X-linked"))$surv

但是,这不允许我从开始观察该患者起就随着时间的推移来更新预测,从而允许合并更新的协变量。

帮助页面?survfit.coxph的详细信息部分的?survfit.coxph进行了详细?survfit.coxph 基本上,您需要一个id列来显示哪些行属于同一个人,然后对于每一行,您需要开始时间,结束时间以及该时间段内协变量的值。 被预测个体的每个时间段在newdata都会有其自己的行(因此时间段不应重叠)。

R在我上面的评论中有一个可复制的示例:

## Install package that has a dataset with data applicable for this problem
install.packages("ipw")
library(ipw)

## Load data
head(haartdat,n=100)

## Fit model, with time varying covariate cd4.sqrt
model.2 <- coxph(Surv(tstart, fuptime, event) ~ sex + age + cd4.sqrt + cluster(patient), data = haartdat)

## Create dataframe of variables (one row)
covs <- data.frame(age = 25,sex = 1,cd4.sqrt = 24)
covs
## Get survival probabilities for these variables at baseline
summary(survfit(model.2, newdata = covs, type = "aalen"))


## Now create two 'newdata' sets of covariates, for time points up to 1900
## covs.2 the data is same at all 20 time points
covs.2 <- cbind(rep(1,20),rbind(covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs))
colnames(covs.2)[1] <- "patient"
covs.2 <- data.frame(covs.2)
covs.2$tstart <- seq(-100,1800,100)
covs.2$fuptime <- seq(0,1900,100)
covs.2$event <- rep(0,20)

## covs.3 has varying cd4.sqrt
covs.3 <- cbind(rep(2,20),rbind(covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs,covs))
colnames(covs.3)[1] <- "patient"
covs.3 <- data.frame(covs.3)
covs.3$tstart <- seq(-100,1800,100)
covs.3$fuptime <- seq(0,1900,100)
covs.3$event <- rep(0,20)
covs.3$cd4.sqrt <- seq(20.25,25,0.25)

## Combine into one dataset
covs.4 <- rbind(covs.2,covs.3)
covs.4

## Create survival probabilities, with the id = argument
summary(survfit(model.2, newdata = covs.4, type = "aalen", id = patient))

暂无
暂无

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

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