density_input {lefko3} | R Documentation |
Set Density Dependence Relationships in Matrix Elements
Description
Function density_input()
provides all necessary data to incorporate
density dependence into a lefkoMat
object, a list of matrices, or a
single matrix. Four forms of density dependence are allowed, including the
Ricker function, the Beverton-Holt function, the Usher function, and the
logistic function. In each case, density must have an effect with a delay of
at least one time-step (see Notes). The resulting data frame provides a
guide for other lefko3
functions to modify matrix elements by
density.
Usage
density_input(
mpm,
stage3 = NULL,
stage2 = NULL,
stage1 = NULL,
age2 = NULL,
style = NULL,
time_delay = NULL,
alpha = NULL,
beta = NULL,
type = NULL,
type_t12 = NULL
)
Arguments
mpm |
The |
stage3 |
A vector showing the name or number of the stage in occasion t+1 in the transitions to be affected by density. Abbreviations for groups of stages are also usable (see Notes). |
stage2 |
A vector showing the name or number of the stage in occasion t in the transition to be affected by density. Abbreviations for groups of stages are also usable (see Notes). |
stage1 |
A vector showing the name or number of the stage in occasion t-1 in the transition to be affected by density. Only needed if a historical MPM is used. Abbreviations for groups of stages are also usable (see Notes). |
age2 |
A vector showing the age of the stage in occasion t in the transition to be affected by density. Only needed if an age-by-stage MPM is used. |
style |
A vector coding for the style of density dependence on each
transition subject to density dependence. Options include |
time_delay |
An integer vector indicating the number of occasions back
on which density dependence operates. Defaults to |
alpha |
A vector indicating the numeric values to use as the
alpha term in the two parameter Ricker, Beverton-Holt, or Usher function, or
the value of the carrying capacity K to use in the logistic equation
(see |
beta |
A vector indicating the numeric values to use as the beta term in
the two parameter Ricker, Beverton-Holt, or Usher function. Used to indicate
whether to use K as a hard limit in the logistic equation (see section
|
type |
A vector denoting the kind of transition between occasions
t and t+1 to be replaced. This should be entered as |
type_t12 |
An optional vector denoting the kind of transition between
occasions t-1 and t. Only necessary if a historical MPM in
deVries format is desired. This should be entered as |
Value
A data frame of class lefkoDens
. This object can be used as
input in function projection3()
.
Variables in this object include the following:
stage3 |
Stage at occasion t+1 in the transition to be replaced. |
stage2 |
Stage at occasion t in the transition to be replaced. |
stage1 |
Stage at occasion t-1 in the transition to be replaced, if applicable. |
age2 |
Age at occasion t in the transition to be replaced, if applicable. |
style |
Style of density dependence, coded as 1, 2, 3, or 4 for the Ricker, Beverton-Holt, Usher, or logistic function, respectively. |
time_delay |
The time delay on density dependence, in time steps. |
alpha |
The value of alpha in the Ricker, Beverton-Holt, or Usher function, or the value of carrying capacity, K, in the logistic function. |
beta |
The value of beta in the Ricker, Beverton-Holt, or Usher function. |
type |
Designates whether the transition from occasion t to occasion t+1 is a survival transition probability (1), or a fecundity rate (2). |
type_t12 |
Designates whether the transition from occasion t-1 to occasion t is a survival transition probability (1), a fecundity rate (2). |
Notes
This function provides inputs when density dependence is operationalized
directly on matrix elements. It can be used in both projection3()
and
f_projection3()
. Users wishing to modify vital rate functions by
density dependence functions for use in function-based projections with
function f_projection3()
should use function density_vr()
to
provide the correct inputs.
The parameters alpha
and beta
are applied according to the
two-parameter Ricker function, the two-parameter Beverton-Holt function, the
two-parameter Usher function, or the one-parameter logistic function.
Although the default is that a 1 time step delay is assumed, greater time
delays can be set through the time_delay
option.
Entries in stage3
, stage2
, and stage1
can include
abbreviations for groups of stages. Use rep
if all reproductive stages
are to be used, nrep
if all mature but non-reproductive stages are to
be used, mat
if all mature stages are to be used, immat
if all
immature stages are to be used, prop
if all propagule stages are to be
used, npr
if all non-propagule stages are to be used, obs
if
all observable stages are to be used, nobs
if all unobservable stages
are to be used, and leave empty or use all
if all stages in stageframe
are to be used.
When using the logistic function, it is possible that the time delay used in
density dependent simulations will cause matrix elements to become negative.
To prevent this behavior, set the associated beta
term to 1.0
.
Doing so will set K
as the hard limit in the logistic equation,
essentially setting a minimum limit at 0
for all matrix elements
modified.
See Also
Examples
data(lathyrus)
sizevector <- c(0, 100, 13, 127, 3730, 3800, 0)
stagevector <- c("Sd", "Sdl", "VSm", "Sm", "VLa", "Flo", "Dorm")
repvector <- c(0, 0, 0, 0, 0, 1, 0)
obsvector <- c(0, 1, 1, 1, 1, 1, 0)
matvector <- c(0, 0, 1, 1, 1, 1, 1)
immvector <- c(1, 1, 0, 0, 0, 0, 0)
propvector <- c(1, 0, 0, 0, 0, 0, 0)
indataset <- c(0, 1, 1, 1, 1, 1, 1)
binvec <- c(0, 100, 11, 103, 3500, 3800, 0.5)
lathframe <- sf_create(sizes = sizevector, stagenames = stagevector,
repstatus = repvector, obsstatus = obsvector, matstatus = matvector,
immstatus = immvector, indataset = indataset, binhalfwidth = binvec,
propstatus = propvector)
lathvert <- verticalize3(lathyrus, noyears = 4, firstyear = 1988,
patchidcol = "SUBPLOT", individcol = "GENET", blocksize = 9,
juvcol = "Seedling1988", sizeacol = "Volume88", repstracol = "FCODE88",
fecacol = "Intactseed88", deadacol = "Dead1988",
nonobsacol = "Dormant1988", stageassign = lathframe, stagesize = "sizea",
censorcol = "Missing1988", censorkeep = NA, censor = TRUE)
lathsupp3 <- supplemental(stage3 = c("Sd", "Sd", "Sdl", "Sdl", "Sd", "Sdl", "mat"),
stage2 = c("Sd", "Sd", "Sd", "Sd", "rep", "rep", "Sdl"),
stage1 = c("Sd", "rep", "Sd", "rep", "npr", "npr", "Sd"),
eststage3 = c(NA, NA, NA, NA, NA, NA, "mat"),
eststage2 = c(NA, NA, NA, NA, NA, NA, "Sdl"),
eststage1 = c(NA, NA, NA, NA, NA, NA, "NotAlive"),
givenrate = c(0.345, 0.345, 0.054, 0.054, NA, NA, NA),
multiplier = c(NA, NA, NA, NA, 0.345, 0.054, NA),
type = c(1, 1, 1, 1, 3, 3, 1), type_t12 = c(1, 2, 1, 2, 1, 1, 1),
stageframe = lathframe, historical = TRUE)
ehrlen3 <- rlefko3(data = lathvert, stageframe = lathframe, year = "all",
stages = c("stage3", "stage2", "stage1"), supplement = lathsupp3,
yearcol = "year2", indivcol = "individ")
ehrlen3mean <- lmean(ehrlen3)
e3d <- density_input(ehrlen3mean, stage3 = c("Sd", "Sdl"),
stage2 = c("rep", "rep"), stage1 = c("all", "all"), style = 1,
time_delay = 1, alpha = 1, beta = 0, type = c(2, 2), type_t12 = c(1, 1))
lathproj <- projection3(ehrlen3, nreps = 5, stochastic = TRUE, substoch = 2,
density = e3d)