Transform a matrix population model to a standardized set of stage classes (e.g., propagule, pre-reproductive, reproductive, and post-reproductive). The transition rates in the standardized matrix are a weighted mean of the transition rates and per-capita reproductive values from the relevant stages of the original matrix, weighted by the relative proportion of each stage class expected at the stable distribution.

mpm_standardize(matU, matF, matC = NULL, repro_stages, matrix_stages)

mpm_standardise(matU, matF, matC = NULL, repro_stages, matrix_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).

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 NULL, indicating no clonal reproduction (i.e., matC is a matrix of zeros).

repro_stages

Logical vector of length ncol(matU) indicating which stages are reproductive. Alternatively, a vector of stage indices or stage names of the reproductive classes.

matrix_stages

Character vector of matrix stage types (e.g., "propagule", "active", or "dormant").

Value

A list with four elements reflecting the standardized matrix and its components:

matA

Standardized projection matrix

matU

Survival component of the standardized projection matrix

matF

Sexual reproduction component of the standardized projection matrix

matC

Clonal reproduction component of the standardized projection matrix

Details

This function is a wrapper for the functions mpm_rearrange, standard_stages and mpm_collapse, which it calls in sequence.

Note

The method used by this function to collapse a matrix population model preserves the equilibrium population growth rate (\(\lambda\)) and relative stable distribution, but is not expected to preserve other demographic characteristics such as relative reproductive value, sensitivities, net reproductive rate, life expectancy, etc.

Missing Stages

The returned standardized matrix will always be of dimension 4, even if one or more standardized stages is missing from the original matrix population model. If a standardized stage is missing, the corresponding row/column of the standardized matrix will be coerced to NA.

Author

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

Examples

matU <- rbind(
  c(0.1, 0, 0, 0, 0),
  c(0.5, 0.2, 0.1, 0, 0),
  c(0, 0.3, 0.3, 0.1, 0),
  c(0, 0, 0.4, 0.4, 0.1),
  c(0, 0, 0, 0.1, 0.4)
)

matF <- rbind(
  c(0, 1.1, 0, 1.6, 0),
  c(0, 0.8, 0, 0.4, 0),
  c(0, 0, 0, 0, 0),
  c(0, 0, 0, 0, 0),
  c(0, 0, 0, 0, 0)
)

matC <- rbind(
  c(0, 0.6, 0, 0.5, 0),
  c(0, 0.1, 0, 0.3, 0),
  c(0, 0, 0, 0, 0),
  c(0, 0, 0, 0, 0),
  c(0, 0, 0, 0, 0)
)

repro_stages <- c(2, 4)
matrix_stages <- c("prop", "active", "active", "active", "active")

mpm_standardize(matU, matF, matC, repro_stages, matrix_stages)
#> $matA
#>               propStages preRepStages  repStages postRepStages
#> propStages           0.1           NA 1.39996142      1.953150
#> preRepStages          NA           NA         NA            NA
#> repStages            0.5           NA 1.22350672      0.744057
#> postRepStages        0.0           NA 0.07059731      0.500000
#> 
#> $matU
#>               propStages preRepStages  repStages postRepStages
#> propStages           0.1           NA 0.00000000    0.00000000
#> preRepStages          NA           NA         NA            NA
#> repStages            0.5           NA 0.48235067    0.09300712
#> postRepStages        0.0           NA 0.07059731    0.50000000
#> 
#> $matF
#>               propStages preRepStages repStages postRepStages
#> propStages             0           NA 0.9058574     1.4881140
#> preRepStages          NA           NA        NA            NA
#> repStages              0           NA 0.6588054     0.3720285
#> postRepStages          0           NA 0.0000000     0.0000000
#> 
#> $matC
#>               propStages preRepStages  repStages postRepStages
#> propStages             0           NA 0.49410403     0.4650356
#> preRepStages          NA           NA         NA            NA
#> repStages              0           NA 0.08235067     0.2790214
#> postRepStages          0           NA 0.00000000     0.0000000
#>