View source: R/rand_lefko_mpm.R
rand_lefko_mpm | R Documentation |
Generates a random matrix population model (MPM) with element values based on defined life history archetypes. Survival and transition/growth probabilities from any particular stage are restricted to be less than or equal to 1 by drawing from a Dirichlet distribution. The user can specify archetypes (from Takada et al. 2018) to restrict the MPMs in other ways:
Archetype 1: all elements are positive, although they may be very small. Therefore, transition from/to any stage is possible. This model describes a life history where individuals can progress and retrogress rapidly.
Archetype 2: has the same form as archetype 1 (transition from/to any stage is possible), but the survival probability (column sums of the survival matrix) increases monotonously as the individuals advance to later stages. This model, as the one in the first archetype, also allows for rapid progression and retrogression, but is more realistic in that stage-specific survival probability increases with stage advancement.
Archetype 3: positive non-zero elements for survival are only allowed on the diagonal and lower sub-diagonal of the matrix This model represents the life cycle of a species where retrogression is not allowed, and progression can only happen to the immediately larger/more developed stage (slow progression, e.g., trees).
Archetype 4: This archetype has the same general form as archetype 3, but with the further assumption that stage-specific survival increases as individuals increase in size/developmental stage. In this respect it is similar to archetype 2.
rand_lefko_mpm(n_stages, fecundity, archetype = 1, split = TRUE)
n_stages |
An integer defining the number of stages for the MPM. |
fecundity |
A measure of reproductive output. The average number of offspring produced per projection interval from each stage. Values can be provided in 4 ways:
In the latter case, a fecundity value will be drawn from a uniform distribution for the defined range. If there is no fecundity in a particular age class, use a value of 0 for both the lower and upper limit. |
archetype |
Indication of which life history archetype should be used, based on Takada et al. 2018. An integer between 1 and 4. |
split |
|
In all 4 of these Archetypes, reproductive output is placed as a
single element on the top right of the matrix, if it is a single value. If it
is a vector of length n_stages
then the fecundity vector spans the entire
top row of the matrix.
The function is constrained to only output ergodic matrices.
Note that the simulations assume a post-breeding census, thus avoiding the often overlooked issue of unaccounted survival to reproduction highlighted by Kendall et al. (2019). Furthermore, the simulations assume no covariance among matrix elements (e.g. between reproduction and survival), and therefore do not allow the users to capture trade offs directly. This capability is roadmapped for a future package release.
Returns a random matrix population model with characteristics determined by the archetype selected and fecundity vector. If split = TRUE, the matrix is split into separate reproductive output and growth/survival matrices, returned as a list.
Owen Jones jones@biology.sdu.dk
Caswell, H. (2001). Matrix Population Models: Construction, Analysis, and Interpretation. Sinauer.
Lefkovitch, L. P. (1965). The study of population growth in organisms grouped by stages. Biometrics, 21(1), 1.
Takada, T., Kawai, Y., & Salguero-Gómez, R. (2018). A cautionary note on elasticity analyses in a ternary plot using randomly generated population matrices. Population Ecology, 60(1), 37–47.
Kendall, B. E., Fujiwara, M., Diaz-Lopez, J., Schneider, S., Voigt, J., & Wiesner, S. (2019). Persistent problems in the construction of matrix population models. Ecological Modelling, 406, 33–43.
rand_lefko_set()
which is a wrapper for this function allowing the
generation of large numbers of random matrices of this type.
Other Lefkovitch matrices:
rand_lefko_set()
set.seed(42) # set seed for repeatability
rand_lefko_mpm(n_stages = 2, fecundity = 20, archetype = 1, split = FALSE)
rand_lefko_mpm(n_stages = 2, fecundity = 20, archetype = 2, split = TRUE)
rand_lefko_mpm(n_stages = 3, fecundity = 20, archetype = 3, split = FALSE)
rand_lefko_mpm(n_stages = 4, fecundity = 20, archetype = 4, split = TRUE)
rand_lefko_mpm(
n_stages = 5, fecundity = c(0, 0, 4, 8, 10), archetype = 4,
split = TRUE
)
# Using a range of values for fecundity
rand_lefko_mpm(n_stages = 2, fecundity = 20, archetype = 1, split = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.