Creates stochastic multiplicative deviation series for use in shortcut stock assessments, typically representing uncertainty or observation error applied to fishing mortality and spawning stock biomass metrics.

shortcut_devs(
  om,
  Fcv = 0.212,
  Fphi = 0.423,
  SSBcv = 0,
  SSBphi = 0,
  bias.correct = FALSE
)

Arguments

om

An operating model object used only to define dimensions for the generated deviation series. The function uses dims(om)$iter for the number of iterations and dimnames(om)$year for the year dimension.

Fcv

Numeric. Standard deviation on the log scale for the fishing mortality deviation process. Defaults to 0.212.

Fphi

Numeric. Autocorrelation parameter for the fishing mortality deviation process. Defaults to 0.423.

SSBcv

Numeric. Standard deviation on the log scale for the spawning stock biomass deviation process. Defaults to 0.

SSBphi

Numeric. Autocorrelation parameter for the spawning stock biomass deviation process. Currently not used in the implementation, which fixes the SSB autocorrelation at 0. Defaults to 0.

bias.correct

Logical. If TRUE, applies bias correction when generating the lognormal AR(1) deviates. Passed to FLCore::rlnormar1(). Defaults to FALSE.

Value

An FLQuants object with two elements:

  • F: a lognormal AR(1) deviation series for fishing mortality;

  • SSB: a lognormal deviation series for spawning stock biomass.

Details

The deviations are generated as lognormal autoregressive series and returned as an FLQuants object with components for F and SSB.

The function generates deviations using FLCore::rlnormar1(), with:

  • n = dims(om)$iter iterations;

  • years = dimnames(om)$year;

  • meanlog = 0, so the process is centered on multiplicative value 1 on the log scale before optional bias correction;

  • separate variance and autocorrelation settings for F and SSB.

The returned object is suitable for direct use in shortcut.sa(), where the deviations can be applied to derived stock metrics.

Current implementation note

Although SSBphi is provided as an argument, the function currently hardcodes rho=0 for the SSB process. This means the SSB deviations are independent through time regardless of the value supplied to SSBphi.

Author

Iago Mosqueira, WMR; Ernesto Jardim, IPMA

Examples

if (FALSE) { # \dontrun{
# Generate default shortcut deviations
devs <- shortcut_devs(om)

# More variable and autocorrelated F deviations
devs <- shortcut_devs(om, Fcv = 0.3, Fphi = 0.6)

# With bias correction
devs <- shortcut_devs(om, bias.correct = TRUE)
} # }