plot.DynForest {DynForest}R Documentation

Plot results about the most predictive variables used in DynForest

Description

This function displays a plot of 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 '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, ...)

Arguments

x

Object inheriting from classes DynForestVarDepth, DynForestVIMP or DynForestgVIMP, to respectively plot the minimal depth, the variable importance or grouped variable importance.

plot_level

For DynForestVarDepth object, compute the statistic at predictor (plot_level="predictor") or feature (plot_level="feature") level

...

Optional parameters to be passed to the low level function

PCT

For DynForestVIMP or DynForestgVIMP object, display VIMP statistic in percentage. Default value is FALSE.

ordering

For DynForestVIMP object, order predictors according to VIMP value. Default value is TRUE.

Value

plot() function displays:

With DynForestVarDepth the minimal depth for each predictor/feature
With DynForestVIMP the VIMP for each predictor
With DynForestVarDepth 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)

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




[Package DynForest version 1.1.0 Index]