Compute the AUC using the Man-Whitney U Test formula.
Arguments
- model
- An SDMmodel or SDMmodelCV object. 
- test
- SWD object when - modelis an SDMmodel object; logical or SWD object when- modelis an SDMmodelCV object. If not provided it computes the training AUC, see details.
Details
For SDMmodelCV objects, the function computes the mean
of the training AUC values of the k-folds. If test = TRUE it computes the
mean of the testing AUC values for the k-folds. If test is an
SWD object, it computes the mean AUC values for the provided
testing dataset.
References
Mason, S. J. and Graham, N. E. (2002), Areas beneath the relative operating characteristics (ROC) and relative operating levels (ROL) curves: Statistical significance and interpretation. Q.J.R. Meteorol. Soc., 128: 2145-2166.
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")
#> ℹ Extracting predictor information for presence locations
#> ✔ Extracting predictor information for presence locations [20ms]
#> 
#> ℹ Extracting predictor information for absence/background locations
#> ✔ Extracting predictor information for absence/background locations [48ms]
#> 
# 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 = "l")
# Compute the training AUC
auc(model)
#> [1] 0.8387422
# Compute the testing AUC
auc(model,
    test = test)
#> [1] 0.843245
# \donttest{
# Same example but using cross validation instead of training and testing
# datasets
folds <- randomFolds(data,
                     k = 4,
                     only_presence = TRUE)
model <- train(method = "Maxnet",
               data = data,
               fc = "l",
               folds = folds)
# Compute the training AUC
auc(model)
#> [1] 0.8415392
# Compute the testing AUC
auc(model,
    test = TRUE)
#> [1] 0.8340127
# Compute the AUC for the held apart testing dataset
auc(model,
    test = test)# }
#> [1] 0.8458806
