Learn R Programming

popdemo (version 1.3-1)

inertia: Calculate population inertia

Description

Calculate population inertia for a population matrix projection model.

Usage

inertia(A, vector = "n", bound = NULL, return.N = FALSE, t = NULL)

Arguments

A

a square, primitive, irreducible, non-negative numeric matrix of any dimension

vector

(optional) a numeric vector or one-column matrix describing the age/stage distribution ('demographic structure') used to calculate a 'case-specific' maximal amplification

bound

(optional) specifies whether an upper or lower bound should be calculated (see details).

return.N

(optional) if TRUE, returns population size for a specified t (including effects of asymptotic growth and initial population size), alongside standardised inertia.

t

(optional) the projection interval at which N is to be calculated. Calculation of N is only accurate for t where the model has converged (see details)

Value

If vector="n", the upper bound on inertia of A if bound="upper" and the lower bound on inertia of A if bound="lower". If vector is specified, the case-specific inertia of the model. If return.N=TRUE and t is specified, a list with components:

inertia

the bound on or case-specific inertia

N

the population size at specified t.

Details

A nonstable population, when it achieves asymptotic growth following transient dynamics, is a fixed ratio of the size of a population projected with the same initial size but stable structure. inertia calculates the value of this ratio (Koons et al. 2007)

If vector="n" then either bound="upper" or bound="lower" must be specified, which calculate the upper or lower bound on population inertia (i.e. the largest and smallest values that inertia may take) respectively. Specifying vector overrides calculation of a bound, and will yield a 'case-specific' value for inertia.

inertia will not work with imprimitive or reducible matrices.

References

  • Koons et al. (2007) Ecology, 88, 2867-2867.

  • Stott et al. (2011) Ecol. Lett., 14, 959-970.

See Also

Transfer function methods for inertia: inertia.tfa, inertia.tfamatrix, inertia.tfsens, inertia.tfsensmatrix

Other TransientIndices: Kreiss(), maxamp(), maxatt(), reac()

Examples

Run this code
# NOT RUN {
  # Create a 3x3 PPM
  ( A <- matrix(c(0,1,2,0.5,0.1,0,0,0.6,0.6), byrow=TRUE, ncol=3) )

  # Create an initial stage structure
  ( initial <- c(1,3,2) )

  # Calculate the upper bound on inertia of A
  inertia(A,bound="upper")

  # Calculate the lower bound on inertia of A
  inertia(A,bound="lower")

  # Calculate case-specific inertia of A and initial
  inertia(A, vector=initial)

  # Calculate case-specific inertia of A and initial and 
  # return realised population size at t=25
  inertia(A, vector=initial, return.N=TRUE, t=25)

# }

Run the code above in your browser using DataLab