SRA_scope: Stock-reduction analysis (SRA) for conditioning operating...

Description Usage Arguments Details Value Vignette Data Additional arguments Likelihood weights Author(s) See Also

Description

Intended for conditioning operating models for DLMtool. For data-limited stocks, this function can generate a range of potential depletion scenarios inferred from sparse data. From a historical time series of total catch or effort, and potentially age/length compositions and multiple indices of abundance, the SRA returns a range of values for depletion, selectivity, unfished recruitment (R0), historical fishing effort, and recruitment deviations for the operating model. This is done by sampling life history parameters provided by the user and fitting a statistical catch-at-age model (with the predicted catch equal to the observed catch). Alternatively one can do a single model fit and sample the covariance matrix to generate an operating model with uncertainty based on the model fit. Either a full catch (conditioned on catch) or effort (conditioned on effort) time series is needed but missing data (as NAs) are allowed for all other data types.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Sub_cpars(OM, sims = 1:OM@nsim)

SRA_scope(OM, data, ...)

## S4 method for signature 'OM,list'
SRA_scope(
  OM,
  data,
  condition = c("catch", "catch2", "effort"),
  selectivity = "logistic",
  s_selectivity = NULL,
  LWT = list(),
  comp_like = c("multinomial", "lognormal"),
  ESS = c(30, 30),
  max_F = 3,
  cores = 1L,
  integrate = FALSE,
  mean_fit = FALSE,
  drop_nonconv = FALSE,
  drop_highF = FALSE,
  control = list(iter.max = 2e+05, eval.max = 4e+05),
  ...
)

## S4 method for signature 'OM,Data'
SRA_scope(
  OM,
  data,
  condition = c("catch", "catch2", "effort"),
  selectivity = "logistic",
  s_selectivity = NULL,
  LWT = list(),
  comp_like = c("multinomial", "lognormal"),
  ESS = c(30, 30),
  max_F = 3,
  cores = 1L,
  integrate = FALSE,
  mean_fit = FALSE,
  drop_nonconv = FALSE,
  drop_highF = FALSE,
  control = list(iter.max = 2e+05, eval.max = 4e+05),
  ...
)

Arguments

OM

An object of class OM that specifies natural mortality (M), growth (Linf, K, t0, a, b), stock-recruitment relationship, steepness, maturity parameters (L50 and L50_95), standard deviation of recruitment variability (Perr), as well as index uncertainty (Iobs).

sims

A logical vector of length OM@nsim or a numeric vector indicating which simulations to keep.

data

Data inputs formatted in a list object (preferred). Alternatively, data can be a Data S4 object. See Data section below.

...

Other arguments to pass in for starting values of parameters and fixing parameters. See details.

condition

String to indicate whether the SRA model is conditioned on "catch" (where F are estimated parameters), "catch2" (where F is solved internally using Newton's method), or "effort".

selectivity

A character vector of length nfleet to indicate "logistic", "dome", or "free" selectivity for each fleet in Chist. If there is time-varying selectivity, this is a character vector of length nsel_block (see Data section below). "free" indicates independent selectivity parameters for each age, and additional modifications for fixing selectivity parameters will likely be needed. See Additional arguments section.

s_selectivity

A vector of length nsurvey to indicate the selectivity of the corresponding columns in data$Index. Use "B" for total biomass, or "SSB" for spawning biomass (by default, "B" is used). Use numbers if the survey selectivity follows a fleet (corresponding to the columns in data$Chist, e.g., 1 = first fleet/column and so on). If the survey selectivity is otherwise independent of anything else in the model, use "logistic", "dome", or "free" to specify the functional form of selectivity, and see Additional arguments section for setup of survey selectivity parameters. See selectivity vignette for more information.

LWT

A named list of likelihood weights for the SRA model. See below.

comp_like

A string indicating either "multinomial" (default) or "lognormal" distributions for the composition data.

ESS

If comp_like = "multinomial", a numeric vector of length two to cap the maximum effective samples size of the age and length compositions, respectively, for the multinomial likelihood function. The effective sample size of an age or length composition sample is the minimum of ESS or the number of observations (sum across columns). For more flexibility, set ESS to be very large and alter the age and length arrays as needed.

max_F

The maximum F for any fleet in the scoping model (higher F's in the model are penalized in the objective function). See also 'drop_highF'.

cores

Integer for the number of CPU cores for the stock reduction analysis.

integrate

Logical, whether to treat recruitment deviations as penalized parameters in the likelihood (FALSE) or random effects to be marginalized out of the likelihood (TRUE).

mean_fit

Logical, whether to run an additional with mean values of life history parameters from the OM.

drop_nonconv

Logical, whether to drop non-converged fits of the SRA model, including fits where F = NA.

drop_highF

Logical, whether to drop fits of the SRA model where F = max_F.

control

A named list of arguments (e.g, max. iterations, etc.) for optimization, to be passed to the control argument of nlminb.

Details

Fleet selectivity is fixed to values sampled from OM if no age or length compositions are provided.

Survey selectivity is estimable only if s_CAA or s_CAL is provided. Otherwise, the selectivity should be mirrored to a fleet (vulnerable biomass selectivity) or indexed to total or spawning biomass (see s_selectivity).

Parameters that were used in the fitting model are placed in the SRA@OM@cpars list. If the operating model OM uses time-varying growth or M, then those trends will be used in the SRA as well. Time-varying life history parameters can create ambiguity in the calculation and interpretation of depletion and reference points in runMSE. See section D.5 of DLMtool::userguide().

The easiest way to turn off time-varying growth/M is by setting: OM@Msd <- OM@Linfsd <- OM@Ksd <- c(0, 0).

Sub_cpars is a convenient function to subset simulations for the operating model, for example, to remove simulations from unconverged model fits or outlier simulations.

To play with alternative fits by excluding indices, for example, or other optional data, set the corresponding likelihood weight to zero. The model will still generate the inferred index but the data won't enter the likelihood. See section on likelihood weights.

Value

An object of class SRA (see link for description of output).

Vignette

Three vignettes are available for the SRA model:

Data

One of indices, age compositions, or length compositions should be provided in addition to the historical catch or effort. Not all arguments are needed to run the model (some have defaults, while others are ignored if not applicable depending on the data provided).

The data variable can be a named list that includes:

Alternatively, the data input can be a Data S4 object which will retrieve data from the following slots:

There is no slot in the Data S4 object for the equilibrium catch/effort. These can be passed in the function call, i.e., SRA_scope(OM, Data, C_eq = C_eq, ...).

Additional arguments

For SRA_scope, additional arguments can be passed to the model via ...:

Likelihood weights

LWT is an optional named list containing the likelihood weights (values >= 0) with the possible options:

By default, all likelihood weights are equal to one if not specified by the user.

Weighting for CAA and CAL can also be adjusted by changing the multinomial sample size. For CAA, CAL, s_CAA, and s_CAL, the arrays should be set up so that the annual number of observations will be equal to the presumed multinomial sample size. Argument ESS provides a shortcut to cap the multinomial sample size for age and length comps.

Author(s)

Q. Huynh

See Also

plot.SRA SRA


tcarruth/MSEtool documentation built on Oct. 19, 2020, 6:09 a.m.