簡體   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