8. Model parameterizations
Source:vignettes/model-parameterizations.Rmd
model-parameterizations.RmdPopulation dynamics
CEATTLE is an age-structured model that follows cohorts of
individuals of a species
,
age
,
and sex
through time
.
Annual recruitment and the initial age-structure are estimated and are
treated as random effects or as penalized deviates, with the variance in
recruitment estimated or fixed, respectively. Note that because the
initial age-structure is estimated (assuming the population is depleted
prior to the first year of the model), the mean recruitment parameter
(
will be biased low and projected recruitment will have to account for
that (e.g. resemble recruitment deviates from hindcast). Similarly,
biomass reference points should use the mean of annual recruitment.
Populations can be modelled as 1- or 2-sexes via nsex in
the data. The sex-ratio at birth
is set in the sex_ratio data for the first age. Natural
mortality is partitioned into predation mortality (M2) and non-predation
related mortality (M1), the latter of which is either input or estimated
(estM1), and accounts for mortality related to causes other
than predation by the species included in the model. Predation can be
turned off by setting msmMode = 0 (see below for more
detail).
Predation sub-model
Multiple age-based predation parameterizations are supported by
Rceattle and are controlled by suitMode defining the
predator-prey preference (suitability/predator selectivity) and
msmMode defining the functional response of predation. The
data used to parameterize the predation model include the proportion of
prey-at-age in the diet of a predator-at-age (UobsAgeWt in
the data) and the ration/consumption data (defined below).
Suitability
Suitability represents a predator’s prey and size preference and factors such as spatial overlap in the distribution of predators and prey.
MSVPA Type 2 based suitability
Suitability is derived empirically from the ratio of mean proportion
(by weight) of prey-at-age in the stomach of predators-at-age
(UobsAgeWt in the data). Magnusson (1995) provides details
on the derivation of suitability coefficients. Magnusson (1995) provides
details on the derivation of suitability coefficients.
suitMode = 0 Predator-prey suitability for predators of
species
,
sex
,
age
,
and prey of species
,
sex
and age
Predation mortality
Single-species mode
This is essentially multiple single-species age structured models
where all mortality is due to input or estimated natural mortality
()
and fishing. msmMode = 0
MSVPA Type 2 based predation mortality
msmMode = 1 Predation mortality can be modelled
following previous MSCAA models (Curti et al., 2013; Holsman et al.,
2016; Tsehaye et al., 2014) based on MSVPA. Predation mortality due to a
predator-at-age in the model is derived from estimated or empirically
derived suitability coefficients
,
input estimates of annual ration/consumption (see below), estimated or
input biomass, and input biomass of other prey in the system for
predator
().
Estimated average biomass is used to derive predation mortality and
because of the interdependence between predation and biomass, predation
mortality and the underlying age-structured dynamics are iteratively
estimated until convergence. Preliminary analysis suggested that three
to five iterations are sufficient for convergence. Models are generally
insensitive to a range of
,
but historically they have been derived from ecosystem-wide biomass
estimates. Predation mortality equations for predators of species
,
sex
,
age
,
and prey of species
,
sex
and age
MSVPA Type 3 based predation mortality
msmMode = 2 A Type III functional response variant of
the MSVPA predation model. The available-food denominator replaces prey
biomass
with
,
creating a sigmoidal (accelerating-then-saturating) relationship between
prey density and predation rate. This gives low-density prey a refuge
from predation and can stabilise multi-species dynamics at low stock
sizes.
Consumption
Multiple age-based consumption parameterizations are supported by
Rceattle. They include a environmentally driven bioenergetics
consumption and direction input of consumption-at-age. The consumption
model is controlled by the following objects in the data
(bioenergetics_control sheet of the excel data input):
-
CeqInteger: switch for which bioenergetics equation to use for each species for ft to scale max consumption: 1 = Exponential (Stewart et al 1983), 2 = Temperature-dependence for warm-water species (Kitchell et al 1977; sensu Holsman et al 2015), 3 = temperature dependence for cool and cold-water species (Thornton and Lessem 1979); 4 = temperature function held constant at 1.0 — bypasses bioenergetics and usesration_dataas direct empirical annual ration input (setCA = 1,fday = 1,CB = 0) -
CindexInteger: which environmental index in env_data to use to use for for bioenergetics based ration -
PvalueTuning parameter that scales the maximum consumption used for ration for each species -
fdayData number of foraging days per year for each species -
CAParameter for slope of allometric mass function for calculating maximum consumption: CA * Weight ^ CB -
CBParameter for slope of allometric mass function for calculating maximum consumption: CA * Weight ^ 1+CB -
QcParameter for temperature scaling function of maximum consumption specified byCeq -
TcoParameter for temperature scaling function of maximum consumption specified byCeq -
TcmParameter for temperature scaling function of maximum consumption specified byCeq -
TclParameter for temperature scaling function of maximum consumption specified byCeq -
CK1Parameter for temperature scaling function of maximum consumption specified byCeq -
CK4Parameter for temperature scaling function of maximum consumption specified byCeq
ration_data
is the relative foraging rate data used to modify ration. Essentially
relative foraging rate and, subsequently, ration can be tuned via
fday and pvalue.
The weight-at-age used for the consumption equations is specified by
pop_wt_index
Bioenergetics based ration
Ceq %in% 1:3 Individual specific ration
()
of predator
of sex
and age
in year
:
Ration can be tuned by adjusting Pvalue
()
to help convergence:
Temperature scaling algorithms.
Ceq = 1: Exponential function from Stewart et al. 1983:
Ceq = 2: Temperature dependence for warm-water-species
from Kitchell et al. 1977:
Ceq = 3: Temperature dependence for cool and cold-water
species from Thornton and Lessem 1979:
Fishery and survey observation model
CEATTLE is fit to time series of fishery and survey biomass, sex-ratio, and length- or age-composition data. Log-fishery catch, log-survey biomass and sex-ratio are assumed to be normally distributed, while age- and length-composition data are fit assuming multinomial distributions. Variance parameters for the lognormal distributions and initial input sample size for the multinomial distributions can be assumed known or for surveys also estimated as a free parameter or estimated analytically following Walters and Ludwig (1994). Separate selectivity and catchability functions can be estimated or input for each survey or fishery.
Catch is estimated in the model following the Baranov catch equation: CPUE data is estimated given catchability , selectivity , and fleet month and can either be in biomass or numbers :
Selectivity parameterizations
Multiple age-based selectivity functions are supported by Rceattle.
They are controlled by Selectivity_index,
Selectivity, N_sel_bins,
Time_varying_sel, Time_varying_sel_sd_prior,
and Bin_first_selected in fleet_control sheet of an
Rceattle data file. They are defined as follows:
-
Selectivity_index: index to use if selectivities of different surveys are to be the same -
Selectivity: Selectivity parameterization to use for the species: 0 = empirical selectivity provided insrv_emp_sel; 1 = logistic selectivity; 2 = non-parametric selecitivty sensu Ianelli et al 2018; 3 = double logistic; 4 = descending logistic; 5 = non-parametric selectivity sensu Taylor et al 2014 (Hake), 6 or “2DAR1” for age by year, 7 or “3DAR1” sensu Cheng et al (2025). -
N_sel_bins: Number of ages to estimate non-parametric selectivity. For example, ifminage = 1and selectivity parameters are estimated up till age-6,N_sel_bins = 6and ifminage = 0and selectivity parameters are estimated up till age-6,N_sel_bins = 7. Not used otherwise -
Time_varying_sel: Whether a time-varying selectivity should be estimated for logistic, double logistic selectivity, descending logistic, or non-parametric selectivity (Selectivity = 5 or "Hake"). 0 = no, 1 = penalized deviates given sel_sd_prior, 2 = penalized deviates and estimate sel_sd_prior, 3 = time blocks with no penalty, 4 = random walk following Dorn, 5 = random walk on ascending portion of double logistic only. -
Time_varying_sel_sd_prior: The sd to use for the random walk of time varying selectivity if set to 1. -
Bin_first_selected: Age/length bin at which selectivity is non-zero. Selectivity before this age will be set to 0.
Fixed selectivity
Input: Selectivity = 0 or "Fixed" and input
selectivity-at-age in the emp_sel data.
Non-parametric (Type 1)
Input: Selectivity = 2 or "NonParametric",
N_sel_bins = 6, Sel_curve_pen1 = 12.5,
Sel_curve_pen2 = 200, and
Bin_first_selected = 1
Equation:
Logistic
Input: Selectivity = 1 or "Logistic",
N_sel_bins = NA, Time_varying_sel = 0, and
Time_varying_sel_sd_prior = NA
Equation:
Time-varying logistic
Input: Selectivity = 1 or "Logistic",
N_sel_bins = NA, and
Time_varying_sel_sd_prior = 0.1 or other desired value.
Equation:
Penalized likelihood: Time_varying_sel = 1
Random effect: Time_varying_sel = 2
is estimated
Block: Time_varying_sel = 3 main parameters are set to 0
and the following is specificed:
Penalized likelihood random walk Time_varying_sel = 4
Double logistic
Input: Selectivity = 3 or "DoubleLogistic",
N_sel_bins = NA, Time_varying_sel = 0, and
Time_varying_sel_sd_prior = NA
Equation:
Time-varying double logistic 1 (ascending and descending time-varying parameters)
Penalized likelihood: Time_varying_sel = 1
Random effect: Time_varying_sel = 2
is estimated
Block: Time_varying_sel = 3 main parameters are set to 0
and the following is specificed:
Penalized likelihood random walk Time_varying_sel = 4
Time-varying double logistic 2 (random walk ascending-time varying parameters)
Input: Selectivity = 3 or "DoubleLogistic",
N_sel_bins = NA, Time_varying_sel = 5, and
Time_varying_sel_sd_prior = NA
Equation:
Descending logistic
Input: Selectivity = 4 or "DescendingLogistic",
N_sel_bins = NA, Time_varying_sel = 0, and
Time_varying_sel_sd_prior = NA
Equation:
Time-varying descending logistic
Input: Selectivity = 4 or "DescendingLogistic",
N_sel_bins = NA, Time_varying_sel = 1 or
2 , and Time_varying_sel_sd_prior = NA
Equation:
Penalized likelihood: Time_varying_sel = 1
Random effect: Time_varying_sel = 2
is estimated
Block: Time_varying_sel = 3 main parameters are set to 0
and the following is specificed:
Penalized likelihood random walk Time_varying_sel = 4
Non-parametric (Type 2)
For each age there is an incremental selectivity parameter for the fleet . Selectivity at age is calculated as follows:
$$sel_{f_i sa}=e^{sel^{`}_{f_i sa} -
max(sel^{`}_{f_i sa})}$$ where $$
sel^{`}_{f_i sa} = \sum_{i=A_{min}}^a p_{f_i sa}$$ Selectivity is
fixed at
for
and
for ages above minage + N_sel_bins, giving constant
selectivity beyond the last estimated value. minage is
specified in the data and is the minimum age of the modeled
population.
Input: Selectivity = 5 or "Hake",
N_sel_bins = 6, Time_varying_sel = NA,
Time_varying_sel_sd_prior = NA, and
Bin_first_selected =
Time-varying non-parametric (Type 2 for hake)
As above, but a set of deviations on is used to control annual changes in selectivity given a fixed or estimated standard deviation ():
Input: Selectivity = 5 or "Hake",
N_sel_bins = 6, Time_varying_sel = NA,
Time_varying_sel_sd_prior = NA, and
Bin_first_selected =
Penalized likelihood: Time_varying_sel = 1
Random effect: Time_varying_sel = 2
is estimated
Catchability parameterizations
Separate selectivity and catchability functions can be estimated for
each survey or fishery. Additionally, catchability can be set the same
for multiple surveys by setting Q_index to the same value.
Catchability is controlled by the following parameters in the
fleet_control sheet of the data
-
Q_indexindex to use if catchability coefficients are to be set the same -
CatchabilityText or integer switch specifying catchability. 0 or “Fixed” = fixed at prior; 1 or “Estimated” = Estimate single parameter; 2 or “Estimated-with-prior” = Estimate single parameter with prior; 3 or “Analytical” = Estimate analytical q from Ludwig and Walters 1994; 4 or “PowerEquation” = Estimate power equation; - 5 or “Environmental” = Linear equation log(q_y) = q_mu + beta * index_y); 6 or “AR1” = annual AR1 catchability deviates are fit to environmental index sensu Rogers et al 2025. -
Q_priorStarting value or fixed value for catchability -
Q_sd_priorVariance of q prior: dnorm (log_q, log_q_prior, q_sd_prior) -
Time_varying_qWhether a time-varying q should be estimated. 0 = no, 1 = penalized deviate, 2 = random effect, 3 = time blocks with no penalty; 4 = random walk from mean following Dorn 2018 (dnorm(q_y - q_y-1, 0, sigma). If Catchability = 5, this determines the environmental index to be used in the equation log(q_y) = q_mu + beta * index_y -
Time_varying_q_sd_priorThe sd to use for the random walk of time varying q if set to 1
Linear time-invariant catchability formulations
Time_varying_q = 0 for all formulations
Catchability = 0
Q_prior from data
Catchability = 1 A freely estimated catchability
parameter
is estimated for survey/index fleet
Catchability = 2 A freely estimated catchability
parameter
is estimated for survey/index fleet
assuming a lognormal prior
Catchability = 3 Catchability
is analytically derived for survey/index fleet
following Walters and Ludwig (1994). * For CPUE in weight with
time-invariant standard error of the survey:
* For CPUE in numbers with time-invariant standard error of the survey
* For CPUE in weight with time-varying standard error of the survey
* For CPUE in numbers with time-varying standard error of the survey
Time-varying catchability formulations
Annual catchability estimated via penalized likelihood or as random effects
NOTE: If Catchability = 2 a prior will be put on mean
catchability as above. Catchability %in% c(1:2) and
Time_varying_q %in% c(1:2)
Time_varying_q_sd_prior
where Time_varying_q_sd_prior is either fixed
Time_varying_q = 1 or estimated
Time_varying_q = 2 & random_q = TRUE in
Catchability time-blocks
Catchability %in% c(1:2),
Time_varying_q = 3 where the blocks are based on the blocks
in index_data data sheet.
Annual catchability via random walk
Catchability %in% c(1:2),
Time_varying_q = 4
Time_varying_q_sd_prior