kogalur / randomForestSRC

DOCUMENTATION:
https://www.randomforestsrc.org/
GNU General Public License v3.0
115 stars 18 forks source link

Does rfsrc function work for multi-state model? #111

Closed cls3415 closed 3 years ago

cls3415 commented 3 years ago

Hi- I tried to model a multi-state model as following:

library(survival)
library(survminer)
library(dplyr)
data(mgus2)

sname <- c("MGUS", "Malignancy", "Death")
smat <- matrix(c(0,0,0, 1,0,0, 1,1,0), 3, 3,
               dimnames = list(sname, sname))
statefig(c(1,2), smat)

image

Using Cox model was okay, but rfsrc was not.

ptemp <- with(mgus2, ifelse(ptime==futime & pstat==1, ptime-.1, ptime))

data3 <- tmerge(mgus2, mgus2, id=id, death=event(futime, death),
                pcm = event(ptemp, pstat))
data3 <- tmerge(data3, data3, id, enum=cumtdc(tstart))
with(data3, table(death, pcm))

temp <- with(data3, ifelse(death==1, 2, pcm))
data3$event <- factor(temp, 0:2, labels=c("censor", "pcm", "death"))

mfit3 <- coxph(Surv(tstart, tstop, event) ~ I(age/10) + sex + mspike, id = id, data = data3)
## not working
rf.surv <- rfsrc(Surv(tstart, tstop, event) ~  sex , data = data3, ntree = 100, block.size = 1)

The error message is:

Error in parseFormula(formula, data, ytry) : 
  Survival formula incorrectly specified.

Any thought?

Thanks!

ishwaran commented 3 years ago

The package does not yet handle surv(start, stop, event) formula. Multi-state models are not supported.