Apply Markov chain approaches to compute age-specific trajectory of reproduction for individuals in a matrix population model. Includes functions to calculate the probability of achieving reproductive maturity (mature_prob), mean age at first reproduction (mature_age), and distribution of individuals first achieving reproductive maturity among stage class (mature_distrib).

mature_prob(matU, matR, start = 1L)

mature_age(matU, matR, start = 1L)

mature_distrib(matU, start = 1L, repro_stages)

Arguments

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). Optionally with named rows and columns indicating the corresponding life stage names.

matR

The reproductive component of a matrix population model (i.e., a square projection matrix reflecting transitions due to reproduction; either sexual, clonal, or both). Optionally with named rows and columns indicating the corresponding life stage names.

start

The index (or stage name) of the first stage at which the author considers the beginning of life. Defaults to 1.

repro_stages

A vector of stage names or indices indicating which stages are reproductive. Alternatively, a logical vector of length ncol(matU) indicating whether each stage is reproductive (TRUE) or not (FALSE).

Value

For mature_distrib, a vector giving the proportion of individuals that first reproduce within each stage class. For all others, a scalar trait value.

Note

Note that the units of time in returned values are the same as the ProjectionInterval of the MPM.

References

Caswell, H. 2001. Matrix Population Models: Construction, Analysis, and Interpretation. Sinauer Associates; 2nd edition. ISBN: 978-0878930968

Author

Roberto Salguero-Gomez <rob.salguero@zoo.ox.ac.uk>

Hal Caswell <hcaswell@whoi.edu>

Owen R. Jones <jones@biology.sdu.dk>

Patrick Barks <patrick.barks@gmail.com>

Examples

data(mpm1)

mature_prob(mpm1$matU, mpm1$matF, start = 2)
#> [1] 0.4318182
mature_age(mpm1$matU, mpm1$matF, start = 2)
#>    small 
#> 2.136364 

### distribution of first reproductive maturity among stage classes
repstage <- repro_stages(mpm1$matF)
mature_distrib(mpm1$matU, start = 2, repro_stages = repstage)
#>       seed      small     medium      large    dormant 
#> 0.00000000 0.00000000 0.92105263 0.07894737 0.00000000