Summarizing Management Procedure Performance

summary Table

The summary function provides information on the performance of the Management Procedures with respect to the performance metrics. By default, summary includes the PNOF, P50, AAVY and LTY performance metrics:

summary(MSE)
## Calculating Performance Metrics
##                                       Performance.Metrics 
## 1                 Probability of not overfishing (F<FMSY) 
## 2                      Spawning Biomass relative to SBMSY 
## 3        Average Annual Variability in Yield (Years 1-50) 
## 4 Average Yield relative to Reference Yield (Years 41-50) 
##                                             
## 1              Prob. F < FMSY (Years 1 - 50)
## 2        Prob. SB > 0.5 SBMSY (Years 1 - 50)
## 3              Prob. AAVY < 20% (Years 1-50)
## 4 Prob. Yield > 0.5 Ref. Yield (Years 41-50)
## 
## 
## Performance Statistics:
##          MP PNOF  P50 AAVY  LTY
## 1   curEref 0.22 0.38 0.33 0.53
## 2   FMSYref 0.50 0.89 0.33 1.00
## 3 FMSYref50 1.00 0.99 0.33 1.00
## 4 FMSYref75 0.89 0.97 0.33 1.00
## 5     NFref 1.00 0.99 0.33 0.00

It is straightforward to include other PM functions by adding the names of the PM functions, for example:

summary(MSE, 'P100', 'Yield')
## Calculating Performance Metrics
##                              Performance.Metrics 
## 1             Spawning Biomass relative to SBMSY 
## 2 Yield relative to Reference Yield (Years 1-50) 
##                                   
## 1  Prob. SB > SBMSY (Years 1 - 50)
## 2 Mean Relative Yield (Years 1-50)
## 
## 
## Performance Statistics:
##          MP P100   Yield
## 1   curEref 0.13 8.4e-01
## 2   FMSYref 0.30 1.0e+00
## 3 FMSYref50 0.87 8.6e-01
## 4 FMSYref75 0.72 1.0e+00
## 5     NFref 0.95 4.8e-15

or all available PM functions:

summary(MSE, avail('PM'))
## Searching for objects of class PM in package: MSEtool
## Searching for objects of class PM in package: SAMtool
## Searching for objects of class PM in package: DLMtool
## Calculating Performance Metrics
##                                       Performance.Metrics 
## 1       Average Annual Variability in Effort (Years 1-50) 
## 2        Average Annual Variability in Yield (Years 1-50) 
## 3 Average Yield relative to Reference Yield (Years 41-50) 
## 4                      Spawning Biomass relative to SBMSY 
## 5                      Spawning Biomass relative to SBMSY 
## 6                      Spawning Biomass relative to SBMSY 
## 7                 Probability of not overfishing (F<FMSY) 
## 8  Average Yield relative to Reference Yield (Years 1-10) 
## 9          Yield relative to Reference Yield (Years 1-50) 
##                                             
## 1              Prob. AAVE < 20% (Years 1-50)
## 2              Prob. AAVY < 20% (Years 1-50)
## 3 Prob. Yield > 0.5 Ref. Yield (Years 41-50)
## 4        Prob. SB > 0.1 SBMSY (Years 1 - 50)
## 5            Prob. SB > SBMSY (Years 1 - 50)
## 6        Prob. SB > 0.5 SBMSY (Years 1 - 50)
## 7              Prob. F < FMSY (Years 1 - 50)
## 8  Prob. Yield > 0.5 Ref. Yield (Years 1-10)
## 9           Mean Relative Yield (Years 1-50)
## 
## 
## Performance Statistics:
##          MP AAVE AAVY  LTY  P10 P100  P50 PNOF  STY   Yield
## 1   curEref    1 0.33 0.53 0.95 0.13 0.38 0.22 0.93 8.4e-01
## 2   FMSYref    1 0.33 1.00 1.00 0.30 0.89 0.50 0.87 1.0e+00
## 3 FMSYref50    1 0.33 1.00 1.00 0.87 0.99 1.00 0.70 8.6e-01
## 4 FMSYref75    1 0.33 1.00 1.00 0.72 0.97 0.89 0.83 1.0e+00
## 5     NFref    1 0.33 0.00 1.00 0.95 0.99 1.00 0.00 4.8e-15

The summary function returns a data frame which can be useful for referring to the PM results elsewhere in the analysis. For example,

Results <- summary(MSE, avail('PM'), silent=TRUE) # silent=TRUE to hide print-out to console
## Searching for objects of class PM in package: MSEtool
## Searching for objects of class PM in package: SAMtool
## Searching for objects of class PM in package: DLMtool
Results$Yield # access the PM results
## [1] 8.4e-01 1.0e+00 8.6e-01 1.0e+00 4.8e-15

Trade-Off Plots

The TradePlot function takes an object of class MSE and the names of PM functions (at least 2) to produce a trade-off plot. For example:

TradePlot(MSE) # default plot 

##          MP  STY  LTY  P10 AAVY Satisificed
## 1   curEref 0.93 0.53 0.95 0.33       FALSE
## 2   FMSYref 0.87 1.00 1.00 0.33       FALSE
## 3 FMSYref50 0.70 1.00 1.00 0.33       FALSE
## 4 FMSYref75 0.83 1.00 1.00 0.33       FALSE
## 5     NFref 0.00 0.00 1.00 0.33       FALSE

