Learn R Programming

SDMtune (version 0.1.0)

doJk: 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, parallel = FALSE, return_models = FALSE)

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, default is NULL.

test

'>SWD. If provided it reports the result also for the test dataset. Not used for aicc and '>SDMmodelCV.

with_only

logical. If TRUE it runs the test also for each variable in isolation, default is TRUE.

env

stack containing the environmental variables, used only with "aicc", default is NULL.

parallel

logical, if TRUE it uses parallel computation, default is FALSE. Used only with AICc.

return_models

logical, if TRUE returns all the models together with the test result, default is FALSE.

Value

A data frame with the test results. If "return_model = TRUE" it returns a list containing the test results together with the models.

Details

Parallel computation increases the speed only for large datasets due to the time necessary to create the cluster.

Examples

Run this code
# NOT RUN {
# Acquire environmental variables
files <- list.files(path = file.path(system.file(package = "dismo"), "ex"),
                    pattern = "grd", full.names = TRUE)
predictors <- raster::stack(files)

# Prepare presence locations
p_coords <- condor[, 1:2]

# Prepare background locations
bg_coords <- dismo::randomPoints(predictors, 5000)

# Create SWD object
presence <- prepareSWD(species = "Vultur gryphus", coords = p_coords,
                       env = predictors, categorical = "biome")
bg <- prepareSWD(species = "Vultur gryphus", coords = bg_coords,
                 env = predictors, categorical = "biome")

# Split presence locations in training (80%) and testing (20%) datasets
datasets <- trainValTest(presence, test = 0.2)
train <- datasets[[1]]
test <- datasets[[2]]

# Train a model
model <- train(method = "Maxnet", p = train, a = bg, 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)

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

Run the code above in your browser using DataLab