Calculate independent responses of each variables.
Source:R/independent_response.R
independent_response.Rd
Calculate the independent responses of each variables within the model.
Arguments
- model
(Any predictive model). It is
isolation_forest
here. It could be the itemmodel
ofPOIsotree
made by functionisotree_po
.- var_occ
(
data.frame
,tibble
) Thedata.frame
style table that include values of environmental variables at occurrence locations.- variables
(
stars
) Thestars
of environmental variables. It should have multipleattributes
instead ofdims
. If you haveraster
object instead, you could usest_as_stars
to convert it tostars
or useread_stars
directly read source data as astars
. You also could use itemvariables
ofPOIsotree
made by functionisotree_po
.- si
(
integer
) The number of samples to generate response curves. If it is too small, the response curves might be biased. The default value is1000
.- visualize
(
logical
) ifTRUE
, plot the response curves. The default isFALSE
.
Value
(IndependentResponse
) A list of
responses_cont (
list
) A list of response values of continuous variablesresponses_cat (
list
) A list of response values of categorical variables
Details
The values show how each environmental variable independently affects the modeling prediction. They show how the predicted result only using this variable changes as it is varied.
References
Elith, Jane, et al. "The evaluation strip: a new and robust method for plotting predicted responses from species distribution models." Ecological modelling 186.3 (2005): 280-289.doi:10.1016/j.ecolmodel.2004.12.007
Examples
# Using a pseudo presence-only occurrence dataset of
# virtual species provided in this package
library(dplyr)
library(sf)
library(stars)
library(itsdm)
data("occ_virtual_species")
obs_df <- occ_virtual_species %>% filter(usage == "train")
eval_df <- occ_virtual_species %>% filter(usage == "eval")
x_col <- "x"
y_col <- "y"
obs_col <- "observation"
# Format the observations
obs_train_eval <- format_observation(
obs_df = obs_df, eval_df = eval_df,
x_col = x_col, y_col = y_col, obs_col = obs_col,
obs_type = "presence_only")
env_vars <- system.file(
'extdata/bioclim_tanzania_10min.tif',
package = 'itsdm') %>% read_stars() %>%
slice('band', c(1, 5, 12, 16))
# With imperfect_presence mode,
mod <- isotree_po(
obs_mode = "imperfect_presence",
obs = obs_train_eval$obs,
obs_ind_eval = obs_train_eval$eval,
variables = env_vars, ntrees = 10,
sample_size = 0.8, ndim = 2L,
seed = 123L, nthreads = 1,
response = FALSE,
spatial_response = FALSE,
check_variable = FALSE)
independent_responses <- independent_response(
model = mod$model,
var_occ = mod$vars_train,
variables = mod$variables)
plot(independent_responses)