Last chance! 50% off unlimited learning
Sale ends in
sim.popn
can simulate a multi-session population with known between-session survival, recruitment and movement probabilities. The parameter settings to achieve this are passed to sim.popn
in its `details' argument. Components of `details' that are relevant to turnover are described below; see sim.popn
for others.
Multi-session populations are generated in sim.popn
whenever its argument `nsessions' is greater than 1. If details$lambda
remains NULL (the default) then the population for each successive session is generated de novo from the given density model (model2D, D etc.). If a value is specified for details$lambda
then only the first population is generated de novo; remaining populations are generated iteratively with probabilistic mortality, recruitment and movement as described here.
Component | Description | Default |
phi |
per capita survival rate |
0.7 |
survmodel |
probability model for number of survivors | "binomial" |
lambda |
finite rate of increase |
none |
recrmodel |
probability model for number of recruits | "poisson" |
sigma.m |
spatial scale of movement kernel | 0 |
wrap |
logical: should toroidal wrapping be applied? | TRUE |
Survival is usually thought of as a Bernoulli process (outcome 0 or 1 for each individual) so the number of survivors
Per capita recruitment (
Value | Probability model |
"constantN" | Exact replacement of animals that die (B = |
"binomial" | Binomial number of recruits (B ~ bin( |
"poisson" | Poisson number of recruits (B ~ pois( |
"discrete" | Minimum-variance number of recruits (see Survival) |
In the case of binomial recruitment there is a maximum of one recruit per existing individual, so lambda <= (phi+1).
Individuals may shift their home range centre between sessions. Movement probability is governed by a circular bivariate normal kernel with scale sigma.m. If movement takes an animal across the boundary of the arena then by default it is toroidally wrapped i.e. re-joins the population on the opposing edge. No movement is applied when sigma.m = 0.
sim.popn
par (mfrow = c(2,3), mar = c(1,1,1,1))
## birth and death only
grid <- make.grid(nx = 7, ny = 4, detector = 'proximity', spacing = 10)
pop <- sim.popn (Nbuffer = 100, core = grid, nsessions = 6,
details = list(lambda = 0.8, phi = 0.6, sigma.m = 0))
sapply(pop, nrow) ## how many individuals?
plot(pop)
## movement only
pop2 <- sim.popn (Nbuffer = 100, core = grid, nsessions = 6,
details = list(lambda = 1, phi = 1, sigma.m = 10, wrap = TRUE))
pop3 <- sim.popn (Nbuffer = 100, core = grid, nsessions = 6,
details = list(lambda = 1, phi = 1, sigma.m = 10, wrap = FALSE))
sapply(pop2, nrow) ## how many individuals?
plot(pop2)
## show effect of toroidal wrapping --
tracks <- function (pop, ...) {
rn <- unlist(lapply(pop, rownames))
plot(pop[[1]], pch = 16)
for (i in unique(rn))
lines(t(sapply(pop, '[', i, 1:2)), ...)
}
par (mfrow=c(1,2))
tracks(pop2, type = 'o')
tracks(pop3, type = 'o')
Run the code above in your browser using DataLab