nmfs-fish-tools/SSMSE

parameter deviations implemented in a "custom" list are multplied by ..._dev_se parameter

Closed this issue · 5 comments

I have been working on implementing an MSE with changing survey catchability and age selectivity parameters using the "custom" pattern and the create_future_om_list() function.

I've noticed that the deviation applied using the additive link, Py, is = base value + new value*...dev_se. (see https://nmfs-ost.github.io/ss3-doc/SS330_User_Manual_release.html#specification-of-time-varying-parameters-long-parameter-lines)

In SSMSE, the default value for ...dev_se is set to 0.5, which means the change implemented to the model is different to what you might expect based on the values provided by the future_om_list(). Should the default ...dev_se value be set to 1 to make the resulting value for Py implemented by SS more intuitive?

@charliehinchliffe thanks for reporting this! The fix you propose I think makes sense.

Could you provide a reproducible example or pinpoint where the 0.5 is set as the default value? I went looking in the codebase, but I couldn't find it.

@k-doering-NOAA I think the the values are specified in lines 45 & 46 of single_extend_OM.R

# Set up dummy time varying parameter lines for the control file and parameter file which will be added in for new data
tv_dummy <- data.frame(LO = c(0, 0), HI = c(10, 1), INIT = c(.5, .1), PRIOR = c(.5, .1), PR_SD = c(1, 1), PR_type = c(0, 0), PHASE = c(-1, -1))
tv_par_dummy <- data.frame(INIT = c(.5, .1), ESTIM = c(.5, .1))

@charliehinchliffe I believe I changed the values that should correspond with the default values for dev_se (see commit 3421358)f

Could you test to see if this works by downloading the param_devs_issue branch version of SSMSE (remotes::install_github("nmfs-fish-tools/SSMSE@param_devs_issue")) and then trying to rerun your code?

@k-doering-NOAA I've tested the changes and can confirm it works.

@charliehinchliffe great! I'll merge in the pull request #187 to main once the checks pass to make sure nothing else in SSMSE breaks.