Learn R Programming

LTRCforests (version 0.5.5)

sbrier_ltrc: Model fit evaluation for LTRC forests.

Description

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.

Usage

sbrier_ltrc(obj, id = NULL, pred, type = c("IBS", "BS"))

Arguments

obj

an object of class Surv, formed on left-truncated right-censored observations (which are pseudo-subject observations in the time-varying case).

id

an optional vector as subject identifiers for obj.

pred

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.

type

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.

Value

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.

Examples

Run this code
# 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
LTRCCIFobj = ltrccif(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 = LTRCCIFobj, 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