compute_OOBerror {DynForest}R Documentation

Compute the Out-Of-Bag error (OOB error)


Compute the Out-Of-Bag error (OOB error)


compute_OOBerror(DynForest_obj, IBS.min = 0, IBS.max = NULL, ncores = NULL)



DynForest object containing the dynamic random forest used on train data


(Only with survival outcome) Minimal time to compute the Integrated Brier Score. Default value is set to 0.


(Only with survival outcome) Maximal time to compute the Integrated Brier Score. Default value is set to the maximal time-to-event found.


Number of cores used to grow trees in parallel. Default value is the number of cores of the computer-1.


compute_OOBerror() function return a list with the following elements:

data A list containing the data used to grow the trees
rf A table with each tree in column. Provide multiple characteristics about the tree building
type Outcome type
times A numeric vector containing the time-to-event for all subjects
cause Indicating the cause of interest
causes A numeric vector containing the causes indicator
Inputs A list of 3 elements: Longitudinal, Numeric and Factor. Each element contains the names of the predictors
Longitudinal.model A list of longitudinal markers containing the formula used for modeling in the random forest
param A list containing the hyperparameters
oob.err A numeric vector containing the OOB error for each subject
oob.pred Outcome prediction for all subjects
IBS.range A vector containing the IBS min and max


Anthony Devaux (



# Get Gaussian distribution for longitudinal predictors
pbc2$serBilir <- log(pbc2$serBilir)
pbc2$SGOT <- log(pbc2$SGOT)
pbc2$albumin <- log(pbc2$albumin)
pbc2$alkaline <- log(pbc2$alkaline)

# Sample 100 subjects
id <- unique(pbc2$id)
id_sample <- sample(id, 100)
id_row <- which(pbc2$id%in%id_sample)

pbc2_train <- pbc2[id_row,]

timeData_train <- pbc2_train[,c("id","time",

# Create object with longitudinal association for each predictor
timeVarModel <- list(serBilir = list(fixed = serBilir ~ time,
                                     random = ~ time),
                     SGOT = list(fixed = SGOT ~ time + I(time^2),
                                 random = ~ time + I(time^2)),
                     albumin = list(fixed = albumin ~ time,
                                    random = ~ time),
                     alkaline = list(fixed = alkaline ~ time,
                                     random = ~ time))

# Build fixed data
fixedData_train <- unique(pbc2_train[,c("id","age","drug","sex")])

# Build outcome data
Y <- list(type = "surv",
          Y = unique(pbc2_train[,c("id","years","event")]))

# Run DynForest function
res_dyn <- DynForest(timeData = timeData_train, fixedData = fixedData_train,
                     timeVar = "time", idVar = "id",
                     timeVarModel = timeVarModel, Y = Y,
                     ntree = 50, nodesize = 5, minsplit = 5,
                     cause = 2, ncores = 2, seed = 1234)

# Compute OOB error
res_dyn_OOB <- compute_OOBerror(DynForest_obj = res_dyn, ncores = 2)

[Package DynForest version 1.1.0 Index]