perturb_vr | R Documentation |
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 (\lambda
), 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 |
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")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.