assessLinksPerm: Assess probability of destabilizing system per interaction

View source: R/evaluate_characteristics.R

assessLinksPermR Documentation

Assess probability of destabilizing system per interaction

Description

This function determines the probability that a system becomes unstable if the strengths in a pair of interactions are varied.

Usage

assessLinksPerm(
  JM,
  method = "eigenvalue",
  MR = NULL,
  dead_names = NULL,
  perms = 100,
  threshold = 0.01,
  seed = 1
)

Arguments

JM

(required) A square named Jacobian matrix with numeric values representing the effect of one compartment (rows) on another compartment (columns).

method

(required) Either "eigenvalue" (default), "scalar", or "initial".

  • The method "eigenvalue" finds asymptotic stability as the maximum real part of the eigenvalues calculated from the Jacobian matrix.

  • The "scalar" method finds asymptotic stability as the scalar of natural mortality rates needed to acquire a stable matrix.

  • The "initial" method finds initial stability as equation 4 from Arnoldi et al. (2016); initial stability is half the maximum real part of the eigenvalues derived from the matrix obtained by addition of the Jacobian matrix to its transpose.

MR

(required if method is "scalar") A named numeric vector containing mortality of the faunal compartments (per unit time, t-1). The values and names must be in the same order as the Jacobian matrix, and the values for dead compartments should be set to NA.

dead_names

(optional if method is "scalar") Character vector with all names of detritus and nutrient compartments (everything that is not fauna).

perms

(required) Default is 100. Number of times a pair of interaction strengths is varied.

threshold

(required) Default is 0.01. The Jacobian matrix is set at this fraction below the stability threshold before starting permutations.

seed

(required) Default is 1. Set seed to allow reproducibility of results.

Details

First, the diagonal of the Jacobian matrix is altered so that the matrix is just stable. This is done by subtracting the maximum real part of the eigenvalues from the diagonal values, and subsequently reducing the diagonal values by a fraction (in argument threshold). The default threshold of 0.01 is used in De Ruiter et al. (1995). Peter de Ruiter mentions through personal communication that this threshold method is a bit outdated, and that he personally recommends setting the diagonal to zero. You can achieve this by setting threshold to NULL.
Every pair of interaction strengths is then randomly varied between 0 and 2aij a certain number of times. The probability that the food web becomes unstable is the total count of unstable matrices divided by the total number of permutations.
Using the method 'scalar' to asses stability might be somewhat slower than the method 'eigenvalue'.
Beware that where assessLinksFixed reports the **absolute and relative** effect on stability of altering **one** interaction strength according to a **fixed** function, this function assessLinksPerm reports the **probability** that the matrix becomes unstable when a **pair** of interaction strengths in altered between 0 and 2 time the original interaction strength a certain number of times.

Value

Returns a dataframe with the probability (0 to 1) of destabilizing the system for each pair of trophic interactions.

References

  • de Ruiter, P.C., Neutel, A.M., Moore, J.C., 1995. Energetics, Patterns of Interaction Strengths, and Stability in Real Ecosystems. Science (80-. ). 269, 1257–1260. https://doi.org/10.1126/science.269.5228.1257

See Also

getStability assessLinksFixed


dswdejonge/fwstability documentation built on Dec. 7, 2022, 7:24 p.m.