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.