| plot.DynForest {DynForest} | R Documentation |
Plot function in DynForest
Description
This function displays a plot of CIF for a given node and tree (for class DynForest), the most predictive variables with the minimal depth (for class DynForestVarDepth), the variable importance (for class DynForestVIMP) or the grouped variable importance (for class DynForestgVIMP).
Usage
## S3 method for class 'DynForest'
plot(x, tree = NULL, nodes = NULL, id = NULL, max_tree = NULL, ...)
## S3 method for class 'DynForestVarDepth'
plot(x, plot_level = c("predictor", "feature"), ...)
## S3 method for class 'DynForestVIMP'
plot(x, PCT = FALSE, ordering = TRUE, ...)
## S3 method for class 'DynForestgVIMP'
plot(x, PCT = FALSE, ...)
## S3 method for class 'DynForestPred'
plot(x, id = NULL, ...)
Arguments
x |
Object inheriting from classes |
tree |
For |
nodes |
For |
id |
For |
max_tree |
For |
... |
Optional parameters to be passed to the low level function |
plot_level |
For |
PCT |
For |
ordering |
For |
Value
plot() function displays:
With DynForestVarDepth | the minimal depth for each predictor/feature |
With DynForestVIMP | the VIMP for each predictor |
With DynForestgVIMP | the grouped-VIMP for each given group |
See Also
DynForest var_depth compute_VIMP compute_gVIMP
Examples
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)
# Plot estimated CIF at nodes 17 and 32
plot(x = res_dyn, tree = 1, nodes = c(17,32))
# Run var_depth function
res_varDepth <- var_depth(res_dyn)
# Plot minimal depth
plot(x = res_varDepth, plot_level = "feature")
# Compute VIMP statistic
res_dyn_VIMP <- compute_VIMP(DynForest_obj = res_dyn, ncores = 2)
# Plot VIMP
plot(x = res_dyn_VIMP, PCT = TRUE)
# Compute gVIMP statistic
res_dyn_gVIMP <- compute_gVIMP(DynForest_obj = res_dyn,
group = list(group1 = c("serBilir","SGOT"),
group2 = c("albumin","alkaline")),
ncores = 2)
# Plot gVIMP
plot(x = res_dyn_gVIMP, PCT = TRUE)
# Sample 5 subjects to predict the event
set.seed(123)
id_pred <- sample(id, 5)
# Create predictors objects
pbc2_pred <- pbc2[which(pbc2$id%in%id_pred),]
timeData_pred <- pbc2_pred[,c("id", "time", "serBilir", "SGOT", "albumin", "alkaline")]
fixedData_pred <- unique(pbc2_pred[,c("id","age","drug","sex")])
# Predict the CIF function for the new subjects with landmark time at 4 years
pred_dyn <- predict(object = res_dyn,
timeData = timeData_pred, fixedData = fixedData_pred,
idVar = "id", timeVar = "time",
t0 = 4)
# Plot predicted CIF for subjects 26 and 110
plot(x = pred_dyn, id = c(26, 110))