The order of the PM function names determines plotting on the x and y axes. For example:

TradePlot(MSE, 'P50' ,'LTY')  # x = P50, y  = LTY

##          MP  P50  LTY Satisificed
## 1   curEref 0.38 0.53        TRUE
## 2   FMSYref 0.89 1.00        TRUE
## 3 FMSYref50 0.99 1.00        TRUE
## 4 FMSYref75 0.97 1.00        TRUE
## 5     NFref 0.99 0.00       FALSE
TradePlot(MSE, 'LTY' ,'P50')  # x = LTY, y = P50

##          MP  LTY  P50 Satisificed
## 1   curEref 0.53 0.38        TRUE
## 2   FMSYref 1.00 0.89        TRUE
## 3 FMSYref50 1.00 0.99        TRUE
## 4 FMSYref75 1.00 0.97        TRUE
## 5     NFref 0.00 0.99       FALSE

The PMs are recycled if an odd number are provided:

TradePlot(MSE, 'P50' ,'LTY', 'STY') 
## Odd number of PMs. Recycling first PM

##          MP  P50  LTY  STY Satisificed
## 1   curEref 0.38 0.53 0.93        TRUE
## 2   FMSYref 0.89 1.00 0.87        TRUE
## 3 FMSYref50 0.99 1.00 0.70       FALSE
## 4 FMSYref75 0.97 1.00 0.83        TRUE
## 5     NFref 0.99 0.00 0.00       FALSE

The Lims argument is used to set the vertical and horizontal acceptable risk thresholds and are interpreted in the same order as the names of the PM functions. For example:

TradePlot(MSE, 'P50' ,'LTY', Lims=c(0.8, 0))  # 80% minimum acceptable risk for P50, no minimum for LTY

##          MP  P50  LTY Satisificed
## 1   curEref 0.38 0.53       FALSE
## 2   FMSYref 0.89 1.00        TRUE
## 3 FMSYref50 0.99 1.00        TRUE
## 4 FMSYref75 0.97 1.00        TRUE
## 5     NFref 0.99 0.00       FALSE
TradePlot(MSE, 'P50' ,'STY', 'P100', 'LTY', Lims=c(0.8, 0, 0.5, 0))  # 80% minimum acceptable risk for P50, 50% for P100, no minimum for STY and LTY

##          MP  P50  STY P100  LTY Satisificed
## 1   curEref 0.38 0.93 0.13 0.53       FALSE
## 2   FMSYref 0.89 0.87 0.30 1.00       FALSE
## 3 FMSYref50 0.99 0.70 0.87 1.00        TRUE
## 4 FMSYref75 0.97 0.83 0.72 1.00        TRUE
## 5     NFref 0.99 0.00 0.95 0.00       FALSE

The TradePlot function returns a data frame with the results of the performance metrics, and a column indicating if an MP has met minimum performance criteria for all performance metrics. In the previous example, 2 MPs (FMSYref50, FMSYref75) met the minimum performance criteria for all four performance metrics.

The TradePlot function can be used to make a variety of custom trade-off plots. For example, the Tplot, Tplot2, and Tplot3 functions all use this function to produce different trade-off plots:

Tplot
## function(MSEobj, Lims=c(0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5), ...) {
##   if (class(Lims)!="numeric") stop("Second argument must be numeric")
##   TradePlot(MSEobj, Lims=Lims, PMlist=list("PNOF", "LTY", "P100", "LTY", "P50", "LTY", "P10", "LTY"),  ...)
## }
## <bytecode: 0x000000001f828df0>
## <environment: namespace:MSEtool>
Tplot(MSE)

##          MP PNOF  LTY P100  P50  P10 Satisificed
## 1   curEref 0.22 0.53 0.13 0.38 0.95       FALSE
## 2   FMSYref 0.50 1.00 0.30 0.89 1.00       FALSE
## 3 FMSYref50 1.00 1.00 0.87 0.99 1.00        TRUE
## 4 FMSYref75 0.89 1.00 0.72 0.97 1.00        TRUE
## 5     NFref 1.00 0.00 0.95 0.99 1.00       FALSE

Similarly, we can easily reproduce NOAA_plot using the Tradeplot function:

NOAA_plot(MSE)
##            PNOF  B50   LTY   VY
## curEref    22.0 38.0  33.3 33.3
## FMSYref    50.0 89.3 100.0 33.3
## FMSYref50 100.0 99.3 100.0 33.3
## FMSYref75  88.7 97.3 100.0 33.3
## NFref     100.0 99.3   0.0 33.3
TradePlot(MSE, Lims=c(0.5, 0, 0.8, 0.5), 
          PMlist=list("PNOF", "LTY", "P50", "AAVY"), Refs=list(AAVY=0.15))

##          MP PNOF  LTY  P50 AAVY Satisificed
## 1   curEref 0.22 0.53 0.38 0.33       FALSE
## 2   FMSYref 0.50 1.00 0.89 0.33       FALSE
## 3 FMSYref50 1.00 1.00 0.99 0.33       FALSE
## 4 FMSYref75 0.89 1.00 0.97 0.33       FALSE
## 5     NFref 1.00 0.00 0.99 0.33       FALSE