doJk {SDMtune} | R Documentation |
Jackknife Test
Description
Run the Jackknife test for variable importance removing one variable at time.
Usage
doJk(
model,
metric,
variables = NULL,
test = NULL,
with_only = TRUE,
env = NULL,
return_models = FALSE,
progress = TRUE
)
Arguments
model |
SDMmodel or SDMmodelCV object. |
metric |
character. The metric used to evaluate the models, possible values are: "auc", "tss" and "aicc". |
variables |
vector. Variables used for the test, if not provided it takes all the variables used to train the model. |
test |
SWD. If provided it reports the result also for the testing dataset. Not used for aicc and SDMmodelCV. |
with_only |
logical. If |
env |
rast containing the environmental variables, used only with "aicc". |
return_models |
logical. If |
progress |
logical If |
Value
A data frame with the test results. If return_model = TRUE
it
returns a list containing the test results together with the models.
Author(s)
Sergio Vignali
Examples
# Acquire environmental variables
files <- list.files(path = file.path(system.file(package = "dismo"), "ex"),
pattern = "grd",
full.names = TRUE)
predictors <- terra::rast(files)
# Prepare presence and background locations
p_coords <- virtualSp$presence
bg_coords <- virtualSp$background
# Create SWD object
data <- prepareSWD(species = "Virtual species",
p = p_coords,
a = bg_coords,
env = predictors,
categorical = "biome")
# Split presence locations in training (80%) and testing (20%) datasets
datasets <- trainValTest(data,
test = 0.2,
only_presence = TRUE)
train <- datasets[[1]]
test <- datasets[[2]]
# Train a model
model <- train(method = "Maxnet",
data = train,
fc = "lq")
# Execute the Jackknife test only for the environmental variables "bio1" and
# "bio12", using the metric AUC
doJk(model,
metric = "auc",
variables = c("bio1", "bio12"),
test = test)
# The same without testing dataset
doJk(model,
metric = "auc",
variables = c("bio1", "bio12"))
# Execute the Jackknife test only for the environmental variables "bio1" and
# "bio12", using the metric TSS but without running the test for one single
# variable
doJk(model,
metric = "tss",
variables = c("bio1", "bio12"),
test = test,
with_only = FALSE)
# Execute the Jackknife test only for the environmental variables "bio1" and
# "bio12", using the metric AICc but without running the test for one single
# variable
doJk(model,
metric = "aicc",
variables = c("bio1", "bio12"),
with_only = FALSE,
env = predictors)
# Execute the Jackknife test for all the environmental variables using the
# metric AUC and returning all the trained models
jk <- doJk(model,
metric = "auc",
test = test,
return_models = TRUE)
jk$results
jk$models_without
jk$models_withonly