Get estimates of zone of influence (ZOI) metrics from response curves
Source:R/zoi_from_curve.R
zoi_from_curve.RdThis generic function computes ZOI metrics (maximum effect size,
ZOI radius, and impact) for ZOI predictor variables based on response curves
from statistical models.
The ZOI radius is estimated as the distance/radius at which the
relative selection strength decays to a given percentage of
the maximum effect size (e.g. 95% ZOI radius for the distance at which the
effect drops to 5% of the maximum). The impact accounts for
both the effect size and the ZOI radius and corresponds to the area under
(or over, if negative) the ZOI response curve.
The function computes ZOI metrics based on from weighted summary response curves
(mean or median), and based on that computes the confidence interval bounds
or individual model ZOI metrics to represent uncertainty in the ZOI metrics.
The function supports two types of input: a data.frame of individual model
predictions or a bag object containing an ensemble of models.
Usage
zoi_from_curve(x, ...)
# S3 method for class 'data.frame'
zoi_from_curve(
x,
weights,
percentage = 0.95,
curve = c("median", "mean")[1],
wq_probs = c(0.025, 0.975),
ci = TRUE,
type = c("linear", "exp")[1],
mean_col_name = "mean",
median_col_name = "quantile:0.5",
NAasZero = TRUE
)
# S3 method for class 'bag'
zoi_from_curve(
x,
data,
include = "all",
percentage = 0.95,
curve = c("median", "mean")[1],
type = c("linear", "exp")[1],
return_predictions = FALSE,
return_format = c("list", "df")[2],
ci = TRUE,
wq_probs = c(0.025, 0.975),
format_long = TRUE,
n_features = 1,
mean_col_name = "mean",
median_col_name = "quantile:0.5",
NAasZero = TRUE,
radius_max = NULL,
baseline = "zero",
type_feature = "line",
type_feature_recompute = TRUE,
resolution = 200,
radii = c(100, 250, 500, 1000, 2500, 5000, 10000),
zoi_shape = c("circle", "Gauss", "rectangle", "exp_decay", "bartlett", "threshold",
"mfilter")[1],
...
)Arguments
- x
[data.frame,bag]
Either adata.framecontaining response curve predictions for a single variable, or abagobject containing an ensemble of models.- ...
[any]
Additional arguments passed to the appropriate method.- weights
[numeric]
Numeric vector of model weights used to compute the weighted mean, weighted median, and weighted quantiles from the individual model prediction columns. This should match the number of individual model prediction columns inx.- percentage
[numeric(1)=0.95]
Numeric between 0 and 1. Defines the threshold for ZOI radius as a proportion of the maximum effect size. Default is0.95.- curve
[character(1)=c("mean", "median")]
Character vector. Which central tendency curves to use:"median","mean", or both.- wq_probs
[numeric,vector=c(0.025, 0.975)]
Numeric vector of quantiles used to compute confidence-interval for the ZOI metrics whenci = TRUE. Ignored whenci = FALSE.- ci
[logical(1)=TRUE]
Logical. WhenTRUE, returns ZOI metrics for weighted mean and/or median, and the weighted confidence interval curves. WhenFALSE, returns ZOI metrics for weighted mean/median and all for each individual model prediction curve present in the input.- type
[character(1)="linear"]{"linear", "exp"}
Character. Defines whether the calculation of ZOI should be based on the prediction on the linear scale or the response (exponential) scale.- mean_col_name
[character="mean"]
Name of the column containing the weighted mean response curve.- median_col_name
[character="quantile:0.5"]
Name of the column containing the weighted median response curve.- NAasZero
[logical(1)=TRUE]
Logical. IfTRUE, anyNAvalues in the final output are replaced by zero.- data
[data.frame]
The original dataset used for model fitting.- include
[character="all"]
Character. Either"all"or a regex pattern to filter selected ZOI variables.- return_predictions
[logical=FALSE]
Logical. Whether to return the prediction curves alongside ZOI metrics. IfTRUE, the output is necessarily alistwith with allpredictionsand thezoimetrics.- return_format
[character="df"]{"list", "df"}
Format of the returned ZOI metrics. Either a list of data.frames (ifreturn_format = "list"), one for each variable, or a singledata.frame(default, ifreturn_format = "df").- format_long
[logical(1)=TRUE]
Logical. Whether to return the ZOI metrics in long format (with azoi_metriccolumn) or wide format (with separate columns for each metric)..- n_features
[numeric=1]
Number of features used in ZOI prediction. It can a single number (considered the same for all ZOI variables) or a vector with the same number of elements as ZOI variables in the model.- radius_max
[numeric=NULL]
Numeric. Maximum distance/radius to use for prediction curves. IfNULL(default), the maximum value present in the bag's predictor table is used.- baseline
[character="zero"]
Character. Baseline used inpredict()(e.g.,"zero").- type_feature
[character="point"]
Character or vector. Type of spatial feature used inpredict().- type_feature_recompute
[logical=FALSE]
Logical. Whether to recompute spatial features withinpredict(), for linear features.- resolution
[numeric=200]
Integer. Resolution used in the recomuptation of ZOIs for linear features.- radii
[vector]
Numeric vector. Radii used for ZOI modeling.- zoi_shape
[character]
Character. Shape of the ZOI used in the model (e.g.,"circle","Gauss","exp_decay").
Value
For the data.frame method, returns a data.frame with columns for each
ZOI metric (max_effect_size, zoi_radius, effect_zoi_radius, impact).
When ci = TRUE, the rows are the weighted mean, median, and the lower
and upper CI quantiles. When ci = FALSE, the rows are mean, median,
and one row per individual model prediction curve present in the input.
The table can be transformed into long format if format_long = TRUE.
For the bag method, returns either a list or a data.frame of ZOI metrics
for each ZOI variable in the bag. When ci = TRUE, the stats column contains
mean, median, and the CI quantile labels. When ci = FALSE, the
stats column contains one entry per individual model curve.
If format_long = TRUE, the output data.frame is in long format,
with a zoi_metric column indicating the type of ZOI metric
(e.g., max_effect_size, zoi_radius, impact) and a
metric_value column with the corresponding values.
If return_predictions = TRUE, the function returns a list with
two elements: predictions, which is a list of data.frames
containing the prediction curves for each ZOI variable, and zoi,
which contains the ZOI metrics as described above.