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(
MARSdata,
start = list(),
map = list(),
est_mov = c("none", "dist_random", "gravity_fixed"),
silent = FALSE,
...
)
make_map(
p,
MARSdata,
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, MARSdata, silent = FALSE)
Arguments
- MARSdata
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. 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?
- est_h
Logical, estimate steepness?
- est_mat
Logical, estimate maturity?
- est_sdr
Logical, estimate standard deviation of recruitment deviates?
- est_qfs
Logical, estimate relative catchability of stocks by each fleet? Fix
log_q_fs
for the first stock ifTRUE
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 MARSdata. Here, an additional index p
represents some other number of parameters that is described below.
t_R0_s
Vector 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) * MARSdata@Dmodel@scale_s
. By default,t_R0_s = 3
t_h_s
Vector 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_ps
Matrix
[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 * na
anda95_s <- a50_s + 1
log_M_s
Vector 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)/MARSdata@Dmodel@na
log_rdev_ys
Matrix
[y, s]
. Log recruitment deviations. By default, all start values are at zero.log_sdr_s
Vector by
s
. log-Standard deviation of the log recruitment deviations. Default SD = 0.4log_q_fs
Matrix
[f, s]
. The natural logarithm ofq_fs
, the relative fishing efficiency off
for stocks
. Equal values imply equal catchability of all stocks. See equations incalc_F()
. Default sets all values to zero.log_Fdev_ymfr
Array
[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_pf
Matrix
[3, f]
. Fishery selectivity parameters in logit or log space. See equationsconv_selpar()
, wheresel_pf
is thex
matrix.sel_pi
Matrix
[3, i]
. Index selectivity parameters in logit or log space. See equationsconv_selpar()
, wheresel_pi
is thex
matrix.mov_x_marrs
Array
[m, a, r, r, s]
. Base movement matrix. Set to -1000 to effectively exclude movements from region pairs. See equations inconv_mov()
mov_g_ymars
Array
[y, m, a, r, s]
. Attractivity term in gravity model for movement. Ifx
andv
are zero, this matrix specifies the distribution of total stock abundance into the various regions. See equations inconv_mov()
mov_v_ymas
Array
[y, m, a, s]
. Viscosity term in gravity model for movement. See equations inconv_mov()
log_sdg_rs
Array
[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_ps
Array
[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_mfr
Array
[m, f, r]
. Initial F corresponding to the equilibrium catch.log_initrdev_as
Array
[a, 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.