R/independent_response.R
independent_response.Rd
Calculate the independent responses of each variables within the model.
independent_response(model, var_occ, variables, si = 1000, visualize = FALSE)
(Any predictive model). It is isolation_forest
here. It could
be the item model
of POIsotree
made by function isotree_po
.
(data.frame
, tibble
) The data.frame
style table that
include values of environmental variables at occurrence locations.
(stars
) The stars
of environmental variables.
It should have multiple attributes
instead of dims
.
If you have raster
object instead, you
could use st_as_stars
to convert it to stars
or use
read_stars
directly read source data as a stars
.
You also could use item variables
of POIsotree
made by function
isotree_po
.
(integer
) The number of samples to generate response curves.
If it is too small, the response curves might be biased.
The default value is 1000
.
(logical
) if TRUE
, plot the response curves.
The default is FALSE
.
(IndependentResponse
) A list of
responses_cont (list
) A list of response values of continuous
variables
responses_cat (list
) A list of response values of categorical
variables
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.
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
# 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)