IMPORTANT

  • This will be the last release for models allowing only 1 stock and 1 region.
  • The single-stock version will live on as the single_wham branch of the WHAM repository, but no further development will occur. Only bug fixes will be addressed.

Bug fixes

  • Fix bug in reporting of NAA autocorrelation parameters in parameter table. ddad93c
  • Fix bug in projections for models with q random effets. 503fefc
  • Fix recruitment decoupling configuration bug. 18063fa

Minor improvements

  • Added option to bias-correct SSB/R and Y/R calculations for BRPs. Long-term projections can then be consistent with static BRPs. 4dade43
  • Added option to make recruitment in projection years consistent with that used for prevailing SPR-based BRPs 4edf29a
  • Added option to specify WAA and maturity in projection years. d6f82f1
  • Added option to decouple recruitment random effects from those for older ages when NAA_re$sigma = “rec+1”. a7880bf
  • Linear parameterization of Dirichlet-multinomial dispersion parameter option for age composition likelihood added Thorson et al. 2017 e3ab77b. Effective sample size is reported for both Dirichlet-multinomial likelihood options.

Bug fixes

  • Fixed bug in make_osa_residuals when checking for a data frame. 9f65ad6
  • Fix bug in NAA reporting simulated models with projection years when holding process errors constant in data years. 22633c
  • Fixed bug in fit_peel function when modeling random effects on catchability. a7880bf
  • Fixed issue in multinomial, D-M, MVTweedie likelihoods when selectivity = 0 for some ages with age-specific selectivity configuration issue 80 ad22b8a
  • Fixed NaN issue in multinomial for extremely small (e.g. 1e-17) predicted proportions issue 76 99ec44f
  • Fix incorrect flag for simulating catch age composition data and incorrect indexing for years to average over for SPR inputs 4f06dc7
  • Fixed bug in reporting correlation parameter estimates in pdf/html tables 31ea94b
  • Fixed bug in setting up catch age comp observations when ages are omitted due to selectivity=0 6667efa
  • Fixed reference point estimation and use in projections when there are multiple fleets 65c0130 b4c1ca3.

Major improvements

  • Improved stability and reliability of one-step-ahead residuals for age compositon observations for most log-likelihoods 037b714.
  • Multivariate Tweedie age composition likelihood option added (Thorson et al. in press) 6f77c16.

Minor improvements

  • Added exported make_osa_residuals function that can make OSA residuals from an object returned by fit_wham where it is also used internally with do.osa=TRUE 1616ade.
  • Added ability to specify different F options for each year of projections to project_wham and prepare_projection f763059
  • Revised vignette on simulation studies f763059

Bug fixes

  • Fix some plotting errors when there are multiple fleets and when there is no age comp for some fleets or indices 83f23ff
  • Fix age comp observations when selectivity is assumed 0 for one or more age classes (needed for osa obs) 7bba974
  • Fix bug in simulation of selectivity random effects with “ar1_y” or “ar1” option 190000c
  • Fix bug in simulation of M random effects with “ar1_y” option 77bbd94
  • Fix bug in check_projF which tests whether the F in projections is being specified correctly when FXSPR or F at catch is specified c643d4b
  • Fix index proportions at age data specification in basic_info issue 64 a3e3afc
  • Fix age of full selection for N1_model = 1 issue 56 865ca3d.

Major improvements

  • One-step-ahead prediction quantile residuals for age compositon observations for most log-likelihoods (Trijoulet et al. 2023) 80e3bba.
  • Can specify a prior distribution on fully-selected catchability (logit-scale) which is then estimated as a random effect fcbc604.
  • Auto-regressive random effects for fully-selected catchability fcbc604.
  • Environmental covariate effects on fully-selected catchability fcbc604.
  • One or more environmental covariates can have multiple effects on recruitment, M, and catchability fcbc604.

Minor improvements

  • Expanded set of age composition models including allowing AR1 correlation for logistic-normal 80e3bba.
  • Example 11 script and vignette (and tests) added to demonstrated extensions for modeling catchability 173555d.
  • New plots added to plot_wham_output.R and wham_plots_tables.R to include new catchability features 173555d.
  • Added reporting of SPR-based reference points that use SPR inputs averged over the same years as they would for FXSPR in projection years 5d1cd9d.
  • Fixed and generalized configuration for estimation of observation error variances for environmental covariates for prepare_wham_input (ecov$logsigma) a3328a9.
  • Added tables (html or pdf) of estimated parameters, abundance at age, and fishing mortality at age to results generated by plot_wham_output 13094c6.

Bug fixes

  • Fix age labeling for selectivity and numbers at age retro plots.
  • Fix typo in set_NAA.r for N1_model option (issue issue 55 caught by @Cole-Monnahan-NOAA).
  • Fix errors in prepare_wham_input introduced in 1.0.5 when not all index data in .dat are used (aggregate or proportion-at-age, all years or a subset) 12abdef
  • Updated version of TMBhelper::check_estimability is now internal issue 47
  • Peel which_F_age (fix error when projecting a peel doing retrospective predictions, ex9)
  • Ecov AR1 mean parameterization
  • simulation of Dirichlet-multinomial age composition (issue 49, caught by @seananderson).
  • error reported in issue 48. There is no opt element when do.fit = FALSE.
  • plot_wham_output now removes any existing plot files in the directories where plots are saved before writing files so that any orphaned files from previous fits are not included in the results and html rendering.
  • plot_wham_output now creates .png output by default because of 1) issues opening the .html in Firefox on Windows, and 2) it was annoying to close dozens of browser tabs during testing. issues 42 and 50, thanks to @ejosymart and @JDeroba.
  • set_catch bug when catch age comp data exist for some years and not others

