if (require("randomForestSRC")) {
library("survival")
## Competing risk data set involving follicular cell lymphoma
## (from doi:10.1002/9780470870709)
data("follic", package = "randomForestSRC")
## Therapy:
### Radiotherapy alone (RT) or Chemotherapy + Radiotherapy (CMTRT)
follic$ch <- factor(as.character(follic$ch),
levels = c("N", "Y"), labels = c("RT", "CMTRT"))
## Clinical state
follic$clinstg <- factor(follic$clinstg,
levels = 2:1, labels = c("II", "I"))
## Pre-processing as in Deresa & Van Keilegom (2023)
follic$time <- round(follic$time, digits = 3)
follic$age <- with(follic, (age - mean(age)) / sd(age)) ## standardised
follic$hgb <- with(follic, (hgb - mean(hgb)) / sd(hgb)) ## standardised
## Setup `Surv' object for fitting Compris():
### "status" indicator with levels:
### (1) independent censoring (admin_cens)
### (2) primary event of interest (relapse)
### (3) dependent censoring (death)
follic$status <- factor(follic$status,
levels = 0:2, labels = c("admin_cens", "relapse", "death"))
follic$y <- with(follic, Surv(time = time, event = status))
## Fit a Gaussian Copula-based Cox Proportional Hazards Model with
## a marginal "Coxph" model for the primary event of interest and
## a Weibull "Survreg" model for dependent censoring
## Use very informative starting values to keep CRAN happy
cf <- c(
"Event_relapse.Event_relapse.Bs1(Event_relapse)" = -1.89058,
"Event_relapse.Event_relapse.Bs2(Event_relapse)" = -1.6566,
"Event_relapse.Event_relapse.Bs3(Event_relapse)" = -0.50329,
"Event_relapse.Event_relapse.Bs4(Event_relapse)" = -0.50329,
"Event_relapse.Event_relapse.Bs5(Event_relapse)" = -0.07402,
"Event_relapse.Event_relapse.Bs6(Event_relapse)" = 0.53156,
"Event_relapse.Event_relapse.Bs7(Event_relapse)" = 0.67391,
"Event_relapse.Event_relapse.chCMTRT" = -0.2861,
"Event_relapse.Event_relapse.age" = 0.43178,
"Event_relapse.Event_relapse.hgb" = 0.02913,
"Event_relapse.Event_relapse.clinstgI" = -0.55601,
"Event_death.Event_death.(Intercept)" = -2.20056,
"Event_death.Event_death.log(Event_death)" = 0.98102,
"Event_death.Event_death.chCMTRT" = 0.25012,
"Event_death.Event_death.age" = -0.64826,
"Event_death.Event_death.hgb" = -0.02312,
"Event_death.Event_death.clinstgI" = 0.57684,
"Event_death.Event_relapse.(Intercept)" = -3.48595
)
### gave up after multiple submissions to CRAN resulting
### in 5.02 > 5 secs
# \donttest{
m <- Compris(y ~ ch + age + hgb + clinstg, data = follic, log_first = TRUE,
### arguments below speed-up example, don't use!
theta = cf, ### informativ starting values
optim = mltoptim(), ### no hessian
args = list(type = "ghalton",
M = 80)) ### only 80 MC integration points
### log-likelihood
logLik(m)
## Similar to Table 4 of Deresa & Van Keilegom (2023),
## but using a Gaussian copula instead of a Gumbel copula.
## marginal parameters
coef(m, type = "marginal")
## Kendall's tau
coef(m, type = "Kendall")
# }
}
Run the code above in your browser using DataLab