Perturbation analysis of vital rates in a matrix population model
Perturbs lower-level vital rates within a matrix population model and measures the response (sensitivity or elasticity) of the per-capita population growth rate at equilibrium (λ), or, with a user-supplied function, any other demographic statistic.
These decompositions assume that all transition rates are products of a
stage-specific survival term (column sums of matU
) and a lower level
vital rate that is conditional on survival (growth, shrinkage, stasis,
dormancy, or reproduction). Reproductive vital rates that are not conditional
on survival (i.e. within a stage class from which there is no survival) are
also allowed.
perturb_vr( matU, matF, matC = NULL, pert = 1e-06, type = "sensitivity", demog_stat = "lambda", ... )
matU |
The survival component of a matrix population model (i.e. a square projection matrix reflecting survival-related transitions; e.g. progression, stasis, and retrogression). |
matF |
The sexual component of a matrix population model (i.e. a square projection matrix reflecting transitions due to sexual reproduction). |
matC |
The clonal component of a matrix population model (i.e. a square
projection matrix reflecting transitions due to clonal reproduction).
Defaults to |
pert |
Magnitude of the perturbation. Defaults to |
type |
Whether to return "sensitivity" or "elasticity" values. Defaults to "sensitivity". |
demog_stat |
The demographic statistic to be used, as in "the
sensitivity/elasticity of |
... |
Additional arguments passed to the function |
A list with 5 elements:
survival |
sensitivity or elasticity of |
growth |
sensitivity or elasticity of |
shrinkage |
sensitivity or elasticity of |
fecundity |
sensitivity or elasticity of |
clonality |
sensitivity or elasticity of |
Rob Salguero-Gomez <rob.salguero@zoo.ox.ac.uk>
Patrick Barks <patrick.barks@gmail.com>
Other perturbation analysis:
perturb_matrix()
,
perturb_stochastic()
,
perturb_trans()
,
pop_vectors()
matU <- rbind(c(0.1, 0, 0, 0), c(0.5, 0.2, 0.1, 0), c( 0, 0.3, 0.3, 0.1), c( 0, 0, 0.5, 0.6)) matF <- rbind(c( 0, 0, 1.1, 1.6), c( 0, 0, 0.8, 0.4), c( 0, 0, 0, 0), c( 0, 0, 0, 0)) perturb_vr(matU, matF) # use elasticities rather than sensitivities perturb_vr(matU, matF, type = "elasticity") # use a larger perturbation than the default perturb_vr(matU, matF, pert = 0.01) # calculate the sensitivity/elasticity of the damping ratio to vital rate # perturbations damping <- function(matA) { # define function for damping ratio eig <- eigen(matA)$values dm <- rle(Mod(eig))$values return(dm[1] / dm[2]) } perturb_vr(matU, matF, demog_stat = "damping")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.