Major improvements

  • prepare_wham_input is now modularized and can take a “basic_info” argument or generate a dummy input for fit_wham without an asap3 object. This provides better organization and helps fix the operating model/MSE features that have been broken since version 1.0.0. Options have been added to NAA_re argument to configure how initial numbers at age and recruitment are treated. Including initial parameter values. A tenth example and vignette illustrate the usage to generate an assessment model without an asap3 file and a simple management strategy evaluation 9bc161d.

Minor improvements

  • Options have been added to NAA_re argument to configure how initial numbers at age and recruitment are treated. Including initial parameter values.
  • NOAA pkgdown website template, thanks to @Bai-Li-NOAA 7618bb
  • Add ecov$ages, allows user to specify that an ecov only affects a subset of ages e6518f

Bug fixes

  • Don’t plot age comp residuals for fleets/indices/years that are not used 6876ee
  • Fix Ecov_re padding in projections with multiple ecovs that have different lags a57f3b
  • Default to use static reference points in projections (so ref pts are consistent across multiple projections) 74a6c3
  • Diagnostic plots for log catch and indices did not use bias correction issue 46. Now they do.
  • Fixed bug in index diagnostic plot when index is in biomass and age comp is in numbers.

WHAM description + simulation test paper published: https://doi.org/10.1016/j.fishres.2021.105967

Major improvements

Minor improvements

  • New save.sdrep = F option to only save summary(sdreport) instead of sdreport. Can make saved models MUCH smaller (e.g. 2 MB vs. 150 MB). (2f8875).
  • Added proj.opts$percentFXSPR option, percent of F_XSPR to use for calculating catch in projections. For example, GOM cod uses F = 75% F_XSPR, so proj.opts$percentFXSPR = 75.
  • Added proj.opts$useFMSY and proj.opts$percentFMSY options, to project population and catches at (a percentage of) F_MSY. (467532)
  • Allow peels to be projected so can do retrospective predictions, as in Fig. 4 of Xu et al. 2018. See new vignette 9. (e1e00c)

Bug fixes

  • Broken links in vignettes (thanks to @tcarruth)
  • Plotting issue with Ecov OSA residuals and peels (thanks to @h-du-pontavice, 1163df)
  • Double logistic selectivity setup in prepare_wham_input (thanks to @tcarruth, f270dd)
  • tryCatch error assignment issues (9d5c87)
  • Remove error in default projection options (percentSPR)
  • Setting up projections with multiple Ecovs (again thanks to @h-du-pontavice, 42a6a4)
  • Selectivity parameter initial values set to middle of range if unspecified in prepare_wham_input
  • Fixed fit_tmb to make $final_gradient reported by wham equivalent to sdreport()$gradient.fixed. Issue was that the model$env$last.par.best is not updated by the newton steps after optimization so model$opt$par was slightly different (10^(-7) or smaller). e20bd8
  • Factor order problem caused indices to be out of order when > 9 indices present. 9e0141
  • Fixed default determination of age corresponding to fully selected (total) fishing mortality. Now which_F_age is a vector of annual values (including projection years) and the values are reassigned after fitting before reporting. (189b6c)
  • Added check for F_XSPR to verify percent of SPR0 is correct and, in projections, catch at F from catch is verified. Initial values for these algorithms can be specified by the user. (189b6c)
  • If ecov years differ from model years, peel to same year in fit_peel (e1e00c)

Minor improvements

  • allow for multiple ecov effects on recruitment and M
  • add WHAM version to model object (version and GitHub commit). Requires sessioninfo package (within devtools).
  • for SCAA (recruitment as fixed effects), treat recruitment in projections as random effects with mean and SD calculated from model years (previously was fixed at exp(10)). This approximates ASAP + AgePro, allows for simulating projected recruitment according to the ECDF.

Bug fixes

  • clean up error messages (remove global err object) 53f5ec6
  • adjust age composition variance (tau) by effective sample size (Neff) for option 7 4c13331

Minor improvements

  • add 1e-15 to predicted proportions to make age composition likelihoods robust to 0 predictions when selAA is fixed at 0. This affects the multinomial, Dirichlet, and Dirichlet-multinomial (options 1-3), since the logistic normal (options 4-7) already did this. 88f15d4
  • specify age composition model using age_comp argument to prepare_wham_input. See ?prepare_wham_input for details. fd94b3d
  • estimate age-specific M for any age(s) (60f1358)

Bug fixes

  • check for sel par inits outside lower/upper bounds (4ed394b)
  • fleet weight-at-age pointers fixed (059e66a)
  • couple small fixes to handle multiple Ecovs (9e46b48)

Minor improvements

  • run_all_examples.R script to test all examples work
  • new vignette on debugging WHAM models

Bug fixes

  • This is the first release of WHAM.