Sets up the list of parameters, map of parameters (see map argument in TMB::MakeADFun()), and identifies some random effects parameters
based on the input data and some user choices on model configuration.
These functions provide a template for the parameter and map setup that can be adjusted for alternative configurations. check_parameters()
checks whether custom made parameter lists are of the correct dimension.
Usage
make_parameters(
MSAdata,
start = list(),
map = list(),
est_mov = c("none", "dist_random", "gravity_fixed"),
silent = FALSE,
...
)
make_map(
p,
MSAdata,
map = list(),
est_M = FALSE,
est_h = FALSE,
est_mat = FALSE,
est_sdr = FALSE,
est_mov = c("none", "dist_random", "gravity_fixed"),
est_qfs = FALSE,
silent = FALSE
)
check_parameters(p = list(), map, MSAdata, silent = FALSE)Arguments
- MSAdata
S4 data object
- start
An optional list of parameters. Named list of parameters with the associated dimensions and transformations below. Overrides default values created by
make_parameters().- map
List of mapped parameters. Used by
check_parameters()only to count parameters.- est_mov
Character describing structure of stock movement parameters. Only used if map arguments for the movement parameters is NULL. See details below.
- silent
Logical, whether
make_map()reports messages to the console- ...
Various arguments for
make_map()(could be important!)- p
List of parameters, e.g., returned by
make_parameters()- est_M
Logical, estimate natural mortality? Only used if
map$log_M_sis NULL- est_h
Logical, estimate steepness? Only used if
map$t_h_sis NULL- est_mat
Logical, estimate maturity? Only used if
map$mat_psis NULL- est_sdr
Logical, estimate standard deviation of recruitment deviates? Only used if
map$log_sdr_sis NULL- est_qfs
Logical, estimate relative catchability of stocks by each fleet? Fix
log_q_fsfor the first stock ifTRUE. Only used ifmap$log_q_fsis NULL
Value
make_parameters() returns a list of parameters ("p") concatenated with the output of make_map().
make_map() returns a named list containing parameter mappings ("map") and a character vector of random effects ("random").
check_parameters() invisibly returns the parameter list if no problems are encountered.
Parameters
Generally parameter names will have up to three components, separated by underscores.
For example, log_M_s represents the natural logarithm of natural mortality, and is a vector by stock s.
The first component describes the transformation from the estimated parameter space to the normal parameter space,
frequently, log or logit. Prefix t indicates some other custom transformation that is described below.
Second is the parameter name, e.g., M for natural mortality, rdev for recruitment deviates, etc.
Third is the dimension of the parameter variable and the indexing for the vectors, matrices, and arrays, e.g., y for year, s for stock.
See MSAdata. Here, an additional index p represents some other number of parameters that is described below.
t_R0_sVector by
s. Unfished recruitment, i.e., intersection of unfished replacement line and average stock recruit function, is represented as:R0_s <- exp(t_R0_s) * MSAdata@Dmodel@scale_s. By default,t_R0_s = 3t_h_sVector by
s. Steepness of the stock-recruit function. Logit space for Beverton-Holt and log space for Ricker functions. Default steepness value of 0.8mat_psMatrix
[2, s]. Maturity parameters (can be estimated or specified in data object). Logistic functional form. The parameter in the first row is the age of 50 percent maturity in logit space:a50_s <- plogis(mat_ps[1, ] * na). In the second row is the age of 95 percent maturity as a logarithmic offset:a95_s <- a50_s + exp(mat_ps[2, ]). Defaulta50_s <- 0.5 * naanda95_s <- a50_s + 1log_M_sVector by
s. Natural logarithm of natural mortality (can be estimated or specified in data object). Default parameter value for all stocks:M <- -log(0.05)/MSAdata@Dmodel@nalog_rdev_ysMatrix
[y, s]. Log recruitment deviations. By default, all start values are at zero.log_sdr_sVector by
s. log-Standard deviation of the log recruitment deviations. Default SD = 0.4log_q_fsMatrix
[f, s]. The natural logarithm ofq_fs, the relative fishing efficiency offfor stocks. Equal values imply equal catchability of all stocks. See equations incalc_F(). Default sets all values to zero.log_Fdev_ymfrArray
[y, m, f, r]. Fishing mortality parameters. For each fleet, the log of F is estimated directly for the reference year, season, region. For other strata, F is an offset from this value: $$ F_{y,m,f,r} = \begin{cases} \exp(x^{\textrm{Fmult}}_f) \quad & y = y_{\textrm{ref}}, m = m_{\textrm{ref}}, r = r_{\textrm{ref}}\\ \exp(x^{\textrm{Fmult}}_f + x^{\textrm{Fdev}}_{y,m,r}) \quad & \textrm{otherwise} \end{cases} $$sel_pfMatrix
[3, f]. Fishery selectivity parameters in logit or log space. See equationsconv_selpar(), wheresel_pfis thexmatrix.sel_piMatrix
[3, i]. Index selectivity parameters in logit or log space. See equationsconv_selpar(), wheresel_piis thexmatrix.mov_x_marrsArray
[m, a, r, r, s]. Base movement matrix. Set to -1000 to effectively exclude movements from region pairs. See equations inconv_mov()mov_g_ymarsArray
[y, m, a, r, s]. Attractivity term in gravity model for movement. Ifxandvare zero, this matrix specifies the distribution of total stock abundance into the various regions. See equations inconv_mov()mov_v_ymasArray
[y, m, a, s]. Viscosity term in gravity model for movement. See equations inconv_mov()log_sdg_rsArray
[r, s]. Marginal log standard deviation in the stock distribution (mov_g_ymars) among regions for stocks. Only used whenest_mov = "dist_random". Default SD of 0.1.t_corg_psArray
[sum(1:(nr - 1)), s]. Lower triangle of the correlation matrix formov_g_ymars, to be obtained with the Cholesky factorization. Only used whenest_mov = dist_random. Default values of zero.log_initF_mfrArray
[m, f, r]. Initial F corresponding to the equilibrium catch.log_initrdev_asArray
[na - 1, s]. Recruitment deviations for the initial abundance-at-age vector.
Start list
Users can provide R0_s and h_s in the start list. make_parameters() will make the appropriate transformation for the starting values
of t_R0_s and t_h_s, respectively.
Movement setup for make_map()
If a single region model or est_mov = "none": no movement parameters are estimated.
If est_mov = "dist_random": fix all values for mov_x_marrs and mov_v_ymas. Fix mov_g_ymars for the first region for each year,
season, age, and stock. mov_g_ymars are random effects.
If est_mov = "gravity_fixed": fix all values for mov_x_marrs. Fix mov_g_ymars for the first region for each year,
season, age, and stock. Estimate all mov_v_ymas. Both mov_g_ymars and mov_v_ymas are fixed effects.
By default p$mov_x_marrs is zero. Set to -1000 for areas for which there is no abundance of a particular stock.