
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" |
superN |
optional superpopulation size for multinomial recruitment model | see below |
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) |
"multinomial" | The POPAN model, conditioning on superpopulation size (e.g., Schwarz and Arnason 1996)) |
In the case of binomial recruitment there is a maximum of one recruit per existing individual, so lambda <= (phi+1). Multinomial recruitment requires a value for the superpopulation size. This may be provided as the details component "superN". If not specified directly, a value is inferred by projecting a trial initial (simulated) population using the specified phi and lambda.
Individuals may shift their home range centre between sessions. Movement probability is governed by a circular bivariate normal (Gaussian) kernel with scale sigma.m. If movement takes an animal across the boundary of the arena in sim.popn
then by default it is toroidally wrapped i.e. re-joins the population on the opposing edge. The alternative allows centres outside the buffered area.
sigma.m is also used to indicate two special cases:
sigma.m = 0 indicates no change in home range centres between sessions.
sigma.m < 0 causes a new home range centre for each animal to be drawn at random from within the buffered area.
# NOT RUN {
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