plot.IndependentResponse: Show independent response curves.

View source: R/plot.R

plot.IndependentResponseR Documentation

Show independent response curves.

Description

Plot independent response curves using ggplot2 by optionally set target variable(s).

Usage

## S3 method for class 'IndependentResponse'
plot(x, target_var = NA, smooth_span = 0.3, ...)

Arguments

x

(IndependentResponse) The independent response curve object to plot. It could be the return of function independent_response.

target_var

(vector of character) The target variable to plot. It could be NA. If it is NA, all variables will be plotted.

smooth_span

(numeric) The span value for smooth fit in ggplot2. When it is 0, no smooth applied. The default is 0.3.

...

Not used.

Value

ggplot2 figure of response curves

See Also

independent_response

Examples


# Using a pseudo presence-only occurrence dataset of
# virtual species provided in this package
library(dplyr)
library(sf)
library(stars)
library(itsdm)

# Prepare data
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 = 20,
  sample_size = 0.8, ndim = 2L,
  seed = 123L, 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)



itsdm documentation built on July 9, 2023, 6:45 p.m.