Learn R Programming

DynForest (version 1.1.3)

getTree: Extract some information about the split for a tree by user

Description

Extract some information about the split for a tree by user

Usage

getTree(DynForest_obj, tree)

Value

A table sorted by the node/leaf identifier with each row representing a node/leaf. Each column provides information about the splits:

typeThe nature of the predictor (Longitudinal for longitudinal predictor, Numeric for continuous predictor or Factor for categorical predictor) if the node was split, Leaf otherwise
var_splitThe predictor used for the split defined by its order in timeData and fixedData
featureThe feature used for the split defined by its position in random statistic
thresholdThe threshold used for the split (only with Longitudinal and Numeric). No information is returned for Factor
NThe number of subjects in the node/leaf
NeventThe number of events of interest in the node/leaf (only with survival outcome)
depththe depth level of the node/leaf

Arguments

DynForest_obj

DynForest object containing the dynamic random forest used on train data

tree

Integer indicating the tree identifier

See Also

DynForest summary.DynForest

Examples

Run this code
# \donttest{
data(pbc2)

# 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
set.seed(1234)
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",
                                "serBilir","SGOT",
                                "albumin","alkaline")]

# 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)

# Extract split information from tree 4
res_tree4 <- getTree(DynForest_obj = res_dyn, tree = 4)
# }

Run the code above in your browser using DataLab