DLMtool: Data-Limited Methods Toolkit (v1.35)

DLMtool: Data-Limited Methods Toolkit (v1.35)
Tom Carruthers∗
May 2015
Contents
1 Introduction
2
2 A note on version 1.35
2
3 Prerequisites
3
3.1
Loading the library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3.2
Unpacking data and objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3.3
Initiating the cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
4 Quick start
4
4.1
Define an operating model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4.2
Define a subset of data-limited methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
4.3
Run an MSE and plot results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
4.4
Applying methods to real data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
4.5
Conduct a sensitivity analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
5 From MSE to management recommendations
13
5.1
Building an appropriate operating model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
5.2
MSE evaluation of methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
5.3
Applying methods to our real data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
5.4
What have we learned?
26
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 Designing new methods
26
6.1
Average historical catch method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
6.2
Third-highest catch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
6.3
Fishing starting at age 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
6.4
Reducing fishing rate in area 1 by 50 per cent . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
6.5
Applying the new methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
∗ [email protected]
1
7 Managing real data
30
7.1
Importing data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
7.2
Populating a DLM data object in R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
7.3
Working with DLM data objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
8 Efficacy test of an hypothetical Marine Protected Area
8.1
Adapting an existing Stock object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 Limitations
33
36
9.1
Idealised observation models for catch composition data . . . . . . . . . . . . . . . . . . . . . . .
36
9.2
Harvest control rules must be integrated into data-limited methods . . . . . . . . . . . . . . . . .
36
9.3
Natural mortality rate at age . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
9.4
Ontogenetic habitat shifts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
9.5
Implementation error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
10 References
1
33
37
Introduction
As many as 90 per cent of the world’s fish populations have insufficient data to conduct a conventional stock
assessment (Costello et al. 2012). Although a wide range of data-limited approaches have been described in
the primary and gray literature these are not readily available, easily tested or compared. Critically, the path
forward is not clear: what methods should we be using for a given stock/fishery/data quality? What is the value
of collecting additional data? What is an appropriate stop-gap method?
DLMtool is a collaboration between the University of British Columbia and the Natural Resources Defense
Council aimed at addressing these issues by offering a powerful, transparent approach to selecting and applying
various data-limited stock assessment methods. The DLMtool takes a similar approach to Carruthers et al.
(2014) and uses Management Stratey Evaluation (MSE) and parallel computing to make powerful diagnostics
accessible. A streamlined command structure and operating model builder allow for rapid simulation testing and
graphing of results.
DLMtool is specifically designed to be extensible in order to encourage the development and testing of new
approaches for informing the management of data-limited fish stocks. The package is designed such that the
very same methods that are tested by MSE can be applied to provide real management recommendations from
real data. Easy incorporation of real data is central advantage of the software and a set of related functions
automatically detect what method can be applied given the available data and what additional data are required
to get other methods working.
2
A note on version 1.35
The package is still in a beta-testing phase but is now available on CRAN-R. If you find a bug or a problem
please send a report to [email protected] so that I can fix it!
Fundamentally the package is stochastic so if you run into problems with the code, please report it and in
the mean time simply try running it again: it might just have been a rare combination of sampled parameters
that caused the problem.
I highly recommend that you use parallel-processing. If however you abort a parallel process (e.g. runMSE())
half-way through you are in the lap of the gods! It will often be necessary to quit R and restart the code.
2
—- New to 1.35 —-
(1) Ten data-limited management procedures from Geromont and Butterworth (2014, ICES journal, doi:10.1093/icesjms/fst
CC1, CC4, LstepCC1, LstepCC4, Ltarget1, Ltarget4, Islope1, Islope4, Itarget1, Itarget4.
(2) Mark Maunders cpue index Management Procedure: SPmod, SPslope
(3) Adaptive F management procedure: Fadapt
(4) If you set reps to 1 for the MSE, methods no longer take stochastic draws of input parameters and instead
use mean values for their respective calculations.
(5) Several of the management procedures from version 1.34 have been made more reliable and now operate
under a wider range of simulated conditions.
—- Coming soon —Management procedures linked to input controls.
Spawning Potential Ratio (SPR) based MPs (e.g. Prince et al. 2014)
3
Prerequisites
At the start of every session there are a few things to do: load the DLMtool library, make data available and set
up parallel computing.
3.1
Loading the library
library(DLMtool)
##
##
##
##
Loading
Loading
Loading
Loading
3.2
required
required
required
required
package:
package:
package:
package:
snowfall
snow
boot
MASS
Unpacking data and objects
for(i in 1:length(DLMdat))assign(DLMdat[[i]]@Name,DLMdat[[i]])
3.3
Initiating the cluster
Set up the cluster (note that most computers make use of hyperthreading technology so a quad-core PC has 8
threads, this is set to 2 here to meet CRAN-R package submission requirements).
sfInit(parallel=T,cpus=2)
## R Version:
R version 3.2.0 (2015-04-16)
## snowfall 1.84-6 initialized (using snow 0.3-13):
Export all the data and functions to the cluster
3
parallel execution on 2 CPUs.
sfExportAll()
Set a random seed in order make results reproducible
set.seed(1)
4
Quick start
Here is a quick demonstration of core DLMtool functionality.
4.1
Define an operating model
The operating model is the ’simulated reality’: a series of known simulations against which to test various datalimited methods. Operating models can either be specified in detail according to each variable in turn (e.g.
sample natural mortality rate between 0.2 and 0.3, trajectory in fishing effort of between 0.5 and 1 per cent per
annum) or alternatively the user can rapidly construct an operating model based on a set of default Stock, Fleet
and Observation models. In this case we take the latter approach and pick the Rockfish Stock type, a Generic
fleet type and an observation model that generates data that can be both imprecise and biased.
OM<-new('OM',
Rockfish,
Generic_fleet,
Imprecise_Biased)
The operating model class ’OM’ has many different slots which control the ranges of population and fleet
parameters that may be sampled in addition to parameters that control the quality of the data simulated. You
can list these using slotNames() or can look up the help file entry:
slotNames(OM)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
[1]
[5]
[9]
[13]
[17]
[21]
[25]
[29]
[33]
[37]
[41]
[45]
[49]
[53]
[57]
[61]
[65]
"Name"
"M"
"SRrel"
"Ksd"
"recgrad"
"ageMsd"
"Prob_staying"
"AFS"
"Fgrad"
"CAAobs"
"Mcv"
"LFCcv"
"FMSY_Mcv"
"Fgaincv"
"Btbias"
"hcv"
"Irefcv"
"nyears"
"Msd"
"Linf"
"Kgrad"
"a"
"D"
"Source"
"age05"
"AC"
"CALobs"
"Kcv"
"LFScv"
"BMSY_B0cv"
"A50cv"
"Btcv"
"Icv"
"Crefcv"
"maxage"
"Mgrad"
"K"
"Linfsd"
"b"
"Size_area_1"
"beta"
"Vmaxage"
"Cobs"
"Iobs"
"t0cv"
"B0cv"
"ageMcv"
"Dbiascv"
"Fcurbiascv"
"maxagecv"
"Brefcv"
class?OM
4
"R0"
"h"
"t0"
"Linfgrad"
"ageM"
"Frac_area_1"
"Spat_targ"
"Fsd"
"Cbiascv"
"Perr"
"Linfcv"
"FMSYcv"
"rcv"
"Dcv"
"Fcurcv"
"Reccv"
4.2
Define a subset of data-limited methods
There are three different types of assessment method / management procedure currently included in DLMtool:
DLM quota (output controls), DLM size (size/age controls) and DLM space (spatial controls). In this example we
use a generic class finder ’avail’ to list all available methods of class ’DLM quota’ and select some for simulation
testing.
avail('DLM quota')
##
##
##
##
##
##
##
##
##
##
##
[1]
[6]
[11]
[16]
[21]
[26]
[31]
[36]
[41]
[46]
[51]
"BK"
"DBSRA"
"DCAC4010"
"DepF"
"Fadapt"
"Fratio4010"
"GB_target"
"Itarget4"
"Rcontrol"
"SPSRA"
"YPR_CC"
"BK_CC"
"DBSRA4010"
"DCAC_40"
"DynF"
"Fdem"
"Fratio_CC"
"Gcontrol"
"LstepCC1"
"Rcontrol2"
"SPSRA_ML"
"YPR_ML"
"BK_ML"
"DBSRA_40"
"DCAC_ML"
"FMSYref"
"Fdem_CC"
"Fratio_ML"
"Islope1"
"LstepCC4"
"SBT1"
"SPmod"
"CC1"
"DBSRA_ML"
"DD"
"FMSYref50"
"Fdem_ML"
"GB_CC"
"Islope4"
"Ltarget1"
"SBT2"
"SPslope"
"CC4"
"DCAC"
"DD4010"
"FMSYref75"
"Fratio"
"GB_slope"
"Itarget1"
"Ltarget4"
"SPMSY"
"YPR"
methods<-c("Fratio",
"DCAC",
"Fdem",
"DD")
To find out more about these methods you can use the built-in R help functions. E.g:
?Fratio
?DBSRA
Or simply view the code. E.g:
Fratio
##
##
##
##
##
##
##
##
##
##
function (x, DLM, reps = 100)
{
depends = "DLM@Abun,DLM@CV_Abun,DLM@FMSY_M,DLM@CV_FMSY_M,DLM@Mort,DLM@CV_Mort"
Ac <- trlnorm(reps, DLM@Abun[x], DLM@CV_Abun[x])
OFLfilter(Ac * trlnorm(reps, DLM@Mort[x], DLM@CV_Mort[x]) *
trlnorm(reps, DLM@FMSY_M[x], DLM@CV_FMSY_M[x]))
}
<environment: namespace:DLMtool>
attr(,"class")
[1] "DLM quota"
4.3
Run an MSE and plot results
The methods can now be tested using the operating model. NOTE that this is just a demonstration, in a real
MSE you should use many more simulations (¿200), reps (samples per method ¿100) and perhaps a more frequent
assessment interval (e.g. 2 or 3 years). Note that when reps is set to 1, all stochastic methods use the mean
value of an input and do not sample from the distribution according to the specified CV (the methods become
deterministic and no longer produce a distribution of the quota recommendation).
5
RockMSE<-runMSE(OM,methods,nsim=20,reps=1,proyears=30,interval=5)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
[1] "Loading operating model"
[1] "Optimizing for user-specified movement"
[1] "Optimizing for user-specified depletion"
[1] "Calculating historical stock and fishing dynamics"
[1] "Calculating MSY reference points"
[1] "Calculating reference yield - best fixed F strategy"
[1] "Determining available methods"
[1] "1/4 Running MSE for Fratio"
..............................
[1] "2/4 Running MSE for DCAC"
..............................
[1] "3/4 Running MSE for Fdem"
..............................
[1] "4/4 Running MSE for DD"
..............................
A trade-off function provides a visualization of the expected (mean) performance of the methods in terms of
stock status, overfishing and yield.
70
60
50
Fdem
Fratio
DCAC
30
40
Relative yield
DCAC
40
50
Fdem
Fratio
30
Relative yield
60
70
Tplot(RockMSE)
20
DD
20
DD
25
30
35
40
45
50
55
30
50
60
70
60
50
Fdem
Fratio
DCAC
30
40
Relative yield
60
Fratio
DCAC
40
50
Fdem
30
Relative yield
40
Prob. biomass < BMSY (%)
70
Prob. of overfishing (%)
20
DD
20
DD
15
20
25
30
35
Prob. biomass < 0.5BMSY (%)
40
5
10
15
20
Prob. biomass < 0.1BMSY (%)
Much more detailed plots are also available that include stock and overfishing trajectories, kobe plots and
sensitivity analyses:
6
plot(RockMSE)
15
20
25
30
0
5
10
15
Index
8
Fratio
2.0
5
6
4
2
0.5
1.0
1.5
2.0
10
15
20
8
6
4
2
30
5
10
15
20
25
30
25
30
Index
51.8% < BMSY
31.2% < 0.5BMSY
16.8% < 0.1BMSY
0.0
1.0
2.0
MSEobj@B_BMSY[1, mm, ]
25
0
30
0
5
Index
10
15
20
Index
DCAC
5%
5%
45%
4
6
35%
0
0.0
0.5
1.0
1.5
2.0
2.5
DD
c(MSEobj@B_BMSY[1, mm, 1], MSEobj@B_BMSY[1, mm, 2])
30%
5%
60%
0
0.0
0
2.5
c(MSEobj@B_BMSY[1, mm, 1], MSEobj@B_BMSY[1, mm, 2])
25%
10%
5%
25
0
6
4
2
0
2.0
30
Projection year
8
1.5
Fdem
20
6
1.0
15
2
4
2
0.5
10
39.2% < BMSY
19% < 0.5BMSY
7.2% < 0.1BMSY
60%
0
0.0
5
Index
Start
End
0%
MSEobj@F_FMSY[1, mm, ]
8
MSEobj@F_FMSY[1, mm, ]
25
0
0%
6
40%
20
30
1.0
8
6
4
2
0
25
42.8% < BMSY
26.2% < 0.5BMSY
13.7% < 0.1BMSY
Index
8
20
4
10
15
2
5
10
40.3% POF
26.5% FMSY yield
20%
45%
0
0
5
0.0
1.0
2.0
43.8% < BMSY
24.5% < 0.5BMSY
9.3% < 0.1BMSY
0
Index
MSEobj@B_BMSY[1, mm, ]
Index
30
DD
35.2% POF
54.9% FMSY yield
8
25
c(MSEobj@F_FMSY[1, mm, c(MSEobj@F_FMSY[1,
1], MSEobj@F_FMSY[1,mm,
mm,1],2])
MSEobj@F_FMSY[1, mm,MSEobj@B_BMSY[1,
2])
mm, ]
20
2.0
15
1.0
10
Fdem
43% POF
50.2% FMSY yield
0.0
5
0.0
B/BMSY
F/FMSY
MSEobj@F_FMSY[1, mm, ]
8
6
4
F/FMSY
2
0
c(MSEobj@F_FMSY[1, mm, c(MSEobj@F_FMSY[1,
1], MSEobj@F_FMSY[1,mm,
mm,1],2])
MSEobj@F_FMSY[1, mm,MSEobj@B_BMSY[1,
2])
mm, ]
DCAC
0
MSEobj@F_FMSY[1, mm, ]
Fratio
37.8% POF
52.2% FMSY yield
2.5
0.0
0.5
1.0
1.5
2.0
2.5
c(MSEobj@B_BMSY[1, mm, 1], MSEobj@B_BMSY[1, mm,B/BMSY
2])
c(MSEobj@B_BMSY[1, mm, 1], MSEobj@B_BMSY[1, mm, 2])
7
25
30
35
40
45
50
60
Relative yield
40
Fdem Fratio
DCAC
DD
20
60
40
DCAC
DD
20
55
30
40
20
DD
25
60
30
35
60
Fdem Fratio
40
DCAC
DD
20
40
Fratio
DCAC
20
50
Prob. biomass < BMSY (%)
Relative yield
60
Fdem
15
40
5
10
Prob. biomass < 0.5BMSY (%)
15
20
Prob. biomass < 0.1BMSY (%)
2.5
Abias
3.5
●● ● ●
● ● ● ●●
●●●● ●
0.05
●
0.07
●
M
●● ●●
0.005
●
● ●
0.015
●
●●●●
0.025 0.1
Ksd
●●● ●●
0.90
●
●
●●
0.3
100
20
●
●
1.00
●
1.10
0.15
t0bias
●
●
●● ●
●
●
●●
0.5
Depletion
8
60
60
●
Crefbias
20
●
20
0.8 1.0 1.2 1.4
●
●
●●
●
●
●
●
●
0.25
0.35
Esd
100
●●
●●
● ●●
●
●
●
●
●
●●
●● ●
●●●●●
60
2.5
●
●
●
●
20
●
● ●
100
●●●●
●
●
●●
●
●
●
●● ●
200 400 600 800
RefY
0
0
●
●
●● ●● ●
1.5
●●
●
●
20
●●
●
● ●
●
●
●
100
●
●
FMSY_Mbias
20
20
●
1.5
0.5
100
● ● ● ●
●
●
●●●
●
●●
60
60
0.075
100
100
●
●
●
●
●
●
●
●
M
60
●
0.060
60
●
●
●
20
●
60
0.045
100
100
● ●
●
●
● ●
●
20
0.55
Isd
0.5
●
●
60
0.40
●
●
●
●
●
0.25
60
●
●
●
0
●
●
●
●
●
●
●
0
●
●●
20
20
●
● ●
●
●●
●
● ●● ●
●
●
●
●●
●
●
60
60
●
●
●●
●
●
●
●
●
100
●
●●
20
●
100
100
MSE correlation● evaluation for Stock:Rockfish
Fleet:Generic_fleet
Observation ●model:Imprecise_Biased:
Fratio
●
●
●
●
0
Prob. Overfishing(%) Yield (%relative to FMSY)
Relative yield
Prob. of overfishing (%)
0
Relative yield
Fdem
Fratio
●● ● ● ●●●● ●●●
5000
15000 25000
A
●
●
●● ●
200 400 600 800
A
100
20
0.4
●●●● ● ●
200
RefY
0
●
● ●
●
●
●
0.8
●
●
●●●
●
●
0.5
1.5
2.5
3.5
Abias
● ●●
●
●● ● ●●●
●
●
●
60
●
60
●
60
60
20
0
0
●●●
●●●
●
●●●
0.0
●
Spat_targ
20
●
●
−0.4
●
●
100
●
●
15000 25000
100
100
60
●●●
●●
60
5000
0.04
●
●
20
●
0
● ●● ●● ● ●
0
0.5
0.02
●
●
Msd
20
60
0.3
0.00
●
20
60
20
●●● ● ● ●●
1.10
●●
●
●●
600 1000
●● ●●●
●●●
0.6
1.0
OFLreal
0
●
●
●
●●●●
Kbias
●●●
●●●
●
20
1.00
●
● ●
●
●
●
●
●
●
●●
60
●
Depletion
1.4
● ● ● ●●●
1.8
0.05
●●
0.07
Cbias
M
MSE correlation evaluation for Stock:Rockfish Fleet:Generic_fleet Observation model:Imprecise_Biased: Fdem
0
2.5
Abias
3.5
0.005
●
● ●
0.015
Ksd
●●●●
0.025
●
● ●●
● ●
0.07
●● ●
●
● ● ●●● ●●
age05
9
80
60
40
300
●
●
●
●
500
700
MSY
●●
●●●
●
●●●
●
2.0 2.5 3.0 3.5
M
● ●
●●
●
●
●● ●
●
RefY
60
0.05
●
●
● ●
●
200 400 600 800
●
●
● ● ● ●●
●●●
● ●
●
100
●
●
●
20
80
60
40
1.8
●
●●
●
●
60
●●●
20
●
●● ●●
1.4
●
●
●
● ●
● ●
20
80
60
●●
1.0
●
Cbias
●
60
20
60
20
●
●
●
●●● ●●
1.5
80
40
●
●
●
●
●● ● ● ●
20
●● ● ●
0.6
●
●●
●
●
●● ●
200 400 600 800
RefY
0
●
1.4
Irefbias
● ●
100
●
1.0
●
●
●● ● ●
●●●
●●
60
●
●
0.5
0.6
60
● ● ●
100
100
●
0.075
M
●
20
0.060
●
●
●
●
0
0.045
●
●
●
●
●
●●●
100
0.025
Ksd
●
●
●
● ●
●●
20
●
● ●
●
●
●
● ●
●
●
●
0
0.015
●
●
100
0.005
●
●
●
20
●
●
●
0
20
●
●
●
●●
●
● ●
●
●
● ●
●
60
80
60
●
●
●
40
80
60
40
●
●●
●
●
●
●
●
●
●
●
20
●
●
●
40
●
● ●
20
●
0
Prob. Overfishing(%) Yield (%relative to FMSY)
0.90
●●
●
●●
20
●●● ●●
0.1
●
● ●
t0
100
100
Dbias
●
−0.035
● ●
●
100
−0.045
●
●
●
●
●
0
2.5
●
●
●●
●
100
1.5
20
●
● ●
0
0.5
●●
●
●
●
●
●
●
●
●
●
●
●
0
●
●
●
100
● ●
●
●
100
60
60
20
●
20
● ●
●
●
●
●
●
●
60
●
●
●
●
●
●
●●
0
●
●●
●
0
100
100
●
●
●●
●
0
Prob. Overfishing(%) Yield (%relative to FMSY)
MSE correlation evaluation for Stock:Rockfish Fleet:Generic_fleet Observation model:Imprecise_Biased: DCAC
●
●
−0.4
●●●● ●●●●● ●●
0.0
Kgrad
0.4
●
●
●
●
●
1.8
●
●
●
●●● ●●
6.5 7.0 7.5 8.0 8.5
Cbias
ageM
● ●
●
20
●●●● ●
●●
●
1.0
● ●
● ●
1.4
36
Irefbias
40
●
● ●
●● ●
44
48
LFS
60
40
20
●
0.5
●
1.5
●
●●
●
●
●
●
●
●● ●
●● ● ●
0.35
●
●
●
●
●
●
0.20
2.5
●
● ●
●
●●
●●
●
betas
100
●
●●
●
●
●
●
60
●
●●
0.06
0
60
100
●
●
0.04
●
●
FMSY
●
●
0.6
0.02
●
●
0.50
Csd
20
● ●
●
40
20
1.6
60
●●
● ●● ●
0
40
20
100
●
●●
●
●
●
●
●
●
0
0
1.4
●●
1.2
20
●
●
● ●
●
●
●
●
●
●●
●
Mbias
●●
●
●
0.8
●
●
●●
●
●
●
●● ●
● ● ●
0.4
●
0
●
2.5
●
●
●
0
1.5
100
●
20
20
● ● ● ●●●
● ●
●
Dbias
●
●
1.0
0.5
●
● ●
60
●
●
●
0.6
●●●
●
●
●●
0.04
●
60
●
●
●●
●
●
●
60
100
100
●●
●
●
Msd
● ● ●●
●
●
●
20
0.02
●
60
60
0.00
hs
40
●
●
●● ●
●
●
0
0.40 0.50 0.60 0.70
●
●
● ●
●●
●
0
●
●
● ●
20
●
●
●
●
●
●
●
●
●● ●
20
● ●
●
●
60
●
0
60
40
●
●
0
●
●
0
60
40
●
● ●
●●
20
●
0
Prob. Overfishing(%) Yield (%relative to FMSY)
●
MSE correlation evaluation for Stock:Rockfish Fleet:Generic_fleet Observation model:Imprecise_Biased: DD
●●
●●●
−0.4
●●
0.0
● ●●
0.4
0.8
dFfinal
The final plot you see here illustrates how different simulated parameters (x axis) affect yield (top row) and
the probability of overfishing (bottom row). The plots are organised in terms of most important (left, high
correlation) to least important (right, lower correlation).
This particular plot is for DD, a delay-difference model. It is clear from the lower left hand plot that
probability of overfishing is most strongly determined by the beta parameter that controls hyperstability in
the relative abundance index. We can see that below a value of 1 (hyperstable, eg. relative abundance index
declines more slowly than ’true’ simulated biomass) the propensity for overfishing is greatly increased. This is
a predictable result but these plots demonstrate that this is a dominant effect relative to other aspects of the
simulation.
4.4
Applying methods to real data
A number of real DLM data-objects were loaded into the workspace at the start of this session. In this section
we examine a real data object and apply data-limited methods to it. Just like the operating model we can find
all the objects of real data class ’DLM’, we can list the slots of a DLM data object and also look up this class
in the help file:
avail('DLM')
## [1]
## [4]
## [7]
## [10]
"Atlantic_mackerel"
"Cobia"
"Red_snapper"
"ourReefFish"
"Canary_Rockfish"
"Example_datafile"
"Simulation_1"
"China_rockfish"
"Gulf_blue_tilefish"
"Simulation_2"
slotNames(Canary_Rockfish)
##
##
##
##
##
##
##
##
[1]
[6]
[11]
[16]
[21]
[26]
[31]
[36]
"Name"
"t"
"BMSY_B0"
"LFC"
"vbK"
"steep"
"CV_Mort"
"CV_Iref"
"Year"
"AvC"
"Cref"
"LFS"
"vbLinf"
"CV_Cat"
"CV_FMSY_M"
"CV_Rec"
"Cat"
"Dt"
"Bref"
"CAA"
"vbt0"
"CV_Dt"
"CV_BMSY_B0"
"CV_Dep"
"Ind"
"Mort"
"Iref"
"Dep"
"wla"
"CV_AvC"
"CV_Cref"
"CV_Abun"
10
"Rec"
"FMSY_M"
"AM"
"Abun"
"wlb"
"CV_Ind"
"CV_Bref"
"CV_vbK"
##
##
##
##
##
[41]
[46]
[51]
[56]
[61]
"CV_vbLinf"
"CV_wla"
"Units"
"PosMeths"
"quotabias"
"CV_vbt0"
"CV_wlb"
"Ref"
"Meths"
"Sense"
"CV_AM"
"CV_steep"
"Ref_type"
"OM"
"CAL_bins"
"CV_LFC"
"sigmaL"
"Log"
"Obs"
"CAL"
"CV_LFS"
"MaxAge"
"params"
"quota"
"MPrec"
class?DLM
DLMtool includes functions to interrogate a real data object to see what methods can be applied, those that
cannot and also what data are needed to get those methods working:
Can(Canary_Rockfish)
##
##
##
##
##
##
##
[1]
[6]
[11]
[16]
[21]
[26]
[31]
"BK"
"DBSRA_40"
"DD4010"
"Fratio"
"Islope4"
"SBT1"
"YPR"
"CC1"
"DCAC"
"DepF"
"Fratio4010"
"Itarget1"
"SPMSY"
"matsizlim"
"CC4"
"DCAC4010"
"DynF"
"GB_slope"
"Itarget4"
"SPSRA"
"area1MPA"
"DBSRA"
"DCAC_40"
"Fadapt"
"Gcontrol"
"Rcontrol"
"SPmod"
Cant(Canary_Rockfish)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
[1,]
[2,]
[3,]
[4,]
[5,]
[6,]
[7,]
[8,]
[9,]
[10,]
[11,]
[12,]
[13,]
[14,]
[15,]
[16,]
[17,]
[18,]
[19,]
[20,]
[21,]
[,1]
"BK_CC"
"BK_ML"
"DBSRA_ML"
"DCAC_ML"
"FMSYref"
"FMSYref50"
"FMSYref75"
"Fdem_CC"
"Fdem_ML"
"Fratio_CC"
"Fratio_ML"
"GB_CC"
"GB_target"
"LstepCC1"
"LstepCC4"
"Ltarget1"
"Ltarget4"
"SBT2"
"SPSRA_ML"
"YPR_CC"
"YPR_ML"
[,2]
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Produced all
"Produced all
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Produced all
"Insufficient
"Insufficient
"Insufficient
data"
data"
data"
data"
data"
data"
data"
data"
data"
data"
data"
NA scores"
NA scores"
data"
data"
data"
data"
NA scores"
data"
data"
data"
Needed(Canary_Rockfish)
##
##
##
##
##
[1]
[3]
[5]
[7]
[9]
"BK_CC: CAA"
"DBSRA_ML: CAL"
"FMSYref: OM"
"FMSYref75: OM"
"Fdem_ML: CAL"
"BK_ML: CAL"
"DCAC_ML: CAL"
"FMSYref50: OM"
"Fdem_CC: CAA"
"Fratio_CC: CAA"
11
"DBSRA4010"
"DD"
"Fdem"
"Islope1"
"Rcontrol2"
"SPslope"
##
##
##
##
##
##
[11]
[13]
[15]
[17]
[19]
[21]
"Fratio_ML: CAL"
"GB_target: Cref, Iref"
"LstepCC4: CAL, MPrec"
"Ltarget4: CAL"
"SPSRA_ML: CAL"
"YPR_ML: CAL"
"GB_CC: Cref"
"LstepCC1: CAL, MPrec"
"Ltarget1: CAL"
"SBT2: Rec, Cref"
"YPR_CC: CAA"
The function getQuota() automatically detects which methods can be applied and calculates an OFL distribution
for each method which can then be plotted:
RockReal<-getQuota(Canary_Rockfish)
plot(RockReal)
8
OFL calculation for Canary_Rockfish
0
2
4
6
BK
CC1
CC4
DBSRA
DBSRA4010
DBSRA_40
5
10
15
8
0
0
2
4
6
DCAC
DCAC4010
DCAC_40
DD
DD4010
DepF
5
10
15
8
0
2
0
5
10
15
8
0
0
2
4
6
Gcontrol
Islope1
Islope4
Itarget1
Itarget4
Rcontrol
5
10
15
8
0
0
2
4
6
Rcontrol2
SBT1
SPMSY
SPSRA
SPmod
SPslope
5
10
15
8
0
2
4
6
YPR
0
Relative frequency
4
6
DynF
Fadapt
Fdem
Fratio
Fratio4010
GB_slope
0
5
10
15
OFL (thousand tonnes)
12
4.5
Conduct a sensitivity analysis
RockReal<-Sense(RockReal,"DCAC")
14
14
Sensitivity analysis for Canary_Rockfish: DCAC
2
4
6
8
10
12
AvC
0.20
0.25
15
20
14
0.15
14
0.10
25
30
4
6
8
10
12
FMSY_M
2
2
4
6
8
10
12
Mort
0.10
14
0.05
0.15
0.20
0.3
0.4
0.5
0.6
0.7
BMSY_B0
2
4
6
8
10
12
Output control (thousand tonnes)
2
4
6
8
10
12
Dt
0.32
0.33
0.34
0.35
0.36
0.37
0.38
Parameter / variable input level (marginal)
The sensitivity plot reveals which inputs to a method most strongly affect the quota recommendation. The idea
is to focus discussion on those inputs and their credibility.
5
From MSE to management recommendations
In this section we take a more thorough, systematic approach to MSE and data implementation. This is an
example of how DLMtool may be used to select methods and then apply them to real data. This is intended to
be a straw-man demonstration and in no way is a recommendation about appropriate management objectives!
In this example our real-life stock is a moderately long-lived reef-fish of moderately high recruitment compensation that has been subject to fairly consistent fishing pressure over recent years. We suspect that fishing
activities do not effectively operate on older age classes since the fish exhibit ontogenetic offshore movements
where there is less fishing. In general the stock is thought to be a relatively low stock levels going by catch rate
observations but frankly, we don’t have a precise handle on stock depletion. Since fishing activities have changed
spatial distribution and the stock is targetted there is the potential for hyperstability in our observations of catch
rates over time.
This section assumes that you have completed the four prerequisites already: library(DLMtool), SendAll(),
sfInit(parallel=T,cpus=8) and sfExportAll().
5.1
Building an appropriate operating model
We start by specifying an operating model. Looking at the prebuilt stock objects we decide that the ’Snapper’
stock object is the closest fit.
avail('Stock')
13
##
##
##
[1] "Albacore"
[5] "Herring"
[9] "Snapper"
"Blue_shark"
"Mackerel"
"Sole"
"Bluefin_tuna" "Butterfish"
"Porgy"
"Rockfish"
"Toothfish"
ourstock<-Snapper
We make some modifications to better suite our particular case study such as stock depletion between 5 and 30
per cent of unfished levels and a candidate MPA (between 5 - 15 percent of unfished biomass) with retention
(probability of staying in the MPA) of 80 - 99 percent. Remember to get help on the OM objects and their slots
type class?OM at the command line.
ourstock@D<-c(0.05,0.3)
ourstock@Frac_area_1<-c(0.05,0.15)
ourstock@Prob_staying<-c(0.4,0.99)
We now choose a fleet type for our operating model and choose to modify a generic fleet of flat recent effort,
adding dome-shaped vulnerability as a possibility for older age classes and some spatial targetting:
ourfleet<-Generic_FlatE
ourfleet@Vmaxage<-c(0.5,1)
ourfleet@Spat_targ<-c(1,1.5)
Finally, Using our fleet and stock objects we construct an operating model object assuming that the data we
have are likely to be imprecise and potentially biased. Type avail(’Observation’) at the command line to see the
various pre-defined observation model objects.
ourOM<-new('OM',ourstock,ourfleet,Imprecise_Biased)
5.2
MSE evaluation of methods
Now that we have our operating model we run a trial MSE. In this case we use a very small number of simulations
(20, which is very low to meet CRAN-R package building requirements) but change the length of the projection
and the length of the interval between updates to reflect our stock and management system.
Since we do not specify a vector of particular methods, the MSE will run for all possible methods. Note that
this could take a few minutes depending on how monstrous you computer is. Note that in a real setting it might
be advisable to increase the number of simulations to at least 192 and, if stochastic methods are to be used,
increase the samples per method (reps) to at least 100 for this first stage to obtain stable aggregate results.
ourMSE<-runMSE(ourOM,proyears=20,interval=5,nsim=20,reps=1)
##
##
##
##
##
##
##
##
##
##
##
[1] "Loading operating model"
[1] "Optimizing for user-specified movement"
[1] "Optimizing for user-specified depletion"
[1] "Calculating historical stock and fishing dynamics"
[1] "Calculating MSY reference points"
[1] "Calculating reference yield - best fixed F strategy"
[1] "Determining available methods"
[1] "1/47 Running MSE for BK"
....................
[1] "2/47 Running MSE for BK_CC"
....................
14
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
[1] "3/47 Running MSE for CC1"
....................
[1] "4/47 Running MSE for CC4"
....................
[1] "5/47 Running MSE for DBSRA"
....................
[1] "6/47 Running MSE for DBSRA4010"
....................
[1] "7/47 Running MSE for DBSRA_40"
....................
[1] "8/47 Running MSE for DCAC"
....................
[1] "9/47 Running MSE for DCAC4010"
....................
[1] "10/47 Running MSE for DCAC_40"
....................
[1] "11/47 Running MSE for DD"
....................
[1] "12/47 Running MSE for DD4010"
....................
[1] "13/47 Running MSE for DepF"
....................
[1] "14/47 Running MSE for DynF"
....................
[1] "15/47 Running MSE for FMSYref"
....................
[1] "16/47 Running MSE for FMSYref50"
....................
[1] "17/47 Running MSE for FMSYref75"
....................
[1] "18/47 Running MSE for Fadapt"
....................
[1] "19/47 Running MSE for Fdem"
....................
[1] "20/47 Running MSE for Fdem_CC"
....................
[1] "21/47 Running MSE for Fratio"
....................
[1] "22/47 Running MSE for Fratio4010"
....................
[1] "23/47 Running MSE for Fratio_CC"
....................
[1] "24/47 Running MSE for GB_CC"
....................
[1] "25/47 Running MSE for GB_slope"
....................
[1] "26/47 Running MSE for GB_target"
....................
[1] "27/47 Running MSE for Gcontrol"
....................
[1] "28/47 Running MSE for Islope1"
....................
[1] "29/47 Running MSE for Islope4"
....................
[1] "30/47 Running MSE for Itarget1"
15
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
....................
[1] "31/47 Running MSE
....................
[1] "32/47 Running MSE
....................
[1] "33/47 Running MSE
....................
[1] "34/47 Running MSE
....................
[1] "35/47 Running MSE
....................
[1] "36/47 Running MSE
....................
[1] "37/47 Running MSE
....................
[1] "38/47 Running MSE
....................
[1] "39/47 Running MSE
....................
[1] "40/47 Running MSE
....................
[1] "41/47 Running MSE
....................
[1] "42/47 Running MSE
....................
[1] "43/47 Running MSE
....................
[1] "44/47 Running MSE
....................
[1] "45/47 Running MSE
....................
[1] "46/47 Running MSE
....................
[1] "47/47 Running MSE
....................
for Itarget4"
for LstepCC1"
for LstepCC4"
for Ltarget1"
for Ltarget4"
for Rcontrol"
for Rcontrol2"
for SBT1"
for SBT2"
for SPMSY"
for SPSRA"
for SPmod"
for SPslope"
for YPR"
for YPR_CC"
for matsizlim"
for area1MPA"
A summary trade-off plot reveals a wide range of performance:
Tplot(ourMSE)
16
Relative yield
0
20
40
60
80
50
0
0
50
FMSYref
FMSYref75
DD4010
SPMSY
Fadapt SPmod
DynF
DepF
FMSYref50
Fratio
YPR
matsizlim
Fratio4010
GB_target
GB_CC
DBSRA
area1MPA
GB_slope
DCAC
DD
SBT2
SPSRA
DBSRA4010
BK
SBT1
BK_CC
DCAC4010DCAC_40
Islope1
Fdem
Gcontrol
LstepCC4
LstepCC1
Ltarget1
CC1 DBSRA_40
CC4
Rcontrol
Islope4
Itarget1
Fdem_CC
YPR_CC
Ltarget4
Rcontrol2
Fratio_CC
Itarget4
100 150 200 250 300
Relative yield
100 150 200 250 300
SPslope
100
SPslope
FMSYref
SPmod
FMSYref75
DD4010
SPMSY
Fadapt
DynF
DepF
FMSYref50
Fratio
YPR
matsizlim
Fratio4010
GB_target
GB_CC
DBSRA
area1MPA
GB_slope
DCAC
DD
SBT2
SPSRA
DBSRA4010
BK
SBT1
BK_CC
DCAC_40
DCAC4010
Islope1
Fdem
Gcontrol
DBSRA_40
LstepCC4
LstepCC1
Ltarget1
CC1
CC4
Rcontrol
Islope4
Itarget1
Fdem_CC
YPR_CC
Ltarget4
Rcontrol2
Fratio_CC
Itarget4
20
Relative yield
SPslope
40
60
80
80
100
120
SPslope
50
0
0
20
60
FMSYref
SPmod
FMSYref75
DD4010
SPMSY
Fadapt
DynF
DepF
FMSYref50
Fratio
YPR
matsizlim
Fratio4010
GB_target
GB_CC
DBSRA
area1MPA
GB_slope
DCAC
DD
SBT2
SPSRA
DBSRA4010
BK Fdem
SBT1
BK_CC
DCAC_40
DCAC4010
Islope1
Gcontrol
DBSRA_40
LstepCC4
LstepCC1
Ltarget1
CC1
CC4
Rcontrol
Islope4
Itarget1
Fdem_CC
YPR_CC
Ltarget4
Rcontrol2
Itarget4 Fratio_CC
50
FMSYref
SPmod
FMSYref75
DD4010
SPMSY
Fadapt
DynF
DepF
FMSYref50
Fratio
YPR
matsizlim
Fratio4010
GB_target
GB_CC
DBSRA
area1MPA
GB_slope
DD
SBT2 BK_CC
SPSRA
DBSRA4010
BK
SBT1
DDCAC
CAC_40
DCAC4010
Islope1
Fdem
Gcontrol
DBSRA_40
LstepCC4
LstepCC1
Ltarget1
CC4
Rcontrol CC1
Islope4
Itarget1
Fdem_CC
YPR_CC
Ltarget4
Rcontrol2
Itarget4 Fratio_CC
0
40
Prob. biomass < BMSY (%)
100 150 200 250 300
Relative yield
100 150 200 250 300
Prob. of overfishing (%)
100
0
Prob. biomass < 0.5BMSY (%)
20
40
60
Prob. biomass < 0.1BMSY (%)
In this example process, we decide that we would like to select a targetted subset of these methods that have
greater than 20 percent of long-term best yield (given ideal fixed fishing mortality rate), less than a 50 percent
rate of overfishing and less than a 10 percent chance of dropping below a low stock level, in this case 10 percent
of BMSY. To do this we calculate the summary table and subset it:
Results<-summary(ourMSE)
Results
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
Method
1
BK
2
BK_CC
3
CC1
4
CC4
5
DBSRA
6
DBSRA4010
7
DBSRA_40
8
DCAC
9
DCAC4010
10
DCAC_40
11
DD
12
DD4010
13
DepF
14
DynF
15
FMSYref
16 FMSYref50
17 FMSYref75
18
Fadapt
19
Fdem
20
Fdem_CC
21
Fratio
22 Fratio4010
23 Fratio_CC
24
GB_CC
25
GB_slope
Yield
56.80
53.06
40.98
37.90
64.56
59.12
44.03
61.90
53.34
52.37
61.39
86.47
72.02
72.73
94.11
72.48
88.16
79.33
49.40
17.93
72.20
66.53
13.37
63.91
60.28
27.11
79.40
32.03
43.16
35.32
41.32
42.83
27.84
31.38
26.07
52.58
84.12
28.03
56.02
10.83
8.55
10.39
49.34
31.54
42.39
23.76
30.61
22.77
57.43
61.95
POF
71.25
77.25
49.00
20.00
39.25
28.75
79.00
47.50
17.00
48.00
28.50
18.75
19.25
46.75
9.75
0.00
0.00
52.75
74.50
87.50
48.50
17.25
30.75
56.00
42.25
44.24
31.89
48.25
31.91
48.16
37.52
40.28
49.22
36.43
46.55
27.63
24.16
33.49
39.35
9.93
0.00
0.00
45.95
44.16
26.73
49.95
34.28
39.91
46.01
44.14
P10
21.50
39.00
16.25
0.25
8.75
5.25
36.50
10.50
4.00
11.50
4.75
1.75
0.00
5.25
0.00
0.00
0.00
2.00
35.25
58.50
0.00
0.00
21.00
15.50
15.00
17
34.19
32.43
23.61
1.12
24.65
19.09
35.40
25.59
17.89
22.25
11.53
7.83
0.00
15.68
0.00
0.00
0.00
6.77
37.57
27.29
0.00
0.00
30.85
26.80
27.43
P50
66.25
65.00
39.00
9.75
29.25
26.50
56.25
33.00
12.75
36.25
19.00
10.50
9.75
40.25
7.00
5.50
6.50
37.25
71.00
79.75
27.75
9.75
35.00
35.75
34.75
42.58
31.20
38.17
15.77
41.11
38.90
41.99
35.89
23.65
44.42
26.59
21.82
18.74
34.35
11.17
9.58
10.89
37.50
42.63
24.52
28.95
18.60
38.80
38.81
38.98
P100
82.25
92.75
72.50
48.75
57.00
53.75
91.00
66.25
39.75
68.75
55.00
38.50
44.50
70.75
69.75
32.25
46.50
72.75
83.50
94.75
71.00
38.25
55.00
79.75
70.00
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
GB_target 64.39 58.57 55.00 47.27 16.00
Gcontrol 47.84 65.00 43.50 45.34 20.25
Islope1 48.33 26.81 33.50 45.19 2.50
Islope4 33.10 20.80 3.50 7.27 0.00
Itarget1 32.87 33.49 13.25 20.41 0.00
Itarget4
3.74
4.06 0.25 1.12 0.00
LstepCC1 41.59 25.51 47.75 46.97 15.50
LstepCC4 42.18 25.02 18.00 30.75 0.00
Ltarget1 40.84 28.45 37.75 44.05 4.75
Ltarget4 15.88 17.12 2.75 5.73 0.00
Rcontrol 37.53 40.66 18.75 37.55 6.25
Rcontrol2 16.31 16.70 22.25 38.85 12.00
SBT1 54.94 57.55 42.50 43.81 16.75
SBT2 60.95 44.73 64.50 42.70 17.50
SPMSY 82.22 57.41 31.25 33.40 7.25
SPSRA 60.72 30.75 35.00 45.31 8.50
SPmod 89.64 137.82 76.25 35.79 46.50
SPslope 250.55 221.07 27.50 26.83 5.50
YPR 72.23 23.17 47.50 47.70 0.00
YPR_CC 17.41 27.29 36.00 43.12 20.75
matsizlim 67.79 30.34 49.25 42.68 2.50
area1MPA 63.59 29.77 51.50 45.02 1.50
33.30
12.08
33.50
32.96
37.99
38.59
24.37
36.95
34.35
36.12
30.31
24.55
35.17
35.85
28.31
24.41
29.56
34.96
33.33
13.23
37.96
34.00
36.99
31.27
33.29
31.89
35.18
35.66
23.61
32.58
18.03
32.43
18
26.54
29.09
7.86
0.00
0.00
0.00
23.05
0.00
9.24
0.00
16.69
24.78
27.45
28.17
18.03
23.40
40.07
9.85
0.00
30.83
7.69
5.64
39.50
38.50
24.50
8.00
9.25
6.50
39.25
9.25
23.25
8.00
16.75
23.25
34.00
42.00
24.00
30.25
59.75
20.75
29.25
35.25
24.50
27.50
41.23
40.69
30.65
11.96
14.71
10.89
37.60
12.06
26.87
11.96
24.40
39.55
39.66
46.75
36.00
39.75
45.46
26.27
36.57
36.51
30.56
32.26
78.00
64.25
56.50
36.25
46.75
27.75
74.00
48.50
62.50
34.00
44.25
47.50
68.75
78.00
56.50
60.00
84.75
43.25
69.00
57.75
68.25
70.75
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
33.09
35.78
21.25
33.37
35.56
32.32
34.85
34.64
37.42
25.93
29.44
37.54
35.15
29.75
29.97
Targetted<-subset(Results, Results$Yield>20 & Results$POF<50 & Results$P10<10)
Targetted
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
Method Yield
POF
4
CC4 37.90 43.16 20.00 31.91
5
DBSRA 64.56 35.32 39.25 48.16
6
DBSRA4010 59.12 41.32 28.75 37.52
9
DCAC4010 53.34 31.38 17.00 36.43
11
DD 61.39 52.58 28.50 27.63
12
DD4010 86.47 84.12 18.75 24.16
13
DepF 72.02 28.03 19.25 33.49
14
DynF 72.73 56.02 46.75 39.35
15
FMSYref 94.11 10.83 9.75 9.93
16 FMSYref50 72.48
8.55 0.00 0.00
17 FMSYref75 88.16 10.39 0.00 0.00
21
Fratio 72.20 23.76 48.50 49.95
22 Fratio4010 66.53 30.61 17.25 34.28
28
Islope1 48.33 26.81 33.50 45.19
29
Islope4 33.10 20.80 3.50 7.27
30
Itarget1 32.87 33.49 13.25 20.41
33
LstepCC4 42.18 25.02 18.00 30.75
34
Ltarget1 40.84 28.45 37.75 44.05
36
Rcontrol 37.53 40.66 18.75 37.55
40
SPMSY 82.22 57.41 31.25 33.40
41
SPSRA 60.72 30.75 35.00 45.31
43
SPslope 250.55 221.07 27.50 26.83
44
YPR 72.23 23.17 47.50 47.70
46 matsizlim 67.79 30.34 49.25 42.68
P10
0.25
8.75
5.25
4.00
4.75
1.75
0.00
5.25
0.00
0.00
0.00
0.00
0.00
2.50
0.00
0.00
0.00
4.75
6.25
7.25
8.50
5.50
0.00
2.50
1.12
24.65
19.09
17.89
11.53
7.83
0.00
15.68
0.00
0.00
0.00
0.00
0.00
7.86
0.00
0.00
0.00
9.24
16.69
18.03
23.40
9.85
0.00
7.69
P50
9.75
29.25
26.50
12.75
19.00
10.50
9.75
40.25
7.00
5.50
6.50
27.75
9.75
24.50
8.00
9.25
9.25
23.25
16.75
24.00
30.25
20.75
29.25
24.50
15.77
41.11
38.90
23.65
26.59
21.82
18.74
34.35
11.17
9.58
10.89
28.95
18.60
30.65
11.96
14.71
12.06
26.87
24.40
36.00
39.75
26.27
36.57
30.56
P100
48.75
57.00
53.75
39.75
55.00
38.50
44.50
70.75
69.75
32.25
46.50
71.00
38.25
56.50
36.25
46.75
48.50
62.50
44.25
56.50
60.00
43.25
69.00
68.25
32.96
37.99
38.59
34.35
30.31
24.55
35.17
35.85
28.31
24.41
29.56
37.96
34.00
35.66
23.61
32.58
33.09
35.78
33.37
34.64
37.42
29.44
37.54
29.75
Our new subsetted methods can be used to run a more focused MSE that includes a greater number of simulations
for a detailed assessment of performance. Again note that in a real setting it would be advisable to increase the
number of simulations further to at least 400.You might also want to increase the number of stochastic samples
per method (reps) to 200 or more.
ourMSE2<-runMSE(ourOM,Targetted$Method,proyears=20,interval=5,nsim=40,reps=1)
## [1] "Loading operating model"
## [1] "Optimizing for user-specified movement"
19
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
[1] "Optimizing for user-specified depletion"
[1] "Calculating historical stock and fishing dynamics"
[1] "Calculating MSY reference points"
[1] "Calculating reference yield - best fixed F strategy"
[1] "Determining available methods"
[1] "1/24 Running MSE for CC4"
....................
[1] "2/24 Running MSE for DBSRA"
....................
[1] "3/24 Running MSE for DBSRA4010"
....................
[1] "4/24 Running MSE for DCAC4010"
....................
[1] "5/24 Running MSE for DD"
....................
[1] "6/24 Running MSE for DD4010"
....................
[1] "7/24 Running MSE for DepF"
....................
[1] "8/24 Running MSE for DynF"
....................
[1] "9/24 Running MSE for FMSYref"
....................
[1] "10/24 Running MSE for FMSYref50"
....................
[1] "11/24 Running MSE for FMSYref75"
....................
[1] "12/24 Running MSE for Fratio"
....................
[1] "13/24 Running MSE for Fratio4010"
....................
[1] "14/24 Running MSE for Islope1"
....................
[1] "15/24 Running MSE for Islope4"
....................
[1] "16/24 Running MSE for Itarget1"
....................
[1] "17/24 Running MSE for LstepCC4"
....................
[1] "18/24 Running MSE for Ltarget1"
....................
[1] "19/24 Running MSE for Rcontrol"
....................
[1] "20/24 Running MSE for SPMSY"
....................
[1] "21/24 Running MSE for SPSRA"
....................
[1] "22/24 Running MSE for SPslope"
....................
[1] "23/24 Running MSE for YPR"
....................
[1] "24/24 Running MSE for matsizlim"
....................
Several detailed plots can provide greater information about exactly how each method performed over the
20
projected time period including Projection and Kobe plots:
Pplot(ourMSE2)
10
20
10
Index
10
Index
15
20
10
5
year
Kplot(ourMSE2)
21
10
Index
10
20
10
Index
15
MSEobj@F_FMSY[1, mm, ]
10
20
10
Index
2.0
1.0
0.0
MSEobj@F_FMSY[1, mm, ]
15
15
2.0
1.0
0.0
15
20
64.4% < BMSY
38.5% < 0.5BMSY
6.1% < 0.1BMSY
5
10
15
20
Index
2.0
1.0
39.2% POF
63% FMSY yield
0.0
20
5
10
15
20
Index
39% < BMSY
18% < 0.5BMSY
7.5% < 0.1BMSY
5
10
matsizlim
MSEobj@F_FMSY[1, mm, ]
2.0
1.0
10
Index
20
54.2% POF
61.5% FMSY yield
5
20
24.5% POF
63.9% FMSY yield
5
15
Index
MSEobj@B_BMSY[1, mm, ]
0.0 0.5 1.0 1.5 2.0
20
15
0.0
20
49% < BMSY
22.4% < 0.5BMSY
8.6% < 0.1BMSY
5
15
Index
10
Index
48.6% < BMSY
25.5% < 0.5BMSY
12.2% < 0.1BMSY
5
20
YPR
SPSRA
15
Index
10
15
35% < BMSY
22.9% < 0.5BMSY
9.1% < 0.1BMSY
5
0.0 0.5 1.0 1.5 2.0
2.0
1.0
0.0
5
20
MSEobj@F_FMSY[1, mm, ]
2.0
5
20
35.9% POF
75.7% FMSY yield
Index
31.6% POF
34.1% FMSY yield
1.0
20
MSEobj@B_BMSY[1, mm, ]
MSEobj@B_BMSY[1, mm, ]
MSEobj@F_FMSY[1, mm, ]
20
15
15
10
Index
0.0 0.5 1.0 1.5 2.0
10
Index
10
5
0.0 0.5 1.0 1.5 2.0
2.0
1.0
0.0
5
Index
36.6% < BMSY
11.2% < 0.5BMSY
2.8% < 0.1BMSY
5
20
43.1% < BMSY
14.6% < 0.5BMSY
6.5% < 0.1BMSY
Ltarget1
15
15
15
15
25.2% POF
14.4% FMSY yield
SPMSY
MSEobj@B_BMSY[1, mm, ]
0.0 0.5 1.0 1.5 2.0
20
33.6% < BMSY
9.8% < 0.5BMSY
1.4% < 0.1BMSY
20
Projection
Index
10
10
MSEobj@B_BMSY[1, mm, ]
10
Index
MSEobj@F_FMSY[1, mm, ]
2.0
1.0
0.0
MSEobj@B_BMSY[1, mm, ]
2.0
1.0
5
0.0
2.0
1.0
0.0
5
20
17.1% POF
38.1% FMSY yield
0.0
MSEobj@B_BMSY[1, mm, ]
15
12% POF
32.7% FMSY yield
20
15
Index
MSEobj@F_FMSY[1, mm, ]
MSEobj@F_FMSY[1, mm, ]
15
15
10
10
5
0.0 0.5 1.0 1.5 2.0
5
Index
64% < BMSY
35.9% < 0.5BMSY
9.4% < 0.1BMSY
5
20
0.0 0.5 1.0 1.5 2.0
10
Index
15
Islope4
53.1% POF
63.5% FMSY yield
5
5
SPslope
18% POF
41.4% FMSY yield
Index
MSEobj@B_BMSY[1, mm, ]
20
20
34.6% < BMSY
13.5% < 0.5BMSY
3.5% < 0.1BMSY
Index
47.4% < BMSY
19.6% < 0.5BMSY
6.2% < 0.1BMSY
0.0 0.5 1.0 1.5 2.0
2.0
20
10
Index
15
LstepCC4
MSEobj@F_FMSY[1, mm, ]
2.0
1.0
5
10
0.0 0.5 1.0 1.5 2.0
MSEobj@F_FMSY[1, mm, ]
2.0
1.0
0.0
MSEobj@B_BMSY[1, mm, ]
15
5
20
MSEobj@B_BMSY[1, mm, ]
10
Index
15
0.0
20
33.5% < BMSY
5% < 0.5BMSY
0.1% < 0.1BMSY
5
10
Rcontrol
14.2% POF
23.9% FMSY yield
Index
29.4% POF
41.6% FMSY yield
Fratio
60% < BMSY
5.6% < 0.5BMSY
0.1% < 0.1BMSY
5
15
1.0
2.0
1.0
20
5
Index
MSEobj@B_BMSY[1, mm, ]
0.0 0.5 1.0 1.5 2.0
20
15
Index
10
20
Islope1
MSEobj@F_FMSY[1, mm, ]
2.0
1.0
5
Index
MSEobj@B_BMSY[1, mm, ]
15
0.0
10
20
0% POF
87.4% FMSY yield
0.0
20
9.2% POF
93.2% FMSY yield
5
15
15
40.5% < BMSY
10.5% < 0.5BMSY
0.2% < 0.1BMSY
0.0 0.5 1.0 1.5 2.0
MSEobj@F_FMSY[1, mm, ]
15
Index
20
10
Index
10
0.0 0.5 1.0 1.5 2.0
MSEobj@F_FMSY[1, mm, ]
2.0
1.0
0.0
5
5
Index
MSEobj@B_BMSY[1, mm, ]
15
15
10
20
0.0 0.5 1.0 1.5 2.0
MSEobj@F_FMSY[1, mm, ]
MSEobj@B_BMSY[1, mm, ]
20
65.9% < BMSY
40.8% < 0.5BMSY
10.6% < 0.1BMSY
5
15
23.6% < BMSY
4.8% < 0.5BMSY
0.1% < 0.1BMSY
FMSYref
45.6% < BMSY
21% < 0.5BMSY
4.4% < 0.1BMSY
5
0.0 0.5 1.0 1.5 2.0
2.0
1.0
0.0
MSEobj@B_BMSY[1, mm, ]
2.0
1.0
0.0
MSEobj@B_BMSY[1, mm, ]
20
MSEobj@F_FMSY[1, mm, ]
2.0
1.0
10
Index
MSEobj@B_BMSY[1, mm, ]
15
Index
5
10
10
Itarget1
23.9% POF
73.6% FMSY yield
FMSYref75
Index
22.1% POF
76.3% FMSY yield
0.0
20
36.2% < BMSY
14.6% < 0.5BMSY
3.2% < 0.1BMSY
5
15
Index
MSEobj@F_FMSY[1, mm, ]
15
10
15
5
Index
48% POF
76.6% FMSY yield
5
DD4010
0.0 0.5 1.0 1.5 2.0
2.0
F/FMSY
1.0
0.0
MSEobj@F_FMSY[1, mm, ]
B/BMSY
0.0 0.5 1.0 1.5 2.0
MSEobj@B_BMSY[1, mm, ]
10
Index
20
51.9% < BMSY
24.8% < 0.5BMSY
5.2% < 0.1BMSY
5
10
Fratio4010
0% POF
72.4% FMSY yield
0.0
20
23.2% POF
49.9% FMSY yield
5
MSEobj@F_FMSY[1, mm, ]
2.0
1.0
MSEobj@B_BMSY[1, mm, ]
15
15
0.0 0.5 1.0 1.5 2.0
10
10
Index
DBSRA4010
Index
5
Index
31.6% POF
88.4% FMSY yield
5
20
DynF
0.0
20
39.1% < BMSY
19.8% < 0.5BMSY
7.5% < 0.1BMSY
5
20
0.0 0.5 1.0 1.5 2.0
MSEobj@F_FMSY[1, mm, ]
15
0.0 0.5 1.0 1.5 2.0
2.0
F/FMSY
1.0
0.0
MSEobj@F_FMSY[1, mm, ]
B/BMSY
0.0 0.5 1.0 1.5 2.0
MSEobj@B_BMSY[1, mm, ]
10
Index
15
15
46.1% < BMSY
16% < 0.5BMSY
0.4% < 0.1BMSY
DD
Index
26.6% POF
58.2% FMSY yield
5
10
10
Index
MSEobj@F_FMSY[1, mm, ]
5
5
0.0 0.5 1.0 1.5 2.0
20
20
FMSYref50
27.5% POF
73.5% FMSY yield
MSEobj@B_BMSY[1, mm, ]
15
15
24.6% < BMSY
8.8% < 0.5BMSY
1.4% < 0.1BMSY
DBSRA
Index
10
MSEobj@B_BMSY[1, mm, ]
10
5
Index
39.8% < BMSY
13.4% < 0.5BMSY
4% < 0.1BMSY
5
MSEobj@F_FMSY[1, mm, ]
2.0
1.0
0.0
20
DepF
7.1% POF
45.7% FMSY yield
0.0 0.5 1.0 1.5 2.0
MSEobj@F_FMSY[1, mm, ]
15
MSEobj@B_BMSY[1, mm, ]
0.0 0.5 1.0 1.5 2.0
B/BMSY
10
Index
0.0 0.5 1.0 1.5 2.0
2.0
1.0
F/FMSY
5
MSEobj@B_BMSY[1, mm, ]
DCAC4010
0.0
MSEobj@F_FMSY[1, mm, ]
CC4
21.2% POF
24.4% FMSY yield
20
53.5% < BMSY
26.2% < 0.5BMSY
3.9% < 0.1BMSY
5
10
Index
15
20
1.0
2.0
0.0
1.0
2.0
0.0
1.0
15% 42.5%
2.0
0.0
1.0
DD4010
5%
1.0
2.0
20%
17.5% 50%
0.0
2.5% 90%
DD
30% 2.5%
2.0
0%
1.0
1.0
2.0
7.5%
0.0
2.5%72.5%
DCAC4010
0.0
2.0
1.0
5%
c(MSEobj@F_FMSY[1, mm, 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1, mm, 2])
0.0
20%
c(MSEobj@F_FMSY[1, mm, 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1, mm, 2])
2.0
DBSRA4010
0.0
2.0
2.5% 70%
c(MSEobj@F_FMSY[1, mm, 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1, mm, 2])
1.0
c(MSEobj@F_FMSY[1, mm, 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1, mm, 2])
0.0
25% 2.5%
1.0
1.0
2.5%82.5%
DBSRA
0.0
c(MSEobj@F_FMSY[1, mm, 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1, mm, 2])
2.0
0%
Start
End
0.0
c(MSEobj@F_FMSY[1, mm, 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1,
c(MSEobj@F_FMSY[1,
mm,
mm,
2]) 1], MSEobj@F_FMSY[1, mm, 2])
CC4
15%
2.0
0.0
1.0
2.0
0.0
1.0
1.0
2.0
0.0
1.0
12.5%
87.5%
2.0
0.0
1.0
2.0
50% 2.5%
1.0
2.0
0%
1.0
2.0
1.0
2.0
0.0
2.5%97.5%
0%
5% 42.5%
0.0
2.0
0%
0.0
1.0
0.0
35% 47.5%
0%
0.0
35%
1.0
2.0
1.0
2.0
15%
12.5% 5%
0.0
7.5%57.5%
47.5%2.5%
0.0
0%
1.0
2.0
30%
0.0
F/FMSY
c(MSEobj@B_BMSY[1,c(MSEobj@B_BMSY[1,
mm,
1], MSEobj@B_BMSY[1,
c(MSEobj@B_BMSY[1,
mm,
1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm,
1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm, 1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm, 1], mm,
MSEobj@B_BMSY[1,
2])
mm,
1], mm,
MSEobj@B_BMSY[1,
2])
mm, 2])
DepF
DynF
FMSYref
FMSYref50
FMSYref75
Fratio
2.0
0.0
1.0
2.0
0.0
1.0
2.0
0.0
1.0
2.0
0.0
1.0
2.0
0.0
1.0
2.0
0.0
1.0
2.0
1.0
2.0
0% 87.5%
25% 2.5%
5% 67.5%
0.0
85%
1.0
2.0
0%
12.5% 0%
0.0
2.5%87.5%
12.5%2.5%
1.0
0%
0.0
75%
2.0
0%
10%
1.0
0%
1.0
25%
0.0
0.0
0% 67.5%
0.0
1.0
2.0
32.5% 0%
2.0
c(MSEobj@B_BMSY[1,c(MSEobj@B_BMSY[1,
mm, 1], MSEobj@B_BMSY[1,
c(MSEobj@B_BMSY[1,
mm,
1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm,
1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm,
1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm, 1], mm,
MSEobj@B_BMSY[1,
2])
mm,
1], mm,
MSEobj@B_BMSY[1,
2])
mm, 2])
Fratio4010
Islope1
Islope4
Itarget1
LstepCC4
Ltarget1
2.0
0.0
1.0
2.0
0.0
1.0
2.0
0.0
1.0
2.0
0.0
1.0
2.0
0.0
0.0
1.0
2.0
2.0
2.0
1.0
1.0
2.5%42.5%
32.5% 0%
5% 62.5%
0.0
5%
2.0
2.5%
52.5%2.5%
1.0
0%
0.0
7.5%
1.0
2.0
5% 67.5%
0.0
50%
1.0
2.0
1.0
0%
25% 2.5%
0.0
0.0
15% 67.5%
37.5%2.5%
0.0
1.0
2.0
12.5%2.5%
2.0
c(MSEobj@B_BMSY[1,c(MSEobj@B_BMSY[1,
mm,
1], MSEobj@B_BMSY[1,
c(MSEobj@B_BMSY[1,
mm,
1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm,
1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm,
1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm,YPR
1], mm,
MSEobj@B_BMSY[1,
2])
mm, 1], mm,
MSEobj@B_BMSY[1,
2])
mm, 2])
Rcontrol
SPMSY
SPSRA
SPslope
matsizlim
0.0
1.0
2.0
B/BMSY
c(MSEobj@B_BMSY[1,c(MSEobj@B_BMSY[1,
mm, 1], MSEobj@B_BMSY[1,
c(MSEobj@B_BMSY[1,
mm, 1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm, 1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm, 1], mm,
MSEobj@B_BMSY[1,
2])
c(MSEobj@B_BMSY[1,
mm, 1], mm,
MSEobj@B_BMSY[1,
2])
mm, 1], mm,
MSEobj@B_BMSY[1,
2])
mm, 2])
100
120
20
Itarget1
CC4
SPslope
0
10
20
30
80
40
SPSRAmatsizlimFratio
YPR
DBSRA
DBSRA4010
DCAC4010
Islope1
Rcontrol
LstepCC4
Islope4 Ltarget1
FMSYref75
60
DD4010
SPMSY DynF
DepF
Fratio4010
40
50
60
Itarget1
CC4
SPslope
70
20
30
40
50
60
70
80
100
80
Relative yield
DD
20
30
40
Prob. biomass < 0.5BMSY (%)
DD
DynF
SPMSY
DepF DD4010
Fratio4010
FMSYref50
SPSRA
Fratio
matsizlim
YPR
DBSRA
DBSRA4010
DCAC4010
Islope1
LstepCC4Rcontrol
Ltarget1
Islope4
Itarget1
CC4
SPslope
20
40
60
40
20
10
FMSYref
FMSYref75
80
FMSYref
FMSYref75
DynF
DD4010
SPMSY
DepF
Fratio4010
FMSYref50
SPSRA
matsizlimFratio
YPR
DBSRA
DBSRA4010
DCAC4010
Islope1
Rcontrol
LstepCC4
Islope4 Ltarget1
Itarget1
CC4
SPslope
60
100
120
Prob. biomass < BMSY (%)
120
Prob. of overfishing (%)
Relative yield
FMSYref
DD
DD4010
SPMSY DynF
DepF
Fratio4010
FMSYref50
SPSRAmatsizlim
Fratio
YPR
DBSRA
DBSRA4010
DCAC4010
Islope1
Rcontrol
LstepCC4
Islope4 Ltarget1
20
60
FMSYref50
DD
Relative yield
80
FMSYref
FMSYref75
40
Relative yield
100
120
Tplot(ourMSE2)
50
0
5
10
15
Prob. biomass < 0.1BMSY (%)
These plots indicate that methods based on a stable F strategy (DynF and Fratio) and the Yield per recruit
(YPR) analysis are at the upper limit of the trade-off space (ie all other methods provide worse performance
in one or more dimensions). In this case the three methods offer a contrasting trade-off between probability of
overfishing and long-term yield. It remains to be seen whether any of these approaches can be applied to the
real data for our reef fish...
22
5.3
Applying methods to our real data
A real DLM data object ’ourReefFish’, was loaded into the current R session when we ran the SendAll() function.
We can summarise some of the data in this DLM data object using the generic function summary():
50
4
40
1990
2000
2010
1990
2000
2010
0
0.00
10
0.15
30
1980
20
1970
Relative frequency
1960
Year
Relative abundance
Stock depletion
Natural Mortality rate
Ratio of FMSY to M
Depletion over time t
BMSY relative to unfished
Von B. k parameter
2
0
Catch (thousand tonnes)
summary(ourReefFish)
1960
1970
1980
0.0
0.2
0.4
0.6
0.8
1.0
1.2
Year
The Can() function reveals that a range of methods are available but not the three best performing methods
identified by the MSE (DynF, Fratio, YPR). Nonetheless we can calculate and plot the OFLs for the available
methods:
ourReefFish<-getQuota(ourReefFish)
## [1] "Method SPmod produced greater than 50% NA values"
plot(ourReefFish)
23
OFL calculation for ourReefFish
0.0
0.5
1.0
1.5
2.0
BK_CC
CC1
CC4
DBSRA
LatestDBSRA4010
assessment
DBSRA_40
0.0
0.5
1.0
1.5
2.5
3.0
3.5
0.0
0.5
1.0
1.5
2.0
DCAC
DCAC4010
DCAC_40
DD
DD4010
Latest assessment
Fdem_CC
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
1.5
2.0
Fratio_CC
GB_slope
Islope1
Islope4
Itarget1
Latest assessment
Itarget4
0.0
0.5
1.0
Relative frequency
2.0
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
0.0
0.5
1.0
1.5
2.0
SBT1
SPMSY
SPSRA
SPmod
YPR_CC
Latest assessment
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
OFL (thousand tonnes)
The Needed() function shows that there is only one remaining data requirement to make each of these methods
work, a current estimate of abundance (Abun, a slot in the DLM data object. see ?DLM). While this may seem
like rather a demanding data requirement it is worth remembering that DynF, Fratio and YPR outperformed
the remaining methods on average despite fairly bad current abundance information that could have observation
error with a CV of up to 100 per cent and a bias sampled from a uniform-on-log distribution distribution between
1/5 and 5:
ourOM@Btcv
## [1] 0.5 1.0
ourOM@Btbias
## [1] 0.2 5.0
In other words our MSE generated observations of current biomass that could easily be 1/3 or triple the true
level across the whole time series and were very noisy. The question now is whether gathering such data would
be worthwhile (e.g. a systematic fishery independent survey). To refresh our memory we can re-plot he tradeoffs
of the targetted MSE:
24
120
100
40
60
10
20
30
40
50
60
Itarget1
CC4
SPslope
70
20
30
50
60
70
80
120
100
20
Itarget1
CC4
20
Itarget1
CC4
SPslope
10
30
40
Prob. biomass < 0.5BMSY (%)
DD
DynF
SPMSY
DepF DD4010
Fratio4010
FMSYref50
SPSRA
Fratio
matsizlim
YPR
DBSRA
DBSRA4010
DCAC4010
Islope1
LstepCC4Rcontrol
Ltarget1
Islope4
40
SPSRA
matsizlimFratio
YPR
DBSRA
DBSRA4010
DCAC4010
Islope1
Rcontrol
LstepCC4
Islope4 Ltarget1
FMSYref
FMSYref75
80
Relative yield
DynF
60
100
80
DD
DD4010
SPMSY
DepF
Fratio4010
FMSYref50
60
Relative yield
FMSYref
FMSYref75
40
40
Prob. biomass < BMSY (%)
120
Prob. of overfishing (%)
20
FMSYref
DD
DD4010
SPMSY DynF
DepF
Fratio4010
FMSYref50
SPSRAmatsizlim
Fratio
YPR
DBSRA
DBSRA4010
DCAC4010
Islope1
Rcontrol
LstepCC4
Islope4 Ltarget1
20
20
Itarget1
CC4
SPslope
0
FMSYref75
80
80
Relative yield
DD
DD4010
SPMSY DynF
DepF
FMSYref50 Fratio4010
SPSRAmatsizlimFratio
YPR
DBSRA
DBSRA4010
DCAC4010
Islope1
Rcontrol
LstepCC4
Islope4 Ltarget1
60
FMSYref
FMSYref75
40
Relative yield
100
120
Tplot(ourMSE2)
50
SPslope
0
5
10
15
Prob. biomass < 0.1BMSY (%)
If we focus on output controls there are a cluster of methods that offer comparable performance that are available
for our real data such as the delay-difference stock assessment (DD). We can use sensitivity testing to better
understand how fragile quota recommendations are to changes in our data inputs:
ourReefFish<-Sense(ourReefFish,'DD')
25
Sensitivity analysis for ourReefFish: DD
6
4
2
0.8
0.9
1.0
1.1
1.2
0.8
0.9
1.0
1.1
1.2
2
4
6
vbK
0
0
2
4
6
Mort
0.06
0.08
0.10
0.12
0.189 0.190 0.191 0.192 0.193 0.194 0.195
2
4
6
vbt0
0
0
2
4
6
vbLinf
85.0
85.2
85.4
85.6
85.8
86.0
86.2
−0.398
−0.394
−0.390
wla
4
6
−0.402
0
0
2
4
6
AM
2
Output control (thousand tonnes)
Ind
0
0
2
4
6
Cat
1.5
2.0
2.5
1.3e−05
1.5e−05
1.7e−05
1.9e−05
0
2
4
6
wlb
2.4
2.6
2.8
3.0
3.2
3.4
3.6
Parameter / variable input level (marginal)
In this case it is a toss-up between them. Both show primary sensitivity to bias in reported catches (fairly
obviously) and little sensitivity to the remaining inputs. In this case it might be necessary to try an alternative
run of the operating model given other credible parameters to see if we can distinguish between these methods.
5.4
What have we learned?
In this simple walkthrough we have established what methods work best for our stock, fishery and observation
type. It was possible to establish the frailties of these methods by examining what simulated parameters drive
yield and probability of overfishing (using the plot() function). Our application to real data produced actual
OFL recommendations for methods that were available. At least three methods could not be applied that the
MSE indicated could provide benefits in terms of both yield and limiting overfishing. We know what data are
necessary to make these work but have yet to decide whether collecting these data is worthwhile. Above all, the
approach is transparent and reproducible.
Depending on how utility is characterised, it may be possible to establish the cost-efficacy of future datacollection based on the long-term yield differential of the methods that are available and those that need additional
data.
6
Designing new methods
DLMtool was designed to be extensible in order to promote the development of new methods. In this section we
design a series of new methods that include spatial controls and input controls in the form of age-restrictions.
The central requirement of any method is that it can be applied to a DLM data object using the function sapply
(sfSapply() in parallel processing). DLM data object have a single position x for each data entry, e.g. one value for
natural mortality rate (DLM@M[x]), a single vector of historical catches (DLM@Cat[x,]) etc. In the MSE analysis
26
this is extended to nsim positions. It follows that any method arranged to function sapply(x,Method,DLM) will
work. For example we can get 5 stochastic samples of the OFL for the demographic FMSY method paired to
catch-curve analysis FdemCC applied to a real data-limited data object for red snapper using:
sapply(1,Fdem_CC,Red_snapper,reps=5)
##
##
##
##
##
##
[,1]
[1,] 4.799758
[2,] 5.706588
[3,] 15.357402
[4,] 11.939161
[5,] 33.532211
The MSE just populates a DLM data object with many simulations and uses sapply() (or sfSapply() in
cluster computing mode) to calculate an management recommendation for each simulation. By making methods
compatible with this standard the very same equations are used in both the MSE and the real management
advice.
The following new methods illustrate this.
6.1
Average historical catch method
The average historical catch has been suggested as a starting point for setting OFLs in the most data-limited
situations (following Restrepo et al. 1998). Here we design such an approach:
AvC<-function(x,DLM,reps)rlnorm(reps,log(mean(DLM@Cat[x,],na.rm=T)),0.1)
Note that all methods have to be stochastic in this framework which is why we sample from a log-normal
distribution with a CV of roughly 10 per cent.
Before the method can be ’seen’ by the rest of the DLM package we have to do three more things. The method
must be assigned a class based on what outputs it provides. Since this is an output control (quota) based method
we assign it class ’DLM quota’. The method must also be assigned to the DLMtool namespace and -if we are
using parallel computing- exported to the cluster:
class(AvC)<-"DLM quota"
environment(AvC) <- asNamespace('DLMtool')
sfExport("AvC")
6.2
Third-highest catch
In some data-limited settings third highest historical catch has been suggested as a possible catch-limit. Here we
use a similar approach to the average catch method above (AvC) and take draws from a log-normal distribution
with CV of 10 per cent:
THC<-function(x,DLM,reps){
rlnorm(reps,log(DLM@Cat[x,order(DLM@Cat[x,],decreasing=T)[3]]),0.1)
}
class(THC)<-"DLM quota"
environment(THC) <- asNamespace('DLMtool')
sfExport("THC")
27
6.3
Fishing starting at age 5
To simulate input controls that aim to alter the age-vulnerability to fishing it is possible to design a method of
class ’DLM size’. These simply describe a vector of fractional vulnerability (0-1) across ages. In this example
we freeze fishing on age-classes 1-4 and maintain fishing for ages 5+:
agelim5<-function(x,DLM)c(rep(0,4),rep(1,DLM@MaxAge-4))
class(agelim5)<-"DLM size"
environment(agelim5) <- asNamespace('DLMtool')
sfExport("agelim5")
Note that for compatibility, these approaches still require an ’x’ argument even if they don’t make use of it (ie
they are the same regardless of the data or simulated data).
6.4
Reducing fishing rate in area 1 by 50 per cent
Spatial controls operate similarly to the age/size based controls: a vector of length 2 (the spatial simulator is
a 2-box model) that indicates the fraction of current spatial catches. This is an early version of spatial control
in the DLMtool so it only deals with reductions in catch and does not simulate reallocation of fishing effort. In
this example we reduce catches in area 1 by 50 percent and assign the method class ’DLM space’.
area1_50<-function(x,DLM)c(0.5,1)
class(area1_50)<-"DLM space"
environment(area1_50) <- asNamespace('DLMtool')
sfExport("area1_50")
6.5
Applying the new methods
Our methods are now compatible with all of the DLMtool functionality. Lets run a quick MSE and see how they
fare:
new_methods<-c("AvC","THC","agelim5","area1_50")
OM<-new('OM',Porgy, Generic_IncE, Imprecise_Unbiased)
PorgMSE<-runMSE(OM,new_methods,maxF=1,nsim=20,reps=1,proyears=20,interval=5)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
[1] "Loading operating model"
[1] "Optimizing for user-specified movement"
[1] "Optimizing for user-specified depletion"
[1] "Calculating historical stock and fishing dynamics"
[1] "Calculating MSY reference points"
[1] "Calculating reference yield - best fixed F strategy"
[1] "Determining available methods"
[1] "1/4 Running MSE for AvC"
....................
[1] "2/4 Running MSE for THC"
....................
[1] "3/4 Running MSE for agelim5"
....................
[1] "4/4 Running MSE for area1_50"
....................
28
80
100
30
40
50
60
70
80
area1_50
AvC
THC
20
THC
60
Relative yield
AvC
agelim5
40
60
area1_50
40
agelim5
20
Relative yield
80
100
Tplot(PorgMSE)
90
100
40
50
70
80
90
100
100
80
20
THC
20
30
area1_50
AvC
40
AvC
60
Relative yield
area1_50
agelim5
40
50
60
THC
20
80
60
agelim5
40
Relative yield
60
Prob. biomass < BMSY (%)
100
Prob. of overfishing (%)
70
Prob. biomass < 0.5BMSY (%)
0
10
20
30
40
50
Prob. biomass < 0.1BMSY (%)
What if starting depletion were different, e.g. likely to be under BMSY?
OM@D
## [1] 0.05 0.60
OM@D<-c(0.05,0.3)
PorgMSE2<-runMSE(OM,new_methods,maxF=1,nsim=20,reps=1,proyears=20,interval=5)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
[1] "Loading operating model"
[1] "Optimizing for user-specified movement"
[1] "Optimizing for user-specified depletion"
[1] "Calculating historical stock and fishing dynamics"
[1] "Calculating MSY reference points"
[1] "Calculating reference yield - best fixed F strategy"
[1] "Determining available methods"
[1] "1/4 Running MSE for AvC"
....................
[1] "2/4 Running MSE for THC"
....................
[1] "3/4 Running MSE for agelim5"
....................
[1] "4/4 Running MSE for area1_50"
....................
Tplot(PorgMSE2)
29
70
60
70
60
THC
area1_50
AvC
20
20
50
50
Relative yield
30
THC
area1_50 AvC
40
agelim5
40
60
50
40
30
Relative yield
agelim5
70
80
90
100
60
80
90
100
110
70
60
50
60
THC
area1_50
20
20
50
Relative yield
30
THC
area1_50
AvC
40
agelim5
40
60
40
50
agelim5
30
Relative yield
70
Prob. biomass < BMSY (%)
70
Prob. of overfishing (%)
70
80
90
0
Prob. biomass < 0.5BMSY (%)
10
20
AvC
30
40
50
60
70
Prob. biomass < 0.1BMSY (%)
Putting aside the likelihood of implementing a perfect knife-edge vulnerability to fishing at age 5, it appears
that we have a clear winner in agelim5 even under different starting depletion levels. Third highest catch on the
other hand appears risky to say the least. You could try some other starting depletion levels to see under what
circumstances the trade-off space changes dramatically.
7
Managing real data
DLMtool has a series of functions to make importing data and applying data-limited methods relatively straightforward. There are two approaches: (1) fill out a .csv data file in excel or a text editor and automatically create
a DLM data object (class DLM) or (2) create a blank DLM data object in R and populate it in R.
7.1
Importing data
Probably the easiest way to get your data into the DLMtool is to populate a .csv datafile. These files have a line
for each slot of the DLMdata object e.g:
slotNames('DLM')
##
##
##
##
##
##
##
##
##
##
##
##
##
[1]
[6]
[11]
[16]
[21]
[26]
[31]
[36]
[41]
[46]
[51]
[56]
[61]
"Name"
"t"
"BMSY_B0"
"LFC"
"vbK"
"steep"
"CV_Mort"
"CV_Iref"
"CV_vbLinf"
"CV_wla"
"Units"
"PosMeths"
"quotabias"
"Year"
"AvC"
"Cref"
"LFS"
"vbLinf"
"CV_Cat"
"CV_FMSY_M"
"CV_Rec"
"CV_vbt0"
"CV_wlb"
"Ref"
"Meths"
"Sense"
"Cat"
"Dt"
"Bref"
"CAA"
"vbt0"
"CV_Dt"
"CV_BMSY_B0"
"CV_Dep"
"CV_AM"
"CV_steep"
"Ref_type"
"OM"
"CAL_bins"
"Ind"
"Mort"
"Iref"
"Dep"
"wla"
"CV_AvC"
"CV_Cref"
"CV_Abun"
"CV_LFC"
"sigmaL"
"Log"
"Obs"
"CAL"
30
"Rec"
"FMSY_M"
"AM"
"Abun"
"wlb"
"CV_Ind"
"CV_Bref"
"CV_vbK"
"CV_LFS"
"MaxAge"
"params"
"quota"
"MPrec"
You do not have to enter data for every line of the data file, if data are not available simply put an ’NA’ next
to any given field.
A number of example .csv files can be found in the directory where the DLMtool package was installed:
DLMDataDir()
## [1] "C:/Users/Tom/AppData/Local/Temp/RtmpSU9OhZ/Rinst12d4443410bf/DLMtool/"
To get data from a .csv file you need only specify its location e.g new(’DLM’,”I:/Mackerel.csv”):
7.2
Populating a DLM data object in R
Alternatively you can create a blank DLM data object and fill the slots directly in R. E.g:
Madeup<-new('DLM')
#
Create a blank DLM object
## [1] "Couldn't find specified csv file in DLM/Data folder, blank DLM object created"
Madeup@Name<-'Test'
Madeup@Cat<-matrix(20:11*rlnorm(10,0,0.2),nrow=1)
Madeup@Units<-"Million metric tonnes"
Madeup@AvC<-mean(Madeup@Cat)
Madeup@t<-ncol(Madeup@Cat)
Madeup@Dt<-0.5
Madeup@Dep<-0.5
Madeup@Mort<-0.1
Madeup@Abun<-200
Madeup@FMSY_M<-0.75
Madeup@AM<-3.5
Madeup@BMSY_B0<-0.35
7.3
#
#
#
#
#
#
#
#
#
#
#
#
Name it
Generate fake catch data
State units of catch
Average catches for time t (DCAC)
No. yrs for Av. catch (DCAC)
Depletion over time t (DCAC)
Depletion relative to unfished
Natural mortality rate
Current abundance
Ratio of FMSY/M
Age at maturity
BMSY relative to unfished
Working with DLM data objects
A generic summary function is available to visualize the data in a DLMdata object:
50
15
2002
2004
2006
2008
2010
2006
2008
2010
10
2000
0.0
0
1.5
Year
Relative abundance
Stock depletion
Natural Mortality rate
Ratio of FMSY to M
Depletion over time t
BMSY relative to unfished
Von B. k parameter
5
1998
Relative frequency
0 20
Catch (thousand tonnes)
summary(Atlantic_mackerel)
1998
2000
2002
2004
0.0
Year
31
0.2
0.4
0.6
0.8
1.0
1.2
You can see what methods can and can’t be applied given your data and also what data are needed to get
methods working:
Can(Atlantic_mackerel)
##
##
##
##
##
##
##
##
[1]
[6]
[11]
[16]
[21]
[26]
[31]
[36]
"BK"
"DBSRA_40"
"DD4010"
"Fratio"
"Islope4"
"SBT1"
"YPR"
"area1MPA"
"CC1"
"DCAC"
"DepF"
"Fratio4010"
"Itarget1"
"SPMSY"
"AvC"
"area1_50"
"CC4"
"DCAC4010"
"DynF"
"GB_slope"
"Itarget4"
"SPSRA"
"THC"
"DBSRA"
"DCAC_40"
"Fadapt"
"Gcontrol"
"Rcontrol"
"SPmod"
"matsizlim"
"DBSRA4010"
"DD"
"Fdem"
"Islope1"
"Rcontrol2"
"SPslope"
"agelim5"
Cant(Atlantic_mackerel)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
[1,]
[2,]
[3,]
[4,]
[5,]
[6,]
[7,]
[8,]
[9,]
[10,]
[11,]
[12,]
[13,]
[14,]
[15,]
[16,]
[17,]
[18,]
[19,]
[20,]
[21,]
[,1]
"BK_CC"
"BK_ML"
"DBSRA_ML"
"DCAC_ML"
"FMSYref"
"FMSYref50"
"FMSYref75"
"Fdem_CC"
"Fdem_ML"
"Fratio_CC"
"Fratio_ML"
"GB_CC"
"GB_target"
"LstepCC1"
"LstepCC4"
"Ltarget1"
"Ltarget4"
"SBT2"
"SPSRA_ML"
"YPR_CC"
"YPR_ML"
[,2]
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Produced all
"Produced all
"Insufficient
"Insufficient
"Insufficient
"Insufficient
"Produced all
"Insufficient
"Insufficient
"Insufficient
data"
data"
data"
data"
data"
data"
data"
data"
data"
data"
data"
NA scores"
NA scores"
data"
data"
data"
data"
NA scores"
data"
data"
data"
Needed(Atlantic_mackerel)
##
##
##
##
##
##
##
##
##
##
##
[1]
[3]
[5]
[7]
[9]
[11]
[13]
[15]
[17]
[19]
[21]
"BK_CC: CAA"
"DBSRA_ML: CAL"
"FMSYref: OM"
"FMSYref75: OM"
"Fdem_ML: CAL"
"Fratio_ML: CAL"
"GB_target: Cref, Iref"
"LstepCC4: CAL, MPrec"
"Ltarget4: CAL"
"SPSRA_ML: CAL"
"YPR_ML: CAL"
"BK_ML: CAL"
"DCAC_ML: CAL"
"FMSYref50: OM"
"Fdem_CC: CAA"
"Fratio_CC: CAA"
"GB_CC: Cref"
"LstepCC1: CAL, MPrec"
"Ltarget1: CAL"
"SBT2: Rec, Cref"
"YPR_CC: CAA"
Spatial methods and age-vulnerability methods can be MSE tested but are a management recommendation in
32
themselves. DLM quota methods however can be calculated and plotted using getQuota() function:
Atlantic_mackerel<-getQuota(Atlantic_mackerel,reps=48)
plot(Atlantic_mackerel)
OFL calculation for Atlantic_mackerel
0
2
4
6
BK
CC1
CC4
DBSRA
DBSRA4010
DBSRA_40
0
5
10
15
0
2
4
6
DCAC
DCAC4010
DCAC_40
DD
DD4010
DepF
0
5
10
15
20
0
2
4
6
DynF
Fadapt
Fdem
Fratio
Fratio4010
GB_slope
0
5
10
15
20
2
4
6
Gcontrol
Islope1
Islope4
Itarget1
Itarget4
Rcontrol
0
Relative frequency
20
0
5
10
15
20
0
2
4
6
Rcontrol2
SBT1
SPMSY
SPSRA
SPmod
SPslope
0
5
10
15
20
0
2
4
6
YPR
AvC
THC
0
5
10
15
20
OFL (thousand tonnes)
8
Efficacy test of an hypothetical Marine Protected Area
Marine Protected Areas (MPAs) have been suggested as a management tool for limiting the impact of overfishing.
In this section we create a Marine Reserve (no fishing) and examine performance given different reserve size and
exchange rates.
8.1
Adapting an existing Stock object
We use the Snapper stock object as a template and modify two variables, the probability of individuals staying
in area 1 (the MPA) and the size of area 1 (the MPA):
33
Rock<-Rockfish
Rock@Prob_staying<-c(0.9,0.999)
Rock@Frac_area_1<-c(0.05,0.5)
We now run the MSE for the area1MPA method (catches maintained at current levels in area 2 and set to
zero in area 1).
RockMPA<-runMSE(new('OM',Rock,Generic_fleet,Generic_obs),"area1MPA",nsim=20)
##
##
##
##
##
##
##
##
##
[1] "Loading operating model"
[1] "Optimizing for user-specified movement"
[1] "Optimizing for user-specified depletion"
[1] "Calculating historical stock and fishing dynamics"
[1] "Calculating MSY reference points"
[1] "Calculating reference yield - best fixed F strategy"
[1] "Determining available methods"
[1] "1/1 Running MSE for area1MPA"
............................
summary(RockMPA)
##
Method Yield
POF
P10
P50
P100
## 1 area1MPA 64.66 41.04 48.58 40.63 2.15 9.59 15 29.67 54.46
42
area1MPA
0.0
1.0
2.0
48.6% POF
64.7% FMSY yield
0
5
10
0.0 0.5 1.0 1.5 2.0
MSEobj@B_BMSY[1, mm, ]
B/BMSY
MSEobj@F_FMSY[1, mm, ]
F/FMSY
plot(RockMPA)
15
20
25
20
25
54.5%
< BMSY
Index
15% < 0.5BMSY
2.1% < 0.1BMSY
0
5
10
15
Projection year
34
5%
F/FMSY
1.5
2.0
2.5
40%
0.5
1.0
Start
End
0.0
25%
30%
0.0
0.5
1.0
1.5
2.0
80
70
area1MPA
50
60
Relative yield
70
60
area1MPA
50
Relative yield
80
B/BMSY
c(MSEobj@B_BMSY[1, mm, 1], MSEobj@B_BMSY[1, mm, 2])
35
40
45
50
55
60
40
45
50
55
60
65
70
70
area1MPA
50
50
60
area1MPA
60
70
Relative yield
80
Prob. biomass < BMSY (%)
80
Prob. of overfishing (%)
Relative yield
c(MSEobj@F_FMSY[1, mm, 1], MSEobj@F_FMSY[1, mm, 2])
area1MPA
12
14
16
18
1.6
Prob. biomass < 0.5BMSY (%)
1.8
2.0
2.2
2.4
Prob. biomass < 0.1BMSY (%)
35
2.6
0.4
0
0.8
dFfinal
●
●
● ●●
1.00
●
1.10
LFCbias
●
●●●
0.25
0.35
● ●
0.45
40
60
20
● ●
1.15
●
1.1
●
●
●
●
●●
●
0.0
Mgrad
0.40
0.50
●
●
●
●
●
●
●
●
●
●
0.4
100
● ●
●
● ●
●
●
●
●
●
●
0.60
0.70
hs
80
●
●
●
0.9
Irefbias
●
●
●
0.7
60
●
−0.4
procsd
40
60
1.05
●
●
●●
●
● ●
●
●
●
●
●
●
●
40
●
●
●
● ●
●●
●
0.95
●●
●
●
20
●
●
●
100
●
●
●
80
●● ●
●
●
20
●
Kbias
●
80 100
80 100
80 100
40
0.85
20
●
0.90
● ●
● ●
●
●
0.45
●
●
●
●
●
●●
● ● ● ●
7.0
7.5
●
8.0
●
0
●
●
●
●
●
●
40
●
●
20
●
20
20
● ●
0.0
●
●
●
●
80
●
●
● ●
●
0.35
60
●
40
●
● ●●●●
0.25
40
●
●
●
● ●
procsd
80
60
●●
●
●
60
80 100
60
8.5
●
●
●●
●
●
60
8.0
●
60
80
●
●
●
20
● ●
●
●
100
100
●
7.5
ageM
●
40
●
100
7.0
●
60
0.8
100
0.4
●
●
80
0.0
●
●
●
●●
●
dFfinal
0
● ●
●
●
●
●●
●
−0.4
●●
●
40
●
●
●
0
●
●
●
●
●
20
●
−0.4
Prob. Overfishing(%)
●
●
●
20
●
●
0
60
40
●
●
●
●
40
●
● ●
60
●
●
●
●
●
●
●
●
●
40
●
●
●
●
●
●
●
●
20
●
●
●
●
● ●
●
●
80 100
80 100
●
●
●
0
●
●
20
Yield (%relative to FMSY)
MSE correlation evaluation for Stock:Rockfish Fleet:Generic_fleet Observation model:Generic_obs: area1MPA
8.5
ageM
0.1
● ●● ●
0.2
0.3
●●
0.4
Frac_area_1
The sensitivity plots reveal that the fraction of the stock in area1 is critical to determining the effect of the
MPA in terms of probability of overfishing but has much less impact on the long-term yield, despite reducing
catches by an increasingly large amount as fraction in area 1 increases. In terms of yield, recruitment compensation (steepness, h) is a stronger determinant of yield than the size of the MPA. Interestingly the probability of
individuals staying in area 1 does not feature in the top six most correlated variables for either yield or probability
of overfishing.
9
9.1
Limitations
Idealised observation models for catch composition data
Currently, DLMtool simulates catch-composition data from the true simulated catch composition data via a
multinomial distribution and some effective sample size. This observation model may be unrealistically wellbehaved and favour those approaches that use these data.
9.2
Harvest control rules must be integrated into data-limited methods
In this version of DLMtool, harvest control rules (e.g. the 40-10 rule) must be written into a data-limited method.
There is currently no functionality whereby a given HCR can be applied to a given class of method. The reason
for this is that it would require further subclasses. For example the 40-10 rule may be appropriate for the output
of DBSRA but it would not be appropriate for some of the simple management procedures such as DynF that
already incorporate throttling of quota recommendations according to stock depletion.
9.3
Natural mortality rate at age
The current simulation assumes constant M with age. Age-specific M will be added soon.
9.4
Ontogenetic habitat shifts
Since the operating model simulated two areas, it is possible to prescribe a log-linear model that moves fish from
one area to the other as they grow older. This could be used to simulate the ontogenetic shift of groupers from
near shore waters to offshore reefs. Currently this feature is in development.
36
9.5
Implementation error
In this edition of DLMtool there is no implementation error. The only imperfection between a management
recommendation and the simulated quota comes in the form of the MaxF argument that limits the maximum
fishing mortality rate on any given age-class in the operating model. The default is 0.8 which is high for all but
the shortest living fish species.
10
References
Carruthers, T.R., Punt, A.E., Walters, C.J., MacCall, A., McAllister, M.K., Dick, E.J., Cope, J. 2014. Evaluating
methods for setting catch-limits in data-limited fisheries. Fisheries Research. 153, 48-68.
Carruthers, T.R., Kell, L., Butterworth, D., Maunder, M., Geromont, H., Walters, C., McAllister, M., Hillary,
R., Kitakado, T., Davies, C. 2015. Performance review of simple management procedures. (Fish and Fisheries
intended journal).
Costello, C., Ovando, D., Hilborn, R., Gains, S.D., Deschenes, O., Lester, S.E., 2012. Status and solutions for the
world???s unassessed fisheries. Science. 338, 517-520. Deriso, R. B., 1980. Harvesting Strategies and Parameter
Estimation for an Age-Structured Model. Can. J. Fish. Aquat. Sci. 37, 268-282.
Dick, E.J., MacCall, A.D., 2011. Depletion-Based Stock Reduction Analysis: A catch-based method for determining sustainable yields for data-poor fish stocks. Fish. Res. 110, 331-341.
Geromont, H.F. and Butterworth, D.S. 2014. Complex assessment or simple management procedures for efficient
fisheries management: a comparative study. ICES J. Mar. Sci. doi:10.1093/icesjms/fsu017
MacCall, A.D., 2009. Depletion-corrected average catch: a simple formula for estimating sustainable yields in
data-poor situations. ICES J. Mar. Sci. 66, 2267-2271.
Restrepo, V.R., Thompson, G.G., Mace, P.M., Gabriel, W.L., Low, L.L., MacCall, A.D., Methot, R.D., Powers,
J.E., Taylor, B.L., Wade, P.R., Witzig, J.F.,1998. Technical Guidance On the Use of Precautionary Approaches
to Implementing National Standard 1 of the Magnuson-Stevens Fishery Conservation and Management Act.
NOAA Technical Memorandum NMFS-F/SPO-31. 54 pp.
37