R/pop_vectors.R
pop_vectors.Rd
Derive a hypothetical set of population vectors (i.e. population size distributions across stages) given a time-series of matrix population models (MPMs), by taking the stable stage distribution of the mean matrix as the starting vector (or optionally, a uniform or random starting vector), and deriving subsequent vectors through recursive population projection.
pop_vectors(A, start = "stable.stage")
A list of MPMs (i.e., square population projection matrices).
Method to derive the first population vector in the series.
Either stable.stage
to use the stable stage distribution of the mean
matrix as the starting vector, uniform
to use a uniform starting
vector (all elements equal), or random
to use a randomly-generated
starting vector. Defaults to the stable stage distribution.
A list of population vectors
This function is useful for providing population vectors as input to the
perturb_stochastic
function which calculates stochastic
elasticities given a time-series of matrix population models and
corresponding population vectors, using the method described in Haridas et
al. (2009).
Haridas, C. V., Tuljapurkar, S., & Coulson, T. 2009. Estimating stochastic elasticities directly from longitudinal data. Ecology Letters, 12, 806-812. <doi:10.1111/j.1461-0248.2009.01330.x>
Other perturbation analysis:
perturb_matrix()
,
perturb_stochastic()
,
perturb_trans()
,
perturb_vr()
# generate list of matrices
matA_l <- replicate(5, matrix(runif(9), 3, 3), simplify = FALSE)
# calculate corresponding population vectors
pop_vectors(matA_l)
#> [[1]]
#> [1] 0.2706127 0.3956447 0.3337426
#>
#> [[2]]
#> [1] 0.2822817 0.3361341 0.3815843
#>
#> [[3]]
#> [1] 0.1155868 0.5120382 0.3723750
#>
#> [[4]]
#> [1] 0.4616143 0.4306508 0.1077349
#>
#> [[5]]
#> [1] 0.2199710 0.2863841 0.4936449
#>
pop_vectors(matA_l, start = "uniform")
#> [[1]]
#> [1] 0.3333333 0.3333333 0.3333333
#>
#> [[2]]
#> [1] 0.3019577 0.2919136 0.4061287
#>
#> [[3]]
#> [1] 0.1110506 0.5187931 0.3701563
#>
#> [[4]]
#> [1] 0.4659578 0.4275552 0.1064871
#>
#> [[5]]
#> [1] 0.2195318 0.2847771 0.4956911
#>
pop_vectors(matA_l, start = "random")
#> [[1]]
#> [1] 0.3342151 0.1675243 0.4982606
#>
#> [[2]]
#> [1] 0.3362418 0.2078520 0.4559061
#>
#> [[3]]
#> [1] 0.1019625 0.5316507 0.3663868
#>
#> [[4]]
#> [1] 0.4742755 0.4216557 0.1040688
#>
#> [[5]]
#> [1] 0.2186784 0.2817046 0.4996171
#>