nmfs-ost / ss3-source-code

The source code for Stock Synthesis (SS3).
https://nmfs-ost.github.io/ss3-website/
Creative Commons Zero v1.0 Universal
36 stars 16 forks source link

[Feature]: Log scale outputs #547

Open e-perl-NOAA opened 8 months ago

e-perl-NOAA commented 8 months ago

Describe the solution you would like.

Producing log scale outputs for approaches like MVLN is a feature that some users would find useful. See APPROXIMATION OF KOBE POSTERIORS FROM STOCK SYNTHESIS FOR NORTH ATLANTIC BLUE SHARK and ss3diags use of MVLN (download to view plots or go back to Vignettes folder and go to the .rmd version of ss3diags_handbook to view markdown version).

The requested option already exists. See below from a starter file:

102 # Depletion basis:  denom is: 0=skip; 1=X*SPBvirgin; 2=X*SPBmsy; 3=X*SPB_styr; 4=X*SPB_endyr; 5=X*dyn_Bzero;  values>=11 invoke N multiyr (up to 9!) with 10's digit; >100 invokes log(ratio)
1 # Fraction (X) for Depletion denominator (e.g. 0.4)
1 # SPR_report_basis:  0=skip; 1=(1-SPR)/(1-SPR_tgt); 2=(1-SPR)/(1-SPR_MSY); 3=(1-SPR)/(1-SPR_Btarget); 4=rawSPR
3 # F_std_reporting_units: 0=skip; 1=exploitation(Bio); 2=exploitation(Num); 3=sum(Apical_F's); 4=mean F for range of ages (numbers weighted); 5=unweighted mean F for range of ages
#COND 10 15 #_min and max age over which mean F will be calculated with F_reporting=4 or 5
102 # F_std_scaling: 0=no scaling; 1=F/Fspr; 2=F/Fmsy; 3=F/Fbtgt; where F means annual F_std, Fmsy means F_std@msy; values >=11 invoke N multiyr (up to 9!) using 10's digit; >100 invokes log(ratio)

This request also was in #79 . It was implemented in ~March 2022 probably with 3.30.19. However, it was not added to the change log or issue tracker.

@e-perl-NOAA Please check the User Manual to see if this in documented in the starter.ss section.

Describe alternatives you have considered

Having users approximate/calculate log scale outputs from normal outputs.

Statistical validity, if applicable

A comparison of MVLN to MCMC seems like an avenue people are looking into.

Describe if this is needed for a management application

No.

Additional context

No response

Henning-Winker commented 8 months ago

I note that the existing features:

102 # Depletion basis: denom is: >100 invokes log(ratio) 102 # F_std_scaling: >100 invokes log(ratio)

Can be readily implemented for the production of Kobe plots and Kobe-2-strategy matrices in tuna RFMOs, where log(SSB/SSBmsy) and log(F/Fmsy) tend to be quantities of interest (but not always), assuming these are the log(ratio).

To gain full flexibility for producing decision tables, all possible settings for Depletion basis, F_std_scaling as well as log(SSB), log(SSB0), log(R0), log(F_Btgt) should be generated on log-scale.

This is noting that

0 # F_std_scaling: 0=no scaling

Is the preferred option as it allows to work out the covariance for any F target (Fspr, Fsb, Fmsy, F0.1), see:

https://github.com/jabbamodel/ss3diags/blob/master/Vignette/ss3diags_handbook.pdf

e-perl-NOAA commented 8 months ago

@Rick-Methot-NOAA In the section on the starter file, on pages 15 and 17 it describes those options SS330_User_Manual.pdf