distribution {samc} | R Documentation |
Calculate distribution metrics
Description
Calculate the probability of being at a transient state at a specific time.
Usage
distribution(samc, init, origin, dest, time)
## S4 method for signature 'samc,missing,missing,missing,numeric'
distribution(samc, time)
## S4 method for signature 'samc,missing,location,missing,numeric'
distribution(samc, origin, time)
## S4 method for signature 'samc,missing,missing,location,numeric'
distribution(samc, dest, time)
## S4 method for signature 'samc,missing,location,location,numeric'
distribution(samc, origin, dest, time)
## S4 method for signature 'samc,ANY,missing,missing,numeric'
distribution(samc, init, time)
## S4 method for signature 'samc,ANY,missing,location,numeric'
distribution(samc, init, dest, time)
Arguments
samc |
A |
init |
Sets the initial state |
origin |
A positive integer or character name representing transient state
|
dest |
A positive integer or character name representing transient state
|
time |
A positive integer or a vector of positive integers representing
|
Details
Q^t
-
distribution(samc, time)
The result is a matrix
M
whereM_{i,j}
is the probability of being at transient state\mathit{j}
after\mathit{t}
time steps if starting at transient state\mathit{i}
.The returned matrix will always be dense and cannot be optimized. Must enable override to use (see
samc-class
). -
distribution(samc, origin, time)
The result is a vector
\mathbf{v}
where\mathbf{v}_j
is the probability of being at transient state\mathit{j}
after\mathit{t}
time steps if starting at transient state\mathit{i}
.If multiple time steps were provided as a vector, then the result will be an ordered named list containing a vector for each time step.
If the samc-class object was created using matrix or RasterLayer maps, then vector
\mathbf{v}
can be mapped to a RasterLayer using themap
function. -
distribution(samc, dest, time)
The result is a vector
\mathbf{v}
where\mathbf{v}_i
is the probability of being at transient state\mathit{j}
after\mathit{t}
time steps if starting at transient state\mathit{i}
.If multiple time steps were provided as a vector, then the result will be an ordered named list containing a vector for each time step.
If the samc-class object was created using matrix or RasterLayer maps, then vector
\mathbf{v}
can be mapped to a RasterLayer using themap
function. -
distribution(samc, origin, dest, time)
The result is a numeric value that is the probability of being at a transient state
\mathit{j}
after\mathit{t}
time steps if starting at transient state\mathit{i}
.If multiple time steps were provided as a vector, then the result will be an ordered named list containing a vector for each time step.
\psi^TQ^t
-
distribution(samc, init, time)
The result is a vector
\mathbf{v}
where\mathbf{v}_j
is the probability of being at transient state\mathit{i}
after\mathit{t}
time steps given an initial state\psi
.If multiple time steps were provided as a vector, then the result will be an ordered named list containing a vector for each time step.
If the samc-class object was created using matrix or RasterLayer maps, then vector
\mathbf{v}
can be mapped to a RasterLayer using themap
function.
Value
See Details
Performance
Any relevant performance information about this function can be found in the
performance vignette: vignette("performance", package = "samc")
Examples
# "Load" the data. In this case we are using data built into the package.
# In practice, users will likely load raster data using the raster() function
# from the raster package.
res_data <- samc::example_split_corridor$res
abs_data <- samc::example_split_corridor$abs
init_data <- samc::example_split_corridor$init
# Make sure our data meets the basic input requirements of the package using
# the check() function.
check(res_data, abs_data)
check(res_data, init_data)
# Setup the details for a random-walk model
rw_model <- list(fun = function(x) 1/mean(x), # Function for calculating transition probabilities
dir = 8, # Directions of the transitions. Either 4 or 8.
sym = TRUE) # Is the function symmetric?
# Create a `samc-class` object with the resistance and absorption data using
# the samc() function. We use the recipricol of the arithmetic mean for
# calculating the transition matrix. Note, the input data here are matrices,
# not RasterLayers.
samc_obj <- samc(res_data, abs_data, model = rw_model)
# Convert the initial state data to probabilities
init_prob_data <- init_data / sum(init_data, na.rm = TRUE)
# Calculate short- and long-term metrics using the analytical functions
short_mort <- mortality(samc_obj, init_prob_data, time = 50)
short_dist <- distribution(samc_obj, origin = 3, time = 50)
long_disp <- dispersal(samc_obj, init_prob_data)
visit <- visitation(samc_obj, dest = 4)
surv <- survival(samc_obj)
# Use the map() function to turn vector results into RasterLayer objects.
short_mort_map <- map(samc_obj, short_mort)
short_dist_map <- map(samc_obj, short_dist)
long_disp_map <- map(samc_obj, long_disp)
visit_map <- map(samc_obj, visit)
surv_map <- map(samc_obj, surv)