Skip to contents

The Stochastic Population over Regional Components (SPoRC) model is a generalized integrated population model written in R-TMB (R bindings for Template Model Builder; Kristensen et al., 2016) that supports age, sex, and spatially-structured dynamics. Currently, SPoRC assumes that population dynamics operate following an annual time step, and in sequential order:

  1. Recruitment and tag releases initially occur (tag releases only occur if tagging data are used),
  2. Markovian movement of individuals then follow (movement only occurs in the spatial model), and
  3. Total mortality, chronic tag loss (if applicable), and ageing processes occur.

These processes are modeled across four primary model partitions: region (rr), year (yy), age (aa and a+a_{+}, where a+a_{+} is the plus group), and sex (ss). In single-region and/or single-sex models, these equations generally reduce by setting r=1r = 1 and/or s=1s = 1. In general, the same equations are used for both simulation and estimation.

Process Equations

Population Initialization

In SPoRC, three primary methods exist to initialize the equilibrium population of the model. The first method derives the equilibrium population using the following process:

Nr,a,s=μRecexp((a1)(Zr,a,s))ψr,y=1,sζr,for 2a<a+\begin{matrix} N_{r,a,s}^{'} = \mu^{\text{Rec}}\exp\left( - (a - 1) \cdot \left( Z_{r,a,s}^{'} \right) \right)\psi_{r,y = 1,s}\zeta_{r},\quad\text{for }2 \leq a < a_{+} \\ \end{matrix}

