Compute the (integrated) Brier score to evaluate the model fit for (left-truncated) right-censored survival data with time-varying covariates, as well as left-truncated right-censored data with time-invariant covariates.
sbrier_ltrc(obj, id = NULL, pred, type = c("IBS", "BS"))
an object of class Surv
, formed on
left-truncated right-censored observations (which are pseudo-subject
observations in the time-varying case).
an optional vector as subject identifiers for obj
.
a list. This should contain 1) either a matrix
or a list of survival probabilies named survival.probs
; 2) a sequence
of time points survival.times
; 3) a vector of upper time limits
survival.tau
.
See the values returned by predictProb
.
a character string denoting the type of scores returned. If type = "IBS"
,
the integrated Brier score up to the last time point in pred$surv.times
that is
not larger than the minimum value of pred$surv.tau
is returned.
If type = "BS"
, the Brier score at every time point in pred$surv.times
up to
the minimum value of pred$surv.tau
is returned. type = "IBS"
is set by default.
If type = "IBS"
, this returns the integrated Brier score.
If type = "BS"
, this returns BScore
, the Brier scores
and Time
, the time points at which the scores are computed.
# NOT RUN {
### Example with dataset pbcsample
library(survival)
Formula = Surv(Start, Stop, Event) ~ age + alk.phos + ast + chol + edema
## Fit an LTRC conditional inference forest on time-varying data
LTRCCFobj = ltrccf(formula = Formula, data = pbcsample, id = ID, mtry = 3, ntree = 50L)
# Time points
tpnt = seq(0, 6000, by = 100)
# Set different upper time limits for each of the subjects
tau = seq(4001, 6200, length.out = length(unique(pbcsample$ID)))
## Obstain estimation at time points tpnt
Predobj = predictProb(object = LTRCCFobj, time.eval = tpnt, time.tau = tau)
## Compute the integrated Brier score:
pbcobj = Surv(pbcsample$Start, pbcsample$Stop, pbcsample$Event)
IBS = sbrier_ltrc(obj = pbcobj, id = pbcsample$ID, pred = Predobj, type = "IBS")
## Compute the Brier score at each value of tpnt
BS = sbrier_ltrc(obj = pbcobj, id = pbcsample$ID, pred = Predobj, type = "BS")
## Plot the Brier scores
plot(BS$Time, BS$BScore, pch = 20, xlab = "Time", ylab = "Brier score", col = 2)
## As one can see, the Brier scores are returned at all tpnt up to 4000,
## this is because the algorithm set the last evaluation time point
## to be 4000 based on the value of time.eval and time.tau
## (max(tpnt[tpnt <= min(tau)]) == 4000).
# }
Run the code above in your browser using DataLab