conv_selpar: Selectivity at age and length

View source: R/selectivity.R

conv_selparR Documentation

Selectivity at age and length

Description

Calculate selectivity at age and length from a matrix of parameters.

  • conv_selpar() converts parameters from log or logit space to real units.

  • calc_sel_len() calculates selectivity at length.

  • calc_fsel_age() calculates selectivity at age for fisheries, and coordinates dummy fleets.

  • calc_isel_age() calculates selectivity at age for indices, and can map selectivity from fisheries or population parameters (e.g, mature or total biomass).

Usage

conv_selpar(x, type, maxage, maxL)

calc_sel_len(sel_par, lmid, type)

calc_fsel_age(
  sel_len,
  LAK,
  type,
  sel_par,
  sel_block = seq(1, length(type)),
  mat,
  a = seq(1, nrow(LAK)) - 1
)

calc_isel_age(
  sel_len,
  LAK,
  type,
  sel_par,
  fsel_age,
  maxage,
  mat,
  a = seq(1, nrow(LAK)) - 1
)

Arguments

x

Estimated parameters. Matrix ⁠[3, f]⁠

type

Character string to indicate the functional form of selectivity. Options include: ⁠"logistic_length", "dome_length", "logistic_age", "dome_age"⁠, an integer (f) to map index selectivity to the corresponding fleet f (will be coerced to integer), "SB" to fix to maturity at age schedule, or "B" to fix to 1 for all ages.

maxage

Maximum value of the age of full selectivity

maxL

Maximum value of the length of full selectivity

sel_par

Matrix of parameters returned by conv_selpar()

lmid

Midpoints of length bins for calculating selectivity at length

sel_len

Selectivity at length matrix returned by calc_sel_len()

LAK

Length-at-age probability matrix. Matrix ⁠[a, length(lmid)]⁠

sel_block

Integer vector. Length length(type). See details below.

mat

Maturity at age vector

a

Integer vector of ages corresponding to the rows of LAK (as well as mat)

fsel_age

Matrix returned by calc_fsel_age()

Value

conv_selpar() returns a matrix of the same dimensions as x.

calc_sel_len() returns a matrix ⁠[l, f]⁠, i.e., ⁠[length(lmid), length(type)]⁠.

calc_fsel_age() returns a matrix ⁠[a, f]⁠, i.e., ⁠[a, length(sel_block)]⁠

calc_isel_age() returns a matrix ⁠[a, i]⁠, i.e., ⁠[a, length(type)]⁠

Converting selectivity parameters (conv_selpar)

The first row of x corresponds to the length or age of full selectivity: \mu_f = L_{max}/(1 + \exp(-x_{1,f}))

The second row of x corresponds to the width of the ascending limb for selectivity: \sigma_f^{asc} = \exp(x_{2,f})

The third row of x corresponds to the width of the descending limb for selectivity (if dome-shaped): \sigma_f^{des} = \exp(x_{3,f})

Length selectivity (calc_sel_len)

The selectivity at length is

s_{\ell} = \begin{cases} \exp(\alpha) & L_{\ell} < \mu_f\\ \exp(\beta) & L_{\ell} \ge \mu_f\\ \end{cases}

where \alpha = -0.5(L_\ell - \mu_f)^2/(\sigma_f^{asc})^2 and \beta = -0.5(L_\ell - \mu_f)^2/(\sigma_f^{des})^2

Age selectivity (calc_fsel_age)

The equivalent selectivity at age is converted from the length values (sel_len) as

s_a = \sum_\ell s_\ell \times \textrm{Prob}(L_{\ell}|a)

If selectivity is explicitly in age units, then the values are directly calculated from parameters in sel_par.

Vector sel_block assigns the output selectivity from a different column of the input matrix and facilitates time-varying selectivity in time blocks. For example, sel_block[1] <- 2 means that selectivity values in the first column of the output is based on the second column of the input matrices (sel_len[, 2] or sel_par[, 2]).


multiSA documentation built on March 21, 2026, 1:06 a.m.