Zr,a,s=Natmortr,y=1,a,s+μr,f=1FshFmortInitPropSelr,y=1,a,s,f=1FshZ_{r,a,s}^{'} = \text{Natmort}_{r,y = 1,a,s} + \mu_{r,f = 1}^{\text{Fsh}}\text{Fmort}^{\text{InitProp}}\text{Sel}_{r,y = 1,a,s,f = 1}^{\text{Fsh}}

where:

  • Nr,a,sN_{r,a,s}^{'} are the equilibrium numbers-at-age,
  • μRec\mu^{\text{Rec}} is a global recruitment parameter (either virgin or mean recruitment depending on the parameterization of stock recruitment dynamics),
  • Zr,a,sZ_{r,a,s}^{'} is the initial instantaneous total mortality rate,
  • Natmortr,y=1,a,s\text{Natmort}_{r,y = 1,a,s} is the instantaneous natural mortality rate,
  • μr,f=1Fsh\mu_{r,f = 1}^{\text{Fsh}} is the mean fishing mortality rate from the first fleet (ff denotes fishery fleet),
  • FmortInitProp\text{Fmort}^{\text{InitProp}} is a user-defined value describing the proportion of the mean fishing mortality from the first fleet applied during the initialization stage,
  • Selr,y=1,a,s,f=1Fsh\text{Sel}_{r,y = 1,a,s,f = 1}^{\text{Fsh}} is the fishery selectivity-at-age for the first fleet,
  • ψr,y,s\psi_{r,y,s} describes the recruitment sex-ratio,
  • ζr\zeta_{r} apportions the global recruitment parameter across regions (estimated using a multinomial logit transform to ensure proportions sum to one).

The plus group (a+a_{+}) of the initial population is then computed as:

Nr,a+,s=Nr,a+1,sexp(Zr,a=a+1,s)1exp(Zr,a=a+,s)\begin{matrix} N_{r,a_{+},s}^{'} = N_{r,a_{+} - 1,s}^{'}\dfrac{\exp\left( - Z_{r,a = a_{+} - 1,s}^{'} \right)}{1 - \exp\left( Z_{r,a = a_{+},s}^{'} \right)} \\ \end{matrix}

However, this scalar geometric series solution assumes that the plus group accumulates in a closed system. Therefore, when movement dynamics are present, this solution does not correctly accumulate individuals into the plus group.

To address this, additional methods are provided to explicitly incorporate movement dynamics into the plus group calculation. In particular, the initial population can be derived by iterating the population to equilibrium. Here, the total instantaneous mortality in each region is defined similarly as in the first method. An exponential decay model is used to first initialize the age structure at the first iteration:

Nr,a,s={μRecψr,y=1,sζr,if a=1μRecψr,y=1,sζrexp(a=1naZr,a,s),if a>1\begin{matrix} N_{r,a,s}^{'} = \left\{ \begin{matrix} \mu^{\text{Rec}}\,\psi_{r,y = 1,s}\,\zeta_{r}, & \text{if }a = 1 \\ \mu^{\text{Rec}}\,\psi_{r,y = 1,s}\,\zeta_{r}\,\exp\left( - \sum_{a = 1}^{n_{a}}Z_{r,a,s}^{'} \right), & \text{if }a > 1 \\ \end{matrix} \right.\ \\ \end{matrix}

The initialized age structure is then iterated forward to equilibrium by applying recruitment, movement, and mortality and ageing processes in order (see Population Projection section for equations).

While the iterative method correctly accumulates the plus group when movement is present, it can be computationally inefficient due to the potentially large number of iterations required to propagate the initial population. Therefore, SPoRC enables users to compute the plus group using the matrix formulation of the geometric series, which correctly accounts for movement processes. Individuals are first initialized through recruitment processes, after which movement, mortality, and ageing processes are applied sequentially (up to the number of ages in the model). The population (or cohort) is then projected forward to the penultimate age (Nr,a+1,sN_{r,a_{+} - 1,s}^{'}), which is used to derive the plus group. Specifically, the penultimate age is projected forward once more:

𝐗s=((𝐍a+1,s)T𝐌y=1,a+1,s)exp(𝐙a=a+1,s)\mathbf{X}_{s}\mathbf{=}\left( \left( \mathbf{N}_{a_{+} - 1,s}^{'} \right)^{T}\mathbf{M}_{y = 1,a_{+} - 1,s} \right) \odot \exp\left( - \mathbf{Z}_{a = a_{+} - 1,s}^{'} \right)

where 𝐌\mathbf{M} is a first-order Markov matrix representing movement, \odot is the Hadamard product (elementwise multiplication), and 𝐗s\mathbf{X}_{s} represents the culmination of processes applied to the penultimate age. A transition matrix (𝐆s\mathbf{(G}_{s}) is the constructed to represent the combined effects of survival and movement on the plus group:

𝐆s=diag(exp(𝐙a=a+,s))(𝐌y=1,a+,s)T\mathbf{G}_{s} = \text{diag}\left( \exp\left( - \mathbf{Z}_{a = a_{+},s}^{'} \right) \right)\left( \mathbf{M}_{y = 1,a_{+},s} \right)^{T}

The plus group solution incorporating movement is then given by:

𝐍a+,s=(𝐈𝐆s)1𝐗s\mathbf{N}_{a_{+},s}^{'} = \left( \mathbf{I -}\mathbf{G}_{s} \right)^{- 1}\mathbf{X}_{s}

When only a single region is modeled or no movement occurs (i.e., an identity matrix), the matrix formulation simplifies to the standard scalar geometric series solution.

Following the definition of equilibrium age structure, initial age deviations can be applied:

Nr,y=1,a1,s=Nr,a1,sexp(ϵr,iInit)\begin{matrix} N_{r,y = 1,a \neq 1,s} = N'_{r,a \neq 1,s}\text{exp}\left( \epsilon_{r,i}^{\text{Init}} \right) \\ \end{matrix}

where Nr,y=1,a1,sN_{r,y = 1,a \neq 1,s} are represents the numbers-at-age in the first model year except recruits (a1a \neq 1). These values can then be treated as a stochastic process by applying multiplicative lognormal deviations ϵr,iInit\epsilon_{r,i}^{\text{Init}} to the initial equilibrium age structure. Note that the index ii is introduced because users can determine whether initial age deviations are estimated up to the penultimate age class, or across all classes including the plus group.

Recruitment Processes

In the current iteration of SPoRC, two stock recruitment parameterizations can be specified. Recruitment can be specified to arise about a mean parameter (μRec\mu^{\text{Rec}}):

Nr,y,a=1,s=μRecexp(ϵr,yRecσRec22by)ψr,y,sζr\begin{matrix} N_{r,y,a = 1,s} = \mu^{\text{Rec}}\exp\left( \epsilon_{r,y}^{\text{Rec}} - \frac{\sigma_{\text{Rec}}^{2}}{2}b_{y} \right)\psi_{r,y,s}\zeta_{r} \\ \end{matrix}

where ϵr,y\epsilon_{r,y} are annual, lognormally distributed recruitment deviations with a lognormal bias correction term (σRec22by\frac{\sigma_{\text{Rec}}^{2}}{2}b_{y}), with byb_{y} representing the bias correction ramp from Methot and Taylor (2011). Recruitment can also be specified to arise from a Beverton-Holt stock recruitment function to invoke density-dependent population dynamics, which follows the steepness parameterization (Mace and Doonan, 1988). Localized density-dependent recruitment is defined as:

Nr,y,a=1,s=4μRecζrhrSSBr,yRecLag(1hr)SSB0r+5(hr1)SSBr,yRecLagexp(ϵr,yRecσRec22by)ψr,y,s\begin{matrix} N_{r,y,a = 1,s} = \dfrac{4\mu^{\text{Rec}}\zeta_{r}h_{r}{SSB}_{r,y - RecLag}}{\left( 1 - h_{r} \right)SSB0_{r} + 5\left( h_{r} - 1 \right){SSB}_{r,y - RecLag}}\exp\left( \epsilon_{r,y}^{\text{Rec}} - \frac{\sigma_{\text{Rec}}^{2}}{2}b_{y} \right)\psi_{r,y,s} \\ \end{matrix}

while global density-dependent recruitment can be defined as:

Nr,y,a=1,s=4μRecζrhrSSBr,yRecLag(1h)rSSB0r+5(h1)rSSBr,yRecLagexp(ϵr,yRecσRec22by)ψr,y,s\begin{matrix} N_{r,y,a = 1,s} = \dfrac{4\mu^{\text{Rec}}\zeta_{r}h\sum_{r}^{}{SSB}_{r,y - RecLag}}{(1 - h)\sum_{r}^{}{SSB0_{r}} + 5(h - 1)\sum_{r}^{}{SSB}_{r,y - RecLag}}\exp\left( \epsilon_{r,y}^{\text{Rec}} - \frac{\sigma_{\text{Rec}}^{2}}{2}b_{y} \right)\psi_{r,y,s} \\ \end{matrix}

where μRec\mu^{\text{Rec}} under this parameterization is the virgin unfished recruitment, hrh_{r} (or hh) is the steepness parameter representing the fraction of μRecζr\mu^{\text{Rec}}\zeta_{r} that would be produced when at 20% of SSB0rSSB0_{r} (or rSSB0r\sum_{r}^{}{SSB0_{r}}). The steepness parameter is constrained to be between values of 0.2 and 1 and are estimated in bounded logit space. SSB0rSSB0_{r} is a derived variable that represents the unfished spawning stock biomass (i.e., derived by multiplying the unfished SSB per recruit by μRecζr\mu^{\text{Rec}}\zeta_{r}). SSBr,yRecLag{SSB}_{r,y - RecLag} is the spawning stock biomass, which is the product of numbers-at-age, spawning weight-at-age, and maturity-at-age for females:

SSBr,y=a=1a+Nr,y,a,s=1Wr,y,a,s=1spawnMatr,y,a,s=1\begin{matrix} SSB_{r,y} = \sum_{a = 1}^{a_{+}}{N_{r,y,a,s = 1}W_{r,y,a,s = 1}^{spawn}{Mat}_{r,y,a,s = 1}} \\ \end{matrix}

Note that RecLagRecLag denotes the delay between spawning and when recruits enter the population. Thus, if RecLag>yRecLag > y, SPoRC utilizes SSB0rSSB0_{r} instead of SSBr,yRecLag{SSB}_{r,y - RecLag} to compute deterministic recruitment.

Population Projection

Following recruitment processes, the population can then be projected forward. In the context of the spatial model, Markovian movement dynamics are first applied:

𝐍y,a,s=(𝐍y,a,s)T𝐌y,a,s\begin{matrix} \mathbf{N}_{y,a,s} = \left( \mathbf{N}_{y,a,s} \right)^{T}\mathbf{M}_{y,a,s} \\ \end{matrix}

Here, 𝐌y,a,s\mathbf{M}_{y,a,s} is a first-order Markov matrix representing movement. In a single-region case, no movement is applied (i.e., 𝐌y,a,s\mathbf{M}_{y,a,s} is an implied identity matrix). For each year, age, and sex combination, the movement matrix specifies bulk-transfer coefficients, with parameters transformed through a multinomial logit to ensure that proportions within each origin region sum to one. Following movement processes, the population undergoes mortality and ageing:

Nr,y+1,a+1,s=Nr,y,a,sexp(Zr,y,a,s),for 1a<a+\begin{matrix} N_{r,y + 1,a + 1,s} = N_{r,y,a,s}\exp\left( - Z_{r,y,a,s} \right),\quad\text{for }1 \leq a < a_{+} \\ \end{matrix}

Nr,y+1,a,s=Nr,y,a1,sexp(Zr,y,a1,s)+Nr,y,a,sexp(Zr,y,a,s),for a=a+N_{r,y + 1,a,s} = N_{r,y,a - 1,s}\exp\left( - Z_{r,y,a - 1,s} \right) + N_{r,y,a,s}\exp\left( - Z_{r,y,a,s} \right),\quad\text{for }a = a_{+}

Zr,y,a,sZ_{r,y,a,s} denotes the annual total instantaneous mortality rate and is defined as the combination of natural mortality (Natmortr,y,a,s\text{Natmort}_{r,y,a,s}) and fishing mortality (Fmortr,y,f\text{Fmort}_{r,y,f}):

Zr,y,a,s=Natmortr,y,a,s+fSelr,y,a,s,fFshFmortr,y,f\begin{matrix} Z_{r,y,a,s} = \text{Natmort}_{r,y,a,s} + \sum_{f}^{}\text{Sel}_{r,y,a,s,f}^{\text{Fsh}}\text{Fmort}_{r,y,f} \\ \end{matrix}

The annual instantaneous fishing mortality rate is then defined as:

Fmortr,y,f=μr,fFshexp(ϵr,y,fFsh)\begin{matrix} \text{Fmort}_{r,y,f} = \mu_{r,f}^{\text{Fsh}}\text{exp}\left( \epsilon_{r,y,f}^{\text{Fsh}} \right) \\ \end{matrix}

where Fmortr,y,f\text{Fmort}_{r,y,f} is parameterized based on lognormal deviations (ϵr,y,fFsh)\epsilon_{r,y,f}^{\text{Fsh}}) about a mean fishing mortality parameter for a given fishery fleet (μr,fFsh\mu_{r,f}^{\text{Fsh}}).

Observation Equations

Fishery Observation Model

The fishery observation model describes the expected catch-at-age, catch-at-length, catch (in units of biomass), and fishery indices. Expected catch-at-age (Cr,y,a,s,faC_{r,y,a,s,f}^{a}) for a given fishery fleet is calculated using Baranov’s catch equation:

Cr,y,a,s,fa=Fmortr,y,fSelr,y,a,s,fFshZr,y,a,sNr,y,a,s[1exp(Zr,y,a,s)]\begin{matrix} C_{r,y,a,s,f}^{a} = \dfrac{\text{Fmort}_{r,y,f}\text{Sel}_{r,y,a,s,f}^{\text{Fsh}}}{Z_{r,y,a,s}}N_{r,y,a,s}\left\lbrack 1 - \exp\left( - Z_{r,y,a,s} \right) \right\rbrack \\ \end{matrix}

To track length-based dynamics, catch-at-length (Cr,y,l,s,flC_{r,y,l,s,f}^{l}) can then be derived using the following equation:

Cr,y,l,s,fl=𝐀r,y,sl𝐂𝐚r,y,s,f\begin{matrix} C_{r,y,l,s,f}^{l} = \mathbf{A}_{r,y,s}^{l}{\mathbf{C}^{\mathbf{a}}}_{r,y,s,f} \\ \end{matrix}

where 𝐀r,y,sl\mathbf{A}_{r,y,s}^{l} is a user-defined size-age transition matrix to convert ages to lengths. Expected catch (Catchr,y,f\text{Catch}_{r,y,f}) is then computed summation of the expected catch-at-age across ages and sexes, multiplied by their respective fishery weights-at-age (Wr,y,a,s,ffishW_{r,y,a,s,f}^{fish}):

Catchr,y,f=aa+snsCr,y,a,s,faWr,y,a,s,ffish\begin{matrix} \text{Catch}_{r,y,f} = \sum_{a}^{a_{+}}{\sum_{s}^{n_{s}}C_{r,y,a,s,f}^{a}}W_{r,y,a,s,f}^{fish} \\ \end{matrix}

The expected fishery index (FshIdxr,y,f\text{FshIdx}_{r,y,f}) is computed as:

FshIdxr,y,f=qr,y,fFshaa+snsNr,y,a,sexp(Zr,y,a,s)Selr,y,a,s,fFshWr,y,a,s,ffish\begin{matrix} \begin{matrix} \text{FshIdx}_{r,y,f} = q_{r,y,f}^{\text{Fsh}}\sum_{a}^{a_{+}}{\sum_{s}^{n_{s}}N_{r,y,a,s}}\exp\left( - Z_{r,y,a,s} \right)\text{Sel}_{r,y,a,s,f}^{\text{Fsh}}W_{r,y,a,s,f}^{fish} \\ \end{matrix} \\ \end{matrix}

where qr,y,fFshq_{r,y,f}^{\text{Fsh}} is the catchability coefficient for a given fishery fleet.

Survey Observation Model

Likewise, the survey observation model describes the expected survey catch-at-age, survey catch-at-length, and survey indices. Expected survey catch-at-age (Ir,y,a,s,sfaI_{r,y,a,s,sf}^{a}) is calculated as follows:

Ir,y,a,s,sfa=Nr,y,a,sexp(Zr,y,a,stsrv)Selr,y,a,s,sfSrv\begin{matrix} I_{r,y,a,s,sf}^{a} = N_{r,y,a,s}\exp\left( - Z_{r,y,a,s}t^{srv} \right)\text{Sel}_{r,y,a,s,sf}^{\text{Srv}} \\ \end{matrix}

where subscript sfsf denotes a given survey fleet and Selr,y,a,s,sfSrv\text{Sel}_{r,y,a,s,sf}^{\text{Srv}} is the survey selectivity-at-age pattern. Expected survey catch-at-length (Ir,y,l,s,sflI_{r,y,l,s,sf}^{l}) is given by:

Ir,y,l,s,sfl=𝐀r,y,sl𝐈𝐚r,y,s,f\begin{matrix} I_{r,y,l,s,sf}^{l} = \mathbf{A}_{r,y,s}^{l}{\mathbf{I}^{\mathbf{a}}}_{r,y,s,f} \\ \end{matrix}

Survey indices (SrvIdxr,y,sf\text{SrvIdx}_{r,y,sf}) can be computed as either abundance-based or biomass-based. Abundance-based survey indices are calculated as:

SrvIdxr,y,sf=qr,y,sfSrvaa+snsIr,y,a,s,sfa\begin{matrix} \text{SrvIdx}_{r,y,sf} = q_{r,y,sf}^{\text{Srv}}\sum_{a}^{a_{+}}{\sum_{s}^{n_{s}}I_{r,y,a,s,sf}^{a}} \\ \end{matrix}

while biomass-based indices are computed as:

SrvIdxr,y,sf=qr,y,sfSrvaa+snsIr,y,a,s,sfaWr,y,a,s,sfsrv\begin{matrix} \text{SrvIdx}_{r,y,sf} = q_{r,y,sf}^{\text{Srv}}\sum_{a}^{a_{+}}{\sum_{s}^{n_{s}}I_{r,y,a,s,sf}^{a}}W_{r,y,a,s,sf}^{srv} \\ \end{matrix}

Here, Wr,y,a,s,sfsrvW_{r,y,a,s,sf}^{srv} is the weight-at-age for a given survey, qr,y,sfSrvq_{r,y,sf}^{\text{Srv}} represents the survey catchability coefficient in the aforementioned equations.

For survey catchability, environmental linkage can be specified:

qr,y,sfSrv=qr,sfSrvexp(𝐱T𝛃+mιmpm(zr,y,sf))q_{r,y,sf}^{\text{Srv}} = q_{r,sf}^{\text{Srv}}\exp\left( \mathbf{x}^{T}\mathbf{\beta +}\sum_{m}^{}{\iota_{m}p_{m}\left( z_{r,y,sf} \right)} \right)

where qr,sfSrvq_{r,sf}^{\text{Srv}} is the base survey catchability (i.e., intercept), 𝐱\mathbf{x} is a matrix of covariates, 𝛃\mathbf{\beta} is a vector of regression coefficients, ιmpm\iota_{m}p_{m} are orthogonal polynomial coefficients along with its basis functions, and zr,y,sfz_{r,y,sf} are the covariates for which a polynomial term is assumed for.

Tagging Observation Model

The tagging observation model tracks tag cohorts (Tr,y,a,skT_{r,y,a,s}^{k}) by the combination of release region and release year (kk) and follows a Brownie tag attrition framework. Tag cohorts are tracked for a pre-defined maximum duration (maximum tag liberty; nLn_{L}), after which calculations for the tag cohort are no longer computed. This is done to aid with computation time. Additionally, tag cohorts also have the option to undergo a fraction of mortality in the year of release, such that if a given cohort is released during the middle of the year, mortality processes are discounted. If mortality discounting is specified, movement does not occur in the year of release. In general, the process dynamics for the tagged cohort mimics those specified for the overall population. Immediately following release, tag cohorts are decremented by an initial tag-induced mortality rate:

Tr,y,a,sk=Tr,y,a,skexp(τ)\begin{matrix} T_{r,y,a,s}^{k} = T_{r,y,a,s}^{k}\exp( - \tau) \\ \end{matrix}

where τ\tau is the initial tag-induced mortality rate. If tagged cohorts are released at the beginning of a calendar year, Markovian movement occurs (movement does not occur otherwise):

𝐓y,a,sk=(𝐓y,a,sk)T𝐌y,a,s\begin{matrix} \mathbf{T}_{y,a,s}^{k} = \left( \mathbf{T}_{y,a,s}^{k} \right)^{\text{T}}\mathbf{M}_{y,a,s} \\ \end{matrix}

Mortality and ageing of the tagged cohort then occurs:

Tr,y+1,a+1,sk=Tr,y,a,skexp(Zr,y,a,sTag),for 2a<a+Tr,y+1,a,sk=Tr,y,a1,skexp(Zr,y,a1,sTag)+Tr,y,a,skexp(Zr,y,a,sTag),for a=a+\begin{matrix} \begin{matrix} T_{r,y + 1,a + 1,s}^{k} = T_{r,y,a,s}^{k}\exp\left( - Z_{r,y,a,s}^{\text{Tag}} \right),\quad\text{for }2 \leq a < a_{+} \\ T_{r,y + 1,a,s}^{k} = T_{r,y,a - 1,s}^{k}\exp\left( - Z_{r,y,a - 1,s}^{\text{Tag}} \right) + T_{r,y,a,s}^{k}\exp\left( - Z_{r,y,a,s}^{\text{Tag}} \right),\quad\text{for }a = a_{+} \\ \end{matrix} \\ \end{matrix}

where tagged cohorts follow an exponential mortality model, with accumulation of individuals in the plus-group. Total mortality for the tagged cohort (Zr,y,a,sTagZ_{r,y,a,s}^{\text{Tag}}) is specified as:

Zr,y,a,sTag=(κ+NatMortr,y,a,s+fSelr,y,a,s,fFshFmortr,y,f)\begin{matrix} Z_{r,y,a,s}^{\text{Tag}} = \left( \kappa + \text{NatMort}_{r,y,a,s} + \sum_{f}^{}\text{Sel}_{r,y,a,s,f}^{\text{Fsh}}\text{Fmort}_{r,y,f} \right) \\ \end{matrix}

where κ\kappa is a parameter describing chronic tag loss (i.e., annual tag shedding). Similar to computations for catch-at-age, tag recaptures are calculated using a modified version of Baranov’s catch equation:

Recapr,y,a,sk=βr,yfSelr,y,a,s,fFshZr,y,a,sTagTr,y,a,sk[1exp(Zr,y,a,sTag)]\begin{matrix} \text{Recap}_{r,y,a,s}^{k} = \beta_{r,y}\dfrac{\sum_{f}^{}\text{Sel}_{r,y,a,s,f}^{\text{Fsh}}}{Z_{r,y,a,s}^{\text{Tag}}}T_{r,y,a,s}^{k}\left\lbrack 1 - \exp\left( - Z_{r,y,a,s}^{\text{Tag}} \right) \right\rbrack \\ \end{matrix}

βr,y\beta_{r,y} represents a tag reporting rate parameter that can vary across space and time, which is estimated in logit space such that it is constrained between [0,1]\lbrack 0,1\rbrack.

Fishery and Survey Selectivity

In the following descriptions of selectivity, we omit subscripts for sexes and fleets for brevity, although note that the equations remain specific to those model partitions. Several approaches are available for parameterizing fishery and survey selectivity. Selectivity can be defined as either age- or length-based. For age-based selectivity, an age vector is applied directly with a chosen functional form. For length-based selectivity, a length vector is used to compute selectivity, which is then combined with a size–age transition matrix through a dot product to obtain selectivity-at-age.

𝐒𝐞𝐥a=(𝐀r,y,sl)T𝐒𝐞𝐥l\begin{matrix} \mathbf{Se}\mathbf{l}^{a}\mathbf{=}\left( \mathbf{A}_{r,y,s}^{l} \right)^{\text{T}}\mathbf{Se}\mathbf{l}^{l} \\ \end{matrix}

Given the age-based nature of the model, selectivity-at-age is utilized for all subsequent calculations. Various functional forms can also be specified for selectivity processes. In the following we use the subscript bb to denote a generalized bin number.

Two forms of logistic selectivity can be specified. The first form is defined as:

Selb=11+exp[k(bb50)]\begin{matrix} {Sel}_{b} = \frac{1}{1 + \exp\left\lbrack - k\left( b - b^{50} \right) \right\rbrack} \\ \end{matrix}

where kk determines the slope/steepness of the logistic curve and b50b^{50} is the bin-at-50% selection. The second form can be expressed as:

Selb=11+19(b50bb95)\begin{matrix} {Sel}_{b} = \frac{1}{1 + 19^{\left( \frac{b^{50} - b}{b^{95}} \right)}} \\ \end{matrix}

Here, b50b^{50} is also the bin-at-50% selection and b95b^{95} is the bin-at-95% selection. Beyond the specification of flat-topped selectivity, SPoRC also allows for dome-shaped selectivity. In particular, a reparametrized gamma function can be specified:

p=0.5[bmax+4γ2bmax]\begin{matrix} p = 0.5\left\lbrack \sqrt{b^{\max} + 4\gamma^{2}} - b^{\max} \right\rbrack \\ \end{matrix}

Selb=(bbmax)bmaxpexp(bmaxbp){Sel}_{b} = \left( \frac{b}{b^{\max}} \right)^{\frac{b^{\max}}{p}}\exp\left( \frac{b^{\max} - b}{p} \right)

In this parameterization, pp is a derived power parameter, γ\gamma is the shape parameter that describes the steepness of the descending limb, and bmaxb^{\max} describes the bin-at-maximum selection. Dome-shaped selectivity can also be expressed as a power function:

Selb=1bϕ\begin{matrix} {Sel}_{b} = \frac{1}{b^{\phi}} \\ \end{matrix}

with ϕ\phi being a power parameter that determines the descending limb of the curve (larger values are steeper). The last dome-shaped selectivity form that can be specified includes a 6 parameter (denoted as p̂1{\widehat{p}}_{1} through p̂6{\widehat{p}}_{6}) double normal functional form with the following transformations applied:

p1=min(b)+[max(b)min(b)]11+exp(p̂1)\begin{matrix} p_{1} = \ \min(b) + \left\lbrack \max(b) - min(b) \right\rbrack \cdot \frac{1}{1 + \exp\left( {\widehat{p}}_{1} \right)} \\ \end{matrix}

p2=p1+1+0.99+max(b)p111+exp(p̂2)p_{2} = \ p_{1} + 1 + \frac{0.99 + max(b) - p_{1} - 1}{1 + exp({\widehat{p}}_{2})}

p3=exp(p̂3),p4=exp(p̂4)p_{3} = \exp\left( {\widehat{p}}_{3} \right),\ \ p_{4} = \exp\left( {\widehat{p}}_{4} \right)

p5=11+exp(p̂5),p6=11+exp(p̂6)p_{5} = \frac{1}{1 + \exp\left( {\widehat{p}}_{5} \right)},\ \ p_{6} = \frac{1}{1 + \exp\left( {\widehat{p}}_{6} \right)}

p1p_{1} represents the beginning of the plateau, p2p_{2} describes the width of the plateau, p3p_{3} and p4p_{4} are parameters controlling the ascending and descending widths, and p5p_{5} and p6p_{6} control the selectivity at the first and last bins. The double normal function is then defined with a series of functions:

ascb=exp((bp1)2p3)ascscaledb=p5+(1p5)ascbdescb=exp((bp2)2p4)stj=exp((40p2)2p4)descscaledb=1+(p61)descb1stj1join1b=11+exp(20bp11+|bp1|)join2b=11+exp(20bp21+|bp2|)\begin{matrix} {asc}_{b} = \exp\left( - \frac{\left( b - p_{1} \right)^{2}}{p_{3}} \right) \\ {ascscaled}_{b} = p_{5} + \left( 1 - p_{5} \right) \cdot {asc}_{b} \\ {desc}_{b} = \exp\left( - \frac{\left( b - p_{2} \right)^{2}}{p_{4}} \right) \\ stj = exp\left( - \frac{\left( 40 - p_{2} \right)^{2}}{p_{4}} \right) \\ {descscaled}_{b} = 1 + \left( p_{6} - 1 \right) \cdot \frac{{desc}_{b} - 1}{stj - 1} \\ join1_{b} = \frac{1}{1 + \exp\left( - 20 \cdot \frac{b - p_{1}}{1 + \left| b - p_{1} \right|} \right)} \\ join2_{b} = \frac{1}{1 + \exp\left( - 20 \cdot \frac{b - p_{2}}{1 + \left| b - p_{2} \right|} \right)} \\ \end{matrix}

and are joined together as:

Selb=ascb(1join1b)+join1b[(1join2b)+descscaledbjoin2b]\begin{matrix} {Sel}_{b} = {asc}_{b} \cdot \left( 1 - join1_{b} \right) + join1_{b} \cdot \left\lbrack \left( 1 - join2_{b} \right) + {descscaled}_{b} \cdot join2_{b} \right\rbrack \\ \end{matrix}

The double normal functional form is incredibly flexible and is able to reduce to both flat-topped and dome-shaped selectivity forms, depending on the values of the parameters.

In addition to the functional forms that can be specified to describe selectivity processes, several options exist to specify continuous time-varying processes. In particular, options to specify time-varying parametric selectivity and time-varying semi-parametric selectivity are available. To illustrate, if logistic selectivity is specified and parametric deviations are invoked, the following expression is used:

Sely,b=11+exp[ky(bby50)]ky=kexp(ϵy,1Sel)by50=b50exp(ϵy,2Sel){\begin{matrix} {Sel}_{y,b} = \frac{1}{1 + \exp\left\lbrack - k_{y}\left( b - b_{y}^{50} \right) \right\rbrack} \\ \end{matrix} }{k_{y} = k \cdot \exp\left( \epsilon_{y,1}^{Sel} \right) }{b_{y}^{50} = b^{50} \cdot exp(\epsilon_{y,2}^{Sel})}

where the parameters of the logistic form are allowed to vary over time. In the context of semi-parametric selectivity, the following equation is used:

Sely,b=11+exp(k[bb50])exp(ϵy,bSel)Sely,b=Sely,bmean(𝐒𝐞𝐥){\begin{matrix} {Sel}_{y,b}^{'} = \frac{1}{1 + \exp\left( - k\left\lbrack b - b^{50} \right\rbrack \right)}\exp\left( {\epsilon_{y,b}}^{Sel} \right) \\ \end{matrix} }{{Sel}_{y,b} = \frac{{Sel}_{y,b}^{'}}{mean(\mathbf{Se}\mathbf{l}^{\mathbf{'}})}}

where deviations are placed about the parametric form and selectivity values are mean standardized to aid with interpretability. Importantly, note that if age-based selectivity is specified and continuous deviations are estimated, these deviations are placed on the ages themselves. In the case where length-based selectivity is specified, these deviations are placed on the length bins. Further details on how selectivity deviations arise can be found in the “Selectivity Process Error” section of this document.

Likelihoods

Currently, SPoRC incorporates data likelihood components for the following data sources:

  1. fishery catches,
  2. fishery indices,
  3. fishery age compositions,
  4. fishery length compositions,
  5. survey indices,
  6. survey age compositions,
  7. survey length compositions, and
  8. tagging data.

The total likelihood (objective function) is the sum of the individual likelihood contributions from these data sources along with priors and penalties, where the objective function is minimized using a non-linear optimization algorithm to estimate model parameters.

Observation Likelihoods

Fishery Catches

Fishery catches can be fit using a lognormal likelihood. The log-likelihood for observed catch, L(log(ObsCatchr,y,f))L\left( \log\left( \text{ObsCatch}_{r,y,f} \right) \right) is defined as:

L(log(ObsCatchr,y,f))=\begin{matrix} L\left( \log\left( \text{ObsCatch}_{r,y,f} \right) \right) = \\ \end{matrix}

λObsCatchr,y,f12πσObsCatchr,,f2exp([log(ObsCatchr,y,f)log(Catchr,y,f)]22σObsCatchr,y,f2)\lambda_{\text{ObsCatch}_{r,y,f}} \cdot \frac{1}{\sqrt{2\pi\sigma_{\text{ObsCatch}_{r,,f}}^{2}}\,}\exp\left( - \frac{\left\lbrack \log\left( \text{ObsCatch}_{r,y,f} \right) - log\left( \text{Catch}_{r,y,f} \right) \right\rbrack^{2}}{2\sigma_{\text{ObsCatch}_{r,y,f}}^{2}} \right)

Here, λObsCatchr,y,f\lambda_{\text{ObsCatch}_{r,y,f}} is the likelihood weight, ObsCatchr,y,f\text{ObsCatch}_{r,y,f} is the observed catch, Catchr,y,f\text{Catch}_{r,y,f} is the predicted catch, and σObsCatchr,y,f2\sigma_{\text{ObsCatch}_{r,y,f}}^{2} is the variance of catch on the log scale.

Fishery and Survey Indices

Fishery indices can also be fit assuming a lognormal likelihood. The log-likelihood for observed fishery indices is:

L(log(ObsFshIdxr,y,f))=\begin{matrix} L\left( \log\left( \text{ObsFshIdx}_{r,y,f} \right) \right) = \\ \end{matrix}

λObsFshIdxr,y,f12πσObsFshIdxr,y,f2exp([log(ObsFshIdxr,y,f)log(FshIdxr,y,f)]22σObsFshIdxr,y,f2)\lambda_{\text{ObsFshIdx}_{r,y,f}} \cdot \frac{1}{\sqrt{2\pi\sigma_{\text{ObsFshIdx}_{r,y,f}}^{2}}\,}\exp\left( - \frac{\left\lbrack \log\left( \text{ObsFshIdx}_{r,y,f} \right) - log\left( \text{FshIdx}_{r,y,f} \right) \right\rbrack^{2}}{2\sigma_{\text{ObsFshIdx}_{r,y,f}}^{2}} \right)

where λObsFshIdxr,y,f\lambda_{\text{ObsFshIdx}_{r,y,f}} controls the weight of fishery indices to the objective function, ObsFshIdxr,y,f\text{ObsFshIdx}_{r,y,f} represents the observed fishery indices, and σObsFshIdxr,y,f2\sigma_{\text{ObsFshIdx}_{r,y,f}}^{2} denotes the variance of the fishery index.

Likewise, survey indices can be fit assuming a lognormal likelihood given by:

L(log(ObsSrvIdxr,y,sf))=\begin{matrix} L\left( \log\left( \text{ObsSrvIdx}_{r,y,sf} \right) \right) = \\ \end{matrix}

λObsSrvIdxr,y,sf12πσObsSrvIdxr,y,sf2exp([log(ObsSrvIdxr,y,sf)log(SrvIdxr,y,sf)]22σObsSrvIdxr,y,sf2)\lambda_{\text{ObsSrvIdx}_{r,y,sf}} \cdot \frac{1}{\sqrt{2\pi\sigma_{\text{ObsSrvIdx}_{r,y,sf}}^{2}}\,}\exp\left( - \frac{\left\lbrack \log\left( \text{ObsSrvIdx}_{r,y,sf} \right) - log\left( \text{SrvIdx}_{r,y,sf} \right) \right\rbrack^{2}}{2\sigma_{\text{ObsSrvIdx}_{r,y,sf}}^{2}} \right)

λObsSrvIdxr,y,sf\lambda_{\text{ObsSrvIdx}_{r,y,sf}} is the likelihood weight applied to survey indices, ObsSrvIdxr,y,sf\text{ObsSrvIdx}_{r,y,sf} are the observed survey indices, and σObsSrvIdxr,y,sf2\sigma_{\text{ObsSrvIdx}_{r,y,sf}}^{2} indicates the variance of the survey index.

Fishery and Survey Compositions

Several options for fitting composition data are available in SPoRC. These include the multinomial, the Dirichlet-multinomial, and the logistic-normal likelihoods. In the case of the multinomial likelihood, the following expression is used:

L(ObsCompositionDatar,y,j)=λObsCompositionDatar,y,jISSr,y,jb=1nbEr,y,b,jOr,y,b,j{\begin{matrix} L\left( \text{ObsCompositionData}_{r,y,j} \right) = \\ \end{matrix} }{\lambda_{\text{ObsCompositionData}_{r,y,j}} \cdot \text{ISS}_{r,y,j} \cdot \prod_{b = 1}^{n_{b}}E_{r,y,b,j}^{O_{r,y,b,j}}}

where subscript jj is used to indicate a fishery or survey fleet and the bb subscript generically indicates a bin number. λObsCompositionDatar,y,j\lambda_{\text{ObsCompositionData}_{r,y,j}} are likelihood weights applied to composition data (can be derived using iterative weighting methods), ISSr,y,jISS_{r,y,j} is the input sample size, Er,y,b,jE_{r,y,b,j} denotes the expected composition proportions, and Or,y,b,jO_{r,y,b,j} are the observed composition proportions.

If a Dirichlet-multinomial likelihood is assumed, the following parameterization (linear) is used:

L(ObsCompositionDatar,y,j)=λObsCompositionDatar,y,jΓ(ISSr,y,j+1)ISSr,y,jOr,y,b,j+1Γ(ISSr,y,jθr,j)Γ(ISSr,y,j+ISSr,y,jθr,j)b=1nbΓ(ISSr,y,jOr,y,b,j+ISSr,y,jθr,jEr,y,b,j)ISSr,y,jθr,jEr,y,b,j\begin{matrix} L\left( \text{ObsCompositionData}_{r,y,j} \right) = \\ \lambda_{\text{ObsCompositionData}_{r,y,j}} \cdot \frac{\Gamma\left( \text{ISS}_{r,y,j} + 1 \right)}{\text{ISS}_{r,y,j} \cdot O_{r,y,b,j} + 1} \cdot \frac{\Gamma\left( \text{ISS}_{r,y,j}\theta_{r,j} \right)}{\text{Γ(}\text{ISS}_{r,y,j}\text{+}\text{ISS}_{r,y,j}\theta_{r,j}\text{)}} \cdot \\ \prod_{b = 1}^{n_{b}}\frac{\Gamma(\text{ISS}_{r,y,j}O_{r,y,b,j} + \text{ISS}_{r,y,j}\theta_{r,j}E_{r,y,b,j})}{\text{ISS}_{r,y,j}\theta_{r,j}E_{r,y,b,j}} \\ \end{matrix}

Here, θr,j\theta_{r,j} is the overdispersion parameter of the Dirichlet-multinomial that adjusts the input sample size. The effective sample size (ESSr,y,j)\text{ESS}_{r,y,j}) can then be derived as:

ESSr,y,j=11+θr,j+ISSr,y,jθr,j1+θr,j\begin{matrix} \text{ESS}_{r,y,j} = \frac{1}{1 + \theta_{r,j}\ } + \text{ISS}_{r,y,j}\frac{\theta_{r,j}}{1 + \theta_{r,j}\ } \\ \end{matrix}

Therefore, if θr,j\theta_{r,j} was large such that θr,jISSr,y,j\theta_{r,j} \gg \text{ISS}_{r,y,j}, then ESSr,y,jISSr,y,j\text{ESS}_{r,y,j} \rightarrow \text{ISS}_{r,y,j}. By contrast, if θr,j\theta_{r,j} was estimated at a small value such that θr,jISSr,y,j\theta_{r,j} \ll \text{ISS}_{r,y,j}, then θr,j\theta_{r,j} approximates the ratio of ESSr,y,j\text{ESS}_{r,y,j} and ISSr,y,j\text{ISS}_{r,y,j} (Thorson et al., 2017).

A multivariate logistic-normal likelihood can also be assumed, which is given by:

L(ObsCompositionDatar,y,j)=1(2π)B12|𝚺|12exp(12{𝐎r,y,j𝐄r,y,j}T𝚺1{𝐎r,y,j𝐄r,y,j}){\begin{matrix} L\left( \text{ObsCompositionData}_{r,y,j} \right) = \\ \end{matrix} }{\frac{1}{(2\pi)^{\frac{B - 1}{2}}\left| \mathbf{\Sigma} \right|^{\frac{1}{2}}}\exp\left( - \frac{1}{2}\left\{ \mathbf{O}_{r,y,j}^{\mathbf{'}} - \mathbf{E}_{r,y,j}^{\mathbf{'}} \right\}^{T}\mathbf{\Sigma}^{- 1}\left\{ \mathbf{O}_{r,y,j}^{\mathbf{'}} - \mathbf{E}_{r,y,j}^{\mathbf{'}} \right\} \right)}

Both 𝐎r,y,j\mathbf{O}_{r,y,j}^{\mathbf{'}} and 𝐄r,y,j\mathbf{E}_{r,y,j}^{\mathbf{'}} are (B1)(B - 1) dimensional vectors, while 𝚺\mathbf{\Sigma} is a (B1)×(B1)(B - 1) \times (B - 1) covariance matrix (see below for further details). 𝐎r,y,j\mathbf{O}_{r,y,j}^{\mathbf{'}} and 𝐄r,y,j\mathbf{E}_{r,y,j}^{\mathbf{'}} are derived via an additive logistic function:

Or,y,b,j=log(Or,y,B,j)log(Or,y,B,j)Er,y,b,j=log(Er,y,B,j)log(Er,y,B,j)\begin{matrix} O_{r,y,b,j}^{'} = \log\left( O_{r,y, - B,j} \right) - log(O_{r,y,B,j}) \\ E_{r,y,b,j}^{'} = \log\left( E_{r,y, - B,j} \right) - log(E_{r,y,B,j}) \\ \end{matrix}

where Or,y,b,jO_{r,y,b,j}^{'} and Er,y,b,jE_{r,y,b,j}^{'} are transformed proportions using the last bin BB as the reference category. Because the logarithm of zero is undefined, all untransformed proportions must be strictly positive. If any observed proportion is zero, both the observed and corresponding expected values are removed, and the remaining proportions are renormalized to ensure that they sum to one before applying the transformation. The covariance matrix of the logistic-normal likelihood can be specified in various ways. In the simplest case, the covariance matrix can be assumed to be independent and identically distributed (iid):

𝚺=(𝐈Bθ2)B\begin{matrix} \mathbf{\Sigma =}\left( \mathbf{I}_{B} \cdot \theta^{2} \right)_{\mathbf{-}B} \\ \end{matrix}

where 𝐈B\mathbf{I}_{B} is a B×BB \times B identity matrix and θ2\theta^{2} is an estimated overdispersion parameter representing the variance. The simple iid case can be further extended to incorporate a one-dimensional lag-1 autoregressive structure:

𝚺=(𝐑Bθ2)B(𝐑B)i,j=ρB|ij|,i,j=1,,B\begin{matrix} \mathbf{\Sigma =}\left( \mathbf{R}_{B} \cdot \theta^{2} \right)_{- B} \\ \left( \mathbf{R}_{B} \right)_{i,j}\mathbf{=}\rho_{B}^{|i - j|},\ \ i,j = \ 1,\ \cdots,\ B \\ \end{matrix}

Here, 𝐑B\mathbf{R}_{B} is a B×BB \times B correlation matrix with a lag-1 autoregressive structure, where ρB|ij|\rho_{B}^{|i - j|} defines the correlation across bins. Lastly, if the model is specified to be sex-structured and sex-composition data are utilized, a two-dimensional autoregressive structure can be specified:

𝚺=(𝐑S𝐑Cθ2)B\begin{matrix} \mathbf{\Sigma =}\left( {\mathbf{R}_{S}\mathbf{\ \bigotimes\ R}}_{C} \cdot \theta^{2} \right)_{- B} \\ \end{matrix}

(𝐑C)i,j=ρC|ij|,i,j=1,,C\left( \mathbf{R}_{C} \right)_{i,j}\mathbf{=}\rho_{C}^{|i - j|},\ \ i,j = \ 1,\ \cdots,\ C

(𝐑S)i,j={1,ifi=jρs,ifij,i,j=1,,ns\left( \mathbf{R}_{S} \right)_{i,j}\mathbf{=}\left\{ \begin{matrix} 1,\ \ if i = j \\ \rho_{s},\ \ if i \neq j \\ \end{matrix} \right.\ ,\ \ i,j = 1,\ldots,n_{s}

𝐑S\mathbf{R}_{S} is a constant correlation matrix dimensioned by ns×nsn_{s} \times n_{s}for sexes, with off-diagonal elements ρs\rho_{s} controlling the correlation of age/length categories across sexes, while 𝐑C\mathbf{R}_{C} is a nc×ncn_{c} \times n_{c} lag-1 autoregressive correlation structure, where ρC|ij|\rho_{C}^{|i - j|} defines the correlation across age/length categories. \mathbf{\bigotimes} denotes the Kronecker product. This structure implies that similar age or size categories across sexes are correlated, while ensuring that very different age or size categories remain uncorrelated.

Structuring Compositions and Ageing Error

Related to the use of composition data likelihoods, composition data can be structured differently depending on model assumptions and data constraints. In particular, three options are available to fit to composition data:

  1. ‘Aggregated’ compositions across regions and sexes,

  2. ‘Split’ compositions for each region and sex (i.e., no implicit information about sex-ratios), and

  3. ‘Joint’ compositions across sexes (i.e., implicit information is provided about sex-ratios).

The expected compositions (i.e., catch-at-age, catch-at-length, survey catch-at-age, survey catch-at-length) when specified as ‘aggregated’ are derived with the following:

Ey,b=r=1nrs=1nsEr,y,b,snsnr𝐄y=𝐄y𝚯y{\begin{matrix} E_{y,b}^{'} = \frac{\sum_{r = 1}^{n_{r}}{\sum_{s = 1}^{n_{s}}E_{r,y,b,s}^{'}}}{n_{s} \cdot n_{r}} \\ \end{matrix} }{\mathbf{E}_{y} = \mathbf{E}_{y}^{\mathbf{'}}\mathbf{\Theta}_{y}}

where compositions are summed across regions and sexes and normalized to sum to one. Ageing error (𝚯y\mathbf{\Theta}_{y}) can then be applied using standard matrix multiplication. Expected compositions that are specified as ‘Split’ by sexes and regions are computed as:

Ey,b,s=Er,y,b,sb=1nBEr,y,b,s\begin{matrix} E_{y,b,s}^{'} = \frac{E_{r,y,b,s}^{'}}{\sum_{b = 1}^{n_{B}}E_{r,y,b,s}^{'}} \\ \end{matrix}

𝐄y,s=𝐄y,s𝚯y\mathbf{E}_{y,s} = \mathbf{E}_{y,s}^{\mathbf{'}}\mathbf{\Theta}_{y}

Here, expected compositions sum to one within a given region and sex combination and ageing error is similarly applied via matrix multiplication. In the case where expected compositions are specified as ‘Joint’, they are calculated as:

Ey,b,s=Er,y,b,ss=1nsb=1nBEr,y,b,s\begin{matrix} E_{y,b,s}^{'} = \frac{E_{r,y,b,s}^{'}}{\sum_{s = 1}^{n_{s}}{\sum_{b = 1}^{n_{B}}E_{r,y,b,s}^{'}}} \\ \end{matrix}

𝐄y=(𝐄y)T(𝐈s𝚯y)\mathbf{E}_{y} = \left( \mathbf{E}_{y} \right)^{T}(\mathbf{I}_{s}\mathbf{\ \bigotimes\ \Theta}_{y})

where the expected compositions sum to one jointly across bins and sexes, thus preserving implicit sex-ratio information. Ageing error is then applied by taking the Kronecker product of a nsxnsn_{s}\ x\ n_{s} identity matrix with the ageing error matrix, followed by matrix multiplication.

Tagging

SPoRC currently allows for various tagging likelihoods, ranging from the Poisson, Negative Binomial, multinomial, and Dirichlet-multinomial likelihood. Additionally, SPoRC also allows for both release- and recapture-conditioned dynamics (McGarvey and Feenstra, 2002). The Poisson tag likelihood is given by:

L(ObsRecapr,y,a,sk)=λTaggingexp(Recapr,y,a,sk)(Recapr,y,a,sk)ObsRecapr,y,a,skObsRecapr,y,a,sk!\begin{matrix} L\left( {ObsRecap}_{r,y,a,s}^{k} \right) = \lambda_{\text{Tagging}}\frac{\exp\left( - {Recap}_{r,y,a,s}^{k} \right)\left( {Recap}_{r,y,a,s}^{k} \right)^{{ObsRecap}_{r,y,a,s}^{k}}}{{ObsRecap}_{r,y,a,s}^{k}!} \\ \end{matrix}

where ObsRecapr,y,a,sk{ObsRecap}_{r,y,a,s}^{k} are the observed tag recaptures and λTagging\lambda_{\text{Tagging}} is the likelihood weight applied to tagging data. In the case where the Negative Binomial is invoked, the following expression is used:

L(ObsRecapr,y,a,sk)=λTaggingΓ(ObsRecapr,y,a,sk+η)Γ(η)Γ(ObsRecapr,y,a,sk+1)(ηRecapr,y,a,sk+η)η(Recapr,y,a,skRecapr,y,a,sk+η)ObsRecapr,y,a,sk\begin{matrix} L\left( {ObsRecap}_{r,y,a,s}^{k} \right) = \\ \lambda_{\text{Tagging}}\frac{\Gamma\left( {ObsRecap}_{r,y,a,s}^{k} + \eta \right)}{\Gamma(\eta)\Gamma\left( {ObsRecap}_{r,y,a,s}^{k} + 1 \right)}\left( \frac{\eta}{{Recap}_{r,y,a,s}^{k} + \eta} \right)^{\eta}\left( \frac{{Recap}_{r,y,a,s}^{k}}{{Recap}_{r,y,a,s}^{k} + \eta} \right)^{{ObsRecap}_{r,y,a,s}^{k}} \\ \end{matrix}

Here, η\eta represents the estimated overdispersion parameter for tagging data.

Under release conditioned dynamics, both recaptured and non-recaptured states are fit to. Proportions of observed (PObsRecapr,y,a,sk{PObsRecap}_{r,y,a,s}^{k}) and expected recaptured (PRecapr,y,a,sk){PRecap}_{r,y,a,s}^{k})individuals are given by:

PObsRecapr,y,a,sk=ObsRecapr,y,a,skInitTagk\begin{matrix} {PObsRecap}_{r,y,a,s}^{k} = \frac{{ObsRecap}_{r,y,a,s}^{k}}{{InitTag}^{k}} \\ \end{matrix}

PRecapr,y,a,sk=Recapr,y,a,skInitTagk{PRecap}_{r,y,a,s}^{k} = \frac{{Recap}_{r,y,a,s}^{k}}{{InitTag}^{k}}

InitTagk{InitTag}^{k} denotes the total tags released for a given tag cohort (combination of release region and year). Non-recaptured states can then be written as:

PObsNonRecapr,y,a,sk=1ryasPObsRecapr,y,a,sk\begin{matrix} {PObsNonRecap}_{r,y,a,s}^{k} = 1 - \sum_{r}^{}{\sum_{y}^{}{\sum_{a}^{}{\sum_{s}^{}{PObsRecap}_{r,y,a,s}^{k}}}} \\ \end{matrix}

PNonRecapr,y,a,sk=1ryasPRecapr,y,a,sk{PNonRecap}_{r,y,a,s}^{k} = 1 - \sum_{r}^{}{\sum_{y}^{}{\sum_{a}^{}{\sum_{s}^{}{PRecap}_{r,y,a,s}^{k}}}}

where PObsNonRecapr,y,a,sk{PObsNonRecap}_{r,y,a,s}^{k} and PNonRecapr,y,a,sk{PNonRecap}_{r,y,a,s}^{k} are the observed and expected non-recaptured states, respectively. These states are then combined into a single vector of observed and expected values:

𝐎Taggingk={𝐏𝐎𝐛𝐬𝐑𝐞𝐜𝐚𝐩k,PObsNonRecapk}\begin{matrix} \mathbf{O}_{Tagging}^{k} = \left\{ \mathbf{PObsReca}\mathbf{p}^{k},{PObsNonRecap}^{k} \right\} \\ \end{matrix}

𝐄Taggingk={𝐏𝐑𝐞𝐜𝐚𝐩k,PNonRecapk}\mathbf{E}_{Tagging}^{k} = \{\mathbf{PReca}\mathbf{p}^{k},{PNonRecap}^{k}\}

If a Multinomial likelihood is assumed for release conditioned dynamics, this is given by:

L(ObsRecapk)=λTaggingInitTagki(Ei,Taggingk)Oi,Taggingk\begin{matrix} L\left( {ObsRecap}^{k} \right) = {\lambda_{\text{Tagging}}InitTag}^{k}\prod_{i}^{}\left( E_{i,Tagging}^{k} \right)^{O_{i,Tagging}^{k}} \\ \end{matrix}

Here, the subscript ii is used to generically denote a given element. If a Dirichlet-multinomial with released-condition dynamics was assumed, the tagging likelihood would be written as:

L(ObsRecapk)=λTaggingΓ(InitTagk+1)InitTagkOi,Taggingk+1Γ(InitTagkη)Γ(InitTagk+InitTagkη)iΓ(InitTagkOi,Taggingk+InitTagkηEi,Taggingk)InitTagkηEi,Taggingk\begin{matrix} L\left( {ObsRecap}^{k} \right) = \\ \lambda_{\text{Tagging}} \cdot \frac{\Gamma\left( {InitTag}^{k}\ + 1 \right)}{{InitTag}^{k}\ \cdot O_{i,Tagging}^{k} + 1} \cdot \frac{\Gamma\left( {InitTag}^{k}\ \eta \right)}{\text{Γ(}{InitTag}^{k}\text{+}{InitTag}^{k}\eta\text{)}} \cdot \\ \prod_{i}^{}\frac{\Gamma({InitTag}^{k} \cdot O_{i,Tagging}^{k} + {InitTag}^{k} \cdot \eta \cdot E_{i,Tagging}^{k})}{{InitTag}^{k} \cdot \eta \cdot E_{i,Tagging}^{k}} \\ \end{matrix}

The η\eta parameter in the Dirichlet-multinomial likelihood represents the overdispersion parameter for tagging data,

Under recapture-conditioned dynamics, tag shedding, tag induced mortality, and tag reporting rates are assumed to be spatially-invariant and do not need to be estimated, given that these terms cancel out in the denominator (McGarvey and Feenstra, 2002). Unlike release-conditioned dynamics, assuming recaptured-conditioned processes does not require fitting to non-recaptured states. Thus, the observed and expected recaptured proportions can be written as:

PObsRecapr,y,a,sk=ObsRecapr,y,a,skrasObsRecapr,y,a,skPRecapr,y,a,sk=Recapr,y,a,skrasRecapr,y,a,skTotRecapykrasObsRecapr,y,a,sk{\begin{matrix} {PObsRecap}_{r,y,a,s}^{k} = \frac{{ObsRecap}_{r,y,a,s}^{k}}{\sum_{r}^{}{\sum_{a}^{}{\sum_{s}^{}{ObsRecap}_{r,y,a,s}^{k}}}} \\ \end{matrix} }{{PRecap}_{r,y,a,s}^{k} = \frac{{Recap}_{r,y,a,s}^{k}}{\sum_{r}^{}{\sum_{a}^{}{\sum_{s}^{}{Recap}_{r,y,a,s}^{k}}}} }{{TotRecap}_{y}^{k}\sum_{r}^{}{\sum_{a}^{}{\sum_{s}^{}{ObsRecap}_{r,y,a,s}^{k}}}}

where recapture probabilities are normalized by the total number of recaptures in a given year (TotRecapyk{TotRecap}_{y}^{k}).

Parameter Priors and Process Error Penalties

Parameter Priors

Considering the complexity of integrated population models, several priors can be specified to help inform the estimation of parameters by providing additional knowledge. Beyond that, priors can also be specified to aid in model stabilization (i.e., regularizing priors). Priors can currently be specified for natural mortality, fishery and survey catchability, fishery and survey selectivity, steepness, recruitment proportions, movement rates, and tag reporting rates.

Natural Mortality

In the case of natural mortality, a lognormal prior is utilized:

P(log(NatMortr,y,a,s))=12πσr,y,a,s2(Natmort)exp([log(NatMortr,y,a,s)log(μr,y,a,s(NatMort))]22σNatMort2σr,y,a,s2(Natmort))\begin{matrix} P\left( \log\left( \text{NatMort}_{r,y,a,s} \right) \right) = \frac{1}{\sqrt{2\pi\sigma_{r,y,a,s}^{2\ (Natmort)}}\,}\exp\left( - \frac{\left\lbrack \log\left( \text{NatMort}_{r,y,a,s} \right) - log\left( \mu_{r,y,a,s}^{\text{(NatMort)}} \right) \right\rbrack^{2}}{2\sigma_{\text{NatMort}}^{2}\sigma_{r,y,a,s}^{2\ (Natmort)}} \right) \\ \end{matrix}

where the variance of the prior is given by σr,y,a,s2(Natmort)\sigma_{r,y,a,s}^{2\ (Natmort)}, and μr,y,a,s(NatMort)\mu_{r,y,a,s}^{\text{(NatMort)}} denotes the prior mean.

Fishery and Survey Catchability

For fishery and survey catchability, a lognormal prior can also be specified:

P(log(qr,y,j))=12πσr,y,j2(qPrior)exp([log(qr,y,j)log(μr,y,j(qPrior))]22σNatMort2σr,y,j2(qPrior))\begin{matrix} P\left( \log\text{(}q_{r,y,j}\text{)} \right) = \frac{1}{\sqrt{2\pi\sigma_{r,y,j}^{2\ (qPrior)}}\,}\exp\left( - \frac{\left\lbrack \log\left( q_{r,y,j} \right) - log\left( \mu_{r,y,j}^{\text{(qPrior)}} \right) \right\rbrack^{2}}{2\sigma_{\text{NatMort}}^{2}\sigma_{r,y,j}^{2\ (qPrior)}} \right) \\ \end{matrix}

where jj here represents either a fishery or survey fleet, σr,y,j2(qPrior)\sigma_{r,y,j}^{2\ (qPrior)} is the variance of the prior, and μr,y,j(qPrior)\mu_{r,y,j}^{\text{(qPrior)}} indicates the prior mean for catchability.

Fishery and Survey Selectivity

In general, selectivity priors can be utilized to serve as regularizing priors to facilitate stable parameter estimation (Monnahan, 2024). These priors are assumed to be lognormal and are applied to the selectivity parameters themselves:

P(log(θr,p,y,s,j))=12πσ2r,p,y,s,j(Sel)exp([ln(θr,p,y,s,j)ln(μr,p,y,s,j(Sel))]22σ2r,p,y,s,j(Sel))\begin{matrix} P\left( \log\left( \theta_{r,p,y,s,j} \right) \right) = \frac{1}{\sqrt{2\pi{\sigma^{2}}_{r,p,y,s,j}^{\text{(Sel)}}}\,}\exp\left( - \frac{\left\lbrack \ln\left( \theta_{r,p,y,s,j} \right) - ln\left( \mu_{r,p,y,s,j}^{\text{(Sel)}} \right) \right\rbrack^{2}}{2{\sigma^{2}}_{r,p,y,s,j}^{\text{(Sel)}}} \right) \\ \end{matrix}

where θr,p,y,s,j\theta_{r,p,y,s,j} is a selectivity parameter for a given functional form specified, σ2r,p,y,s,j(Sel){\sigma^{2}}_{r,p,y,s,j}^{\text{(Sel)}} is the prior variance, and μr,p,y,s,j(Sel)\mu_{r,p,y,s,j}^{\text{(Sel)}} is the prior mean for the specific selectivity parameter.

Steepness

If a Beverton-Holt stock recruitment relationship is assumed, priors for steepness can be specified. Currently, a scaled beta prior (bounded between 0.2 and 1) can be invoked:

ar(h)=(μr(h)0.210.2)(σr(h)10.2)2br(h)=[1(μr(h)0.210.2)][(σr(h)10.2)2]P(hr)=Γ(ar(h))Γ(br(h))Γ(ar(h)r+br(h))hra1(1hr)b1{\begin{matrix} a_{r}^{(h)} = \left( \frac{\mu_{r}^{\text{(}\text{h}\text{)}} - 0.2}{1 - 0.2} \right)\left( \frac{\sigma_{r}^{(h)}}{1 - 0.2} \right)^{2} \\ \end{matrix} }{b_{r}^{(h)} = \left\lbrack 1 - \ \left( \frac{\mu_{r}^{\text{(}\text{h}\text{)}} - 0.2}{1 - 0.2} \right) \right\rbrack\left\lbrack \left( \frac{\sigma_{r}^{(h)}}{1 - 0.2} \right)^{2} \right\rbrack }{P\left( h_{r} \right) = \frac{\Gamma\left( a_{r}^{(h)} \right)\Gamma\left( b_{r}^{(h)} \right)}{\Gamma\left( {a_{r}^{(h)}}_{r} + b_{r}^{(h)} \right)}h_{r}^{a - 1}\left( 1 - h_{r} \right)^{b - 1}}

Here, ar(h)a_{r}^{(h)} and br(h)b_{r}^{(h)} are parameters of the beta distribution, μr(h)\mu_{r}^{\text{(}\text{h}\text{)}} is the prior mean steepness for a given region (bounded between 0.2 and 1) while σr(h)\sigma_{r}^{(h)} is the standard deviation for these priors.

Recruitment Proportions

Regional recruitment is derived by apportioning a global recruitment parameter using regional recruitment proportions (i.e., μRecζr\mu^{\text{Rec}} \cdot \zeta_{r}). Here, ζr\zeta_{r} is derived via a multinomial logit transformation and Dirichlet priors can be used to help constrain estimation:

P(𝛇)=Γ(rnrαr)rnrΓ(αr)r=1nrζrαr1\begin{matrix} P\left( \mathbf{\zeta} \right) = \frac{\Gamma\left( \sum_{r}^{n_{r}}\alpha_{r} \right)}{\prod_{r}^{n_{r}}{\Gamma(\alpha_{r})}}\prod_{r = 1}^{n_{r}}\zeta_{r}^{\alpha_{r} - 1} \\ \end{matrix}

𝛇={ζ1,ζ2,,ζnr}\mathbf{\zeta} = \{\zeta_{1},\zeta_{2},\ldots,\zeta_{n_{r}}\} are the estimated recruitment proportions across regions, and αr\alpha_{r} is the concentration parameter governing the spread of the Dirichlet distribution.

Movement

Likewise, priors on movement values can be assumed to arise from a Dirichlet process:

P(𝐌.,k,y,a,s)=Γ(rnrcr,k,y,a,s)rnrΓ(cr,k,y,a,s)r=1nrMr,k,y,a,scr,k,y,a,s1\begin{matrix} P\left( \mathbf{M}_{.,k,y,a,s} \right) = \frac{\Gamma\left( \sum_{r}^{n_{r}}c_{r,k,y,a,s} \right)}{\prod_{r}^{n_{r}}{\Gamma\left( c_{r,k,y,a,s} \right)}}\prod_{r = 1}^{n_{r}}M_{r,k,y,a,s}^{c_{r,k,y,a,s} - 1} \\ \end{matrix}

where 𝐌.,k,y,a,sϵ{M1,k,y,a,s,,Mnr,k,y,a,s}\mathbf{M}_{.,k,y,a,s}\ \epsilon\ \{ M_{1,k,y,a,s,\ \ldots,\ }M_{n_{r,k,y,a,s}}\}, rr is the origin region, kk is the destination, and cr,k,y,a,sc_{r,k,y,a,s} are the concentration parameters that control the Dirichlet distribution.

Tag Reporting Rates

Two types of priors can be specified for tag reporting rates. In particular, a symmetric beta distribution is applied:

P(βr,y)=(βr,y+1e4)σr,y(β)(1βr,y+1e4)σr,y(β)\begin{matrix} P\left( \beta_{r,y} \right) = \left( \beta_{r,y} + 1e - 4 \right)^{\sigma_{r,y}^{(\beta)}}\left( 1 - \beta_{r,y} + 1e - 4 \right)^{\sigma_{r,y}^{(\beta)}} \\ \end{matrix}

Here, σr,y(β)\sigma_{r,y}^{(\beta)} determines the scale of the tag reporting parameter and determines how strongly to penalize estimates when they approach the bounds of [0,1]\lbrack 0,1\rbrack. Smaller values of σr,y(β)\sigma_{r,y}^{(\beta)} result in larger penalties, and vice versa. Thus, estimates of tag reporting rates are penalized if they are either close to 0 or 1.

Tag reporting rate priors can also be specified as a standard beta distribution:

ar(β)=μr,y(β)(σr,y(β))2br(β)=[1μr,y(β)(σr,y(β))2]P(βr,y)=Γ(ar(β))Γ(br(β))Γ(ar(β)+br(β))βr,ya1(1βr,y)b1{\begin{matrix} a_{r}^{(\beta)} = \frac{\mu_{r,y}^{(\beta)}}{\left( \sigma_{r,y}^{(\beta)} \right)^{2}} \\ \end{matrix} }{b_{r}^{(\beta)} = \left\lbrack \frac{1 - \mu_{r,y}^{(\beta)}}{\left( \sigma_{r,y}^{(\beta)} \right)^{2}} \right\rbrack }{P\left( \beta_{r,y} \right) = \frac{\Gamma\left( a_{r}^{(\beta)} \right)\Gamma\left( b_{r}^{(\beta)} \right)}{\Gamma\left( a_{r}^{(\beta)} + b_{r}^{(\beta)} \right)}\beta_{r,y}^{a - 1}\left( 1 - \beta_{r,y} \right)^{b - 1}}

Here, ar(h)a_{r}^{(h)} and br(h)b_{r}^{(h)} are the parameters describing the beta distribution, μr,y(β)\mu_{r,y}^{(\beta)} denotes the prior mean for tag reporting rates and σr,y(β)\sigma_{r,y}^{(\beta)} is the prior standard deviation.

Process Error Penalties

In addition to priors, penalties are also utilized to aid in the estimation of process errors (either penalized likelihood or integrating random effects via Laplace Approximation are possible). Currently, process errors can be specified to arise for initial age deviations, recruitment, fishing mortality, fishery and survey selectivity, and movement.

Initial Age Deviations

To estimate non-equilibrium initial age deviations, multiplicative deviations can be specified:

L(ϵr,iInit)=12πσInit2exp((ϵr,iInit)22σInit2)L\left( \epsilon_{r,i}^{\text{Init}} \right) = \frac{1}{\sqrt{2\pi\sigma_{\text{Init}}^{2}}\,}\exp\left( - \frac{\left( \epsilon_{r,i}^{\text{Init}} \right)^{2}}{2\sigma_{\text{Init}}^{2}} \right)

where deviations arise from a normal distribution with a mean of 0 and variance of σInit2\sigma_{\text{Init}}^{2}.

Recruitment Deviations

Annual recruitment deviations can also be specified, where multiplicative deviations are assumed:

L(ϵr,yRec)=12πσRec2exp((ϵr,yRec)22σRec2)L\left( \epsilon_{r,y}^{\text{Rec}} \right) = \frac{1}{\sqrt{2\pi}\sigma_{\text{Rec}}^{2}\,}\exp\left( - \frac{\left( \epsilon_{r,y}^{\text{Rec}} \right)^{2}}{2\sigma_{\text{Rec}}^{2}} \right)

and deviations are assumed to normally distributed, with a mean of 0 and variance of σRec2\sigma_{\text{Rec}}^{2}.

Fishing Mortality Deviations

Fishing mortality deviations similarly assumes multiplicative deviations:

L(ϵr,y,fFsh)=12πσr,f2Fshexp((ϵr,y,fFsh)22σr,f2Fsh)L\left( \epsilon_{r,y,f}^{\text{Fsh}} \right) = \frac{1}{\sqrt{2\pi{\sigma_{r,f}^{2}}_{\text{Fsh}}}\,}\exp\left( - \frac{\left( \epsilon_{r,y,f}^{\text{Fsh}} \right)^{2}}{2{\sigma_{r,f}^{2}}_{\text{Fsh}}} \right)

Here, fishing mortality deviations are assumed to arise from a normal distribution, with mean 0 and a variance of σr,f2Fsh{\sigma_{r,f}^{2}}_{\text{Fsh}}.

Fishery and Survey Selectivity

A variety of process error parameterizations can be specified for fishery and survey selectivity. Across all parameterizations, multiplicative deviations are assumed. In the most basic case, iid deviations can be assumed to vary about a parameter on a given selectivity functional form:

L(ϵr,y,i,s,jSel)=12πσr,i,s,j,Sel2exp((ϵr,y,i,s,jSel)22σr,i,s,j,Sel2)L\left( \epsilon_{r,y,i,s,j}^{\text{Sel}} \right) = \frac{1}{\sqrt{2\pi\sigma_{r,i,s,j,Sel}^{2}}\,}\exp\left( - \frac{\left( \epsilon_{r,y,i,s,j}^{\text{Sel}} \right)^{2}}{2\sigma_{r,i,s,j,Sel}^{2}} \right)

where ϵr,y,i,s,jSel\epsilon_{r,y,i,s,j}^{\text{Sel}} are selectivity deviations about a given parameter for region rr, year yy, parameter ii, sex ss, and fleet jj. Deviations are assumed to have a mean of 0 and a variance of σr,i,s,j,Sel2\sigma_{r,i,s,j,Sel}^{2}, constrained by a normal distribution.

Extending the iid case, random walk selectivity deviations can also be specified about a given parameter, assuming a normal distribution:

L(ϵr,y,i,s,jSel)={12π52exp((ϵr,y=1,i,s,jSel)2252),ify=1)12πσr,i,s,j,Sel2exp((ϵr,y,i,s,jSelϵr,y1,i,s,jSel)22σr,i,s,j,Sel2),ify>1)L\left( \epsilon_{r,y,i,s,j}^{\text{Sel}} \right) = \left\{ \begin{matrix} \frac{1}{\sqrt{2\pi \cdot 5^{2}}\,}\exp\left( - \frac{\left( \epsilon_{r,y = 1,i,s,j}^{\text{Sel}} \right)^{2}}{2{\cdot 5}^{2}} \right),\ if y = 1) \\ \frac{1}{\sqrt{2\pi\sigma_{r,i,s,j,Sel}^{2}}\,}\exp\left( - \frac{\left( \epsilon_{r,y,i,s,j}^{\text{Sel}} - \epsilon_{r,y - 1,i,s,j}^{\text{Sel}} \right)^{2}}{2\sigma_{r,i,s,j,Sel}^{2}} \right),if y > 1) \\ \end{matrix} \right.\

where process error deviations for the first year are initialized with a large variance. Following the first year, process error deviations follow a random walk process with a mean conditional on the previous year’s value (ϵr,y1,i,s,jSel\epsilon_{r,y - 1,i,s,j}^{\text{Sel}}) and a variance of σr,i,s,j,Sel2\sigma_{r,i,s,j,Sel}^{2}.

In addition to being constrained by a normal distribution, both iid and random walk cases have an optional additional smoothness penalty applied:

PSelYrSmooth=r=1nrj=1njs=1nsy=2nyi=1ni(ϵr,y,i,s,jSelϵr,y1,i,s,jSel)2P_{SelYrSmooth} = \sum_{r = 1}^{n_{r}}{\sum_{j = 1}^{n_{j}}{\sum_{s = 1}^{n_{s}}{\sum_{y = 2}^{n_{y}}{\sum_{i = 1}^{n_{i}}\left( \epsilon_{r,y,i,s,j}^{\text{Sel}}- \epsilon_{r,y - 1,i,s,j}^{\text{Sel}} \right)^{2}}}}}

which serves to ensure selectivity values do not vary drastically from year-to-year.

Additionally, semi-parametric deviations can also be specified. In total, there are three options that can be utilized, two of which allow age, year, and cohort correlations, while one allows for only age or length and year correlations. In the case where age, year, and cohort correlations are specified (note that this is only possible when age-based selectivity is specified), marginal stationary variance and a conditional non-stationary variance can be invoked. The primary difference between the two is that the marginal variance version does not have a closed form solution for 𝛀\mathbf{\Omega} (see equations below) and needs to be iteratively solved, while the conditional variance version has a closed form solution. The following equations describe the conditional variance version:

𝛜r,s,jSel=vec(ϵr,y,a,s,jSel)\mathbf{\epsilon}_{r,s,j}^{\text{Sel}}\mathbf{=}vec\left( \epsilon_{r,y,a,s,j}^{\text{Sel}} \right)

where we vectorize the selectivity deviations across its year and age dimensions. These deviations are then assumed to arise from a multivariate normal distribution (or Gaussian Markov Random Field) with a covariance matrix (𝚺=𝐐1\mathbf{\Sigma} = \mathbf{Q}^{- 1}) determined by:

Q=(I(B)T)𝛀(IB)diag(𝛀)=σr,s,j,Sel2\begin{matrix} \text{Q} = \left( \text{I} - \left( \text{B} \right)^{T} \right)\mathbf{\Omega}\left( \text{I} - \text{B} \right) \\ \text{diag}\left( \mathbf{\Omega} \right) = \sigma_{r,s,j,Sel}^{- 2} \\ \end{matrix}

Here, I\text{I} is an identity matrix and 𝛀\mathbf{\Omega} is a diagonal matrix that determines the variance of the multivariate normal process. B\text{B} is a square matrix representing the partial effect of 𝛜r,s,jSel\mathbf{\epsilon}_{r,s,j}^{\text{Sel}} on preceding ages and/or years, governed by partial correlation coefficients for ages, years, and cohorts. To demonstrate the formulation of B\text{B}, a simplified example is provided with rows representing ages aϵ{1,2}a\ \epsilon\ \{ 1,2\} and columns representing years yϵ{1,2}y\ \epsilon\ \{ 1,2\}. In this example, B\text{B} is a 4x44\ x\ 4 matrix, where both the rows and columns represent combinations of age and year. For instance, B1,2B_{1,2} captures the correlation within the same year between age 1 in year 1, and age 2 in year 1, whereas B4,1B_{4,1} constructs the correlation within the same cohort between age 1 in year 1, and age 2 in year 2:

𝐁=[1000ρy000ρa000ρcρaρy0]\begin{matrix} \mathbf{B} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ \rho_{y} & 0 & 0 & 0 \\ \rho_{a} & 0 & 0 & 0 \\ \rho_{c} & \rho_{a} & \rho_{y} & 0 \\ \end{bmatrix} \\ \end{matrix}

where ρy\rho_{y}, ρa\rho_{a}, and ρc\rho_{c} are parameters describing the partial autocorrelation among years within a given age, among ages within a given year, and years within a cohort, respectively. The multivariate likelihood is then defined as:

L(𝛜r,s,jSel)=|𝐐|1/2(2π)n2exp(12(𝛜r,s,jSel)T𝐐(𝛜r,s,jSel))L\left( \mathbf{\epsilon}_{r,s,j}^{\text{Sel}} \right) = \frac{\left| \mathbf{Q} \right|^{1/2}}{(2\pi)^{\frac{n}{2}}}\exp\left( - \frac{1}{2}\left( \mathbf{\epsilon}_{r,s,j}^{\text{Sel}} \right)^{T}\mathbf{Q}\left( \mathbf{\epsilon}_{r,s,j}^{\text{Sel}} \right) \right)

If age or length and year correlations are specified (i.e., a two-dimensional autoregressive structure), a multivariate normal likelihood is similarly assumed (i.e., the equation described above), but the covariance structured of this process is defined as:

Q1=σr,s,j,Sel2(1ρy)2(1ρb)2RyRb\text{Q}^{- 1} = \frac{\sigma_{r,s,j,Sel}^{2}}{\left( 1 - \rho_{y} \right)^{2}\left( 1 - \rho_{b} \right)^{2}}\text{R}_{y} \otimes \text{R}_{b}

where ρy\rho_{y} and ρb\rho_{b} are correlation coefficients across years and bins, respectively. Ry\text{R}_{y} is a ny×nyn_{y} \times n_{y} matrix representing a first-order autoregressive process across years and Rb\text{R}_{b} is a nb×nbn_{b} \times n_{b} matrix representing a first-order autoregressive process across bins.

Moreover, when semi-parametric deviations are specified, additional optional penalties can be applied across bins and years to enforce curvature control:

PSelBinCurve=r=1nrj=1njs=1nsy=1nyb=2nb1(log(Selr,y,b+1,s,j)2log(Selr,y,b,s,j)log(Selr,y,b1,s,j))2P_{SelBinCurve} = \sum_{r = 1}^{n_{r}}{\sum_{j = 1}^{n_{j}}{\sum_{s = 1}^{n_{s}}{\sum_{y = 1}^{n_{y}}{\sum_{b = 2}^{n_{b} - 1}\left( \log\left( {Sel}_{r,y,b + 1,s,j} \right) - 2\log\left( {Sel}_{r,y,b,s,j} \right)\log\left( {Sel}_{r,y,b - 1,s,j} \right) \right)^{2}}}}}

PSelYrCurve=r=1nrj=1njs=1nsy=2ny1b=1nb(log(Selr,y+1,b,s,j)2log(Selr,y,b,s,j)log(Selr,y1,b,s,j))2P_{SelYrCurve} = \sum_{r = 1}^{n_{r}}{\sum_{j = 1}^{n_{j}}{\sum_{s = 1}^{n_{s}}{\sum_{y = 2}^{n_{y} - 1}{\sum_{b = 1}^{n_{b}}\left( \log\left( {Sel}_{r,y + 1,b,s,j} \right) - 2\log\left( {Sel}_{r,y,b,s,j} \right)\log\left( {Sel}_{r,y - 1,b,s,j} \right) \right)^{2}}}}}

Movement

Process error deviations can also be specified for movement parameters. Currently, only iid deviations are allowed, where deviations are placed upon fixed-effects movement parameters in logit space:

ωr,k,y,a,s=ωr,k,s+ϵr,k,y,a,sMove\omega_{r,k,y,a,s} = \omega_{r,k,s} + \epsilon_{r,k,y,a,s}^{\text{Move}}

where ωr,k,y,a,s\omega_{r,k,y,a,s} are movement parameters in logit space for origin rr, destination kk, year yy, age aa, and sex ss, and ωr,k,s\omega_{r,k,s} are the corresponding fixed effects (the mean logits). Here, ϵr,k,y,a,sMove\epsilon_{r,k,y,a,s}^{\text{Move}} are movement deviations specified in logit space. Deviations then arise from a normal distribution with process variation constrained by σr,a,s,Move2\sigma_{r,a,s,Move}^{2}:

L(ϵr,1,y,a,sMove)=12πσr,a,s,Move2exp((ϵr,1,y,a,sMove)22σr,a,s,Move2)L\left( \epsilon_{r, - 1,y,a,s}^{\text{Move}} \right) = \frac{1}{\sqrt{2\pi\sigma_{r,a,s,Move}^{2}}\,}\exp\left( - \frac{\left( \epsilon_{r, - 1,y,a,s}^{\text{Move}} \right)^{2}}{2\sigma_{r,a,s,Move}^{2}} \right)

Thus, process variation can be distinct for a given origin region, age, and sex. Because logits are parameterized with a reference category, only nr1n_{r} - 1 logits (and their deviations) are estimated per origin rr, ensuring the sum-to-one constraint on destination probabilities.

Joint Likelihood

Lastly, the joint likelihood to be minimized represents the sum of all observational likelihood components, priors, and penalties defined above:

Joint Likelihood=Observation Likelihoods+Priors+Penalties\begin{matrix} \text{Joint Likelihood} = \sum\text{Observation\ Likelihoods} + \sum\text{Priors} + \sum\text{Penalties} \\ \end{matrix}

Note that some of these components may be zero (i.e., if no priors are used) depending on the configuration of the model.

References

Kristensen, K., Nielsen, A., Berg, C.W., Skaug, H., Bell, B., 2016. TMB: Automatic Differentiation and Laplace Approximation. J. Stat. Soft. 70. https://doi.org/10.18637/jss.v070.i05

Mace, P.M., Doonan, I.J., 1988. A Generalised Bioeconomic Simulation Model for Fish Population Dynamics. MAFFish, N.Z. Ministry of Agriculture and Fisheries.

McGarvey, R., Feenstra, J.E., 2002. Estimating rates of fish movement from tag recoveries: conditioning by recapture. Can. J. Fish. Aquat. Sci. 59, 1054–1064. https://doi.org/10.1139/f02-080

Methot, R.D., Taylor, I.G., 2011. Adjusting for bias due to variability of estimated recruitments in fishery assessment models. Can. J. Fish. Aquat. Sci. 68, 1744–1760. https://doi.org/10.1139/f2011-092

Monnahan, C.C., 2024. Toward good practices for Bayesian data-rich fisheries stock assessments using a modern statistical workflow. Fisheries Research 275, 107024. https://doi.org/10.1016/j.fishres.2024.107024

Thorson, J.T., Johnson, K.F., Methot, R.D., Taylor, I.G., 2017. Model-based estimates of effective sample size in stock assessment models using the Dirichlet-multinomial distribution. Fisheries Research 192, 84–93. https://doi.org/10.1016/j.fishres.2016.06.005