library(knitr) ## Global options opts_chunk$set(cache =TRUE, cache.path='cache/mse/', echo =TRUE, eval =TRUE, prompt =FALSE, comment =NA, message =FALSE, warning =FALSE, tidy =FALSE, fig.height=6, fig.width =8, fig.path ='tex/mse-') iFig=0
This vignette presents examples of conducting Management Strategy Evaluation (MSE) for data poor stocks.
MSE simulates feedback control, by simulation testing Management Procedures (MPs), where an MP is the combination of pre-defined data, together with an algorithm to which the data are input to provide a value for a TAC or effort control measure. the MP uses estimates of stock status to set management regulations, the resource is projected forward and then MP reapplied. The MP can be model based where a stock assessment is used to estimate stock status relative to reference points and then a Harvest Control Rule (HCR) used to set a total allowable catch (TAC). Alternatively the MP can be empirical where the data themselves are used to set management actions, e.g. if an index of abundance is increasing then catch is increased.
ICES classifies on the basis of the available data in order to identifying the advice rules to be applied. For example Category 1 stocks are those where quantitative assessments are available (i.e. estimates of stock and fishing mortality relative to reference points). While Category 3: stocks are where only surveys are avaiable that provide trends in stock metrics, such as biomass, recruitment or total mortality.
library(FLCore) library(ggplotFL) library(FLBRP) library(FLasher) library(FLife) library(mydas)
The Operating Model (OM) was conditioned turbot on turbot life history data.
The dynamics are modelled by an FLStock
object
data(om)
and the equilibrium dynamics by FLBRP
.
data(eq)
To simulation random variation in the time series model deviations in recruits.
set.seed(1234) srDev=rlnoise(dims(om)$iter,fbar(om)%=%0,.3,b=0.0) plot(srDev,iter=c(7,2,9))
Figure r iFig=iFig+1; iFig
Time series of recruitment deviates
The stock is then projected with these deviates.
om =propagate(om,dims(om)$iter) oms=FLStocks("Projection"=fwd(om,fbar=fbar(om)[,-1],deviances=srDev,sr=eq)) plot(oms[["Projection"]],iter=1:3)+ theme(legend.position="none")
Figure r iFig=iFig+1; iFig
Stochastic Time series of F, SSB, recruitment and yield; lines are individual Monte Carlo simulations.
To generate psuedo data for use by the MPs, first generate catch per unit effort (CPUE).
u=catch(om)%/%fbar(om)
Then simulate measurement error
set.seed(3321) uDev=rlnorm(dims(om)$iter,u%=%0,.2)
plot(u%*%uDev,iter=c(7,2,9))
Figure r iFig=iFig+1; iFig
Time series of recruitment deviates
\newpage
The MP is based on a biomass dynamic stock assessment model which takes as inputs total catch and catch per unit effort (CPUE) as a proxy for stock abundance and estimates population growth rate ($r$), virgin biomass ($K$) and the surplus production function.
Model-based MPs, based on a stock assessment model, may include the estimation of MSY-based reference points, but the values of F, $F_{MSY}$ , B and $B_{MSY}$ from the OM do not need to be equivalent to their proxies in the MP (e.g. if a stock assessment models used in the MP is structually different from that used to condition the OM).
The mpb
package includes is a biomass dynamic stock assessment, designed to be used as an MP.
library(mpb)
#load("/home/laurence/tmp/oms.RData") #source('~/Desktop/flr/mpb/R/hcr.R') #source('~/Desktop/flr/mpb/R/setMP.R') mp=mpb:::setMP(as(window(om,end=75),"biodyn"), r = 0.25, k =1000.0, b0= 0.9, p = -0.6) #save(om,mp,file="/home/laurence/tmp/t.RData")
A harvest control rule (HCR) is then used to set a TAC.
library(kobe) hcr= data.frame(stock =c(0.0 ,0.1 , 0.6,2.0), harvest=c(0.01,0.01, 0.7,0.7)) kobePhase()+ geom_line(aes(stock,harvest),data=hcr,col="orange",size=2)
Figure r iFig=iFig+1; iFig
Hockey stick harvest control rule.
The brown line sets the harvest rate (y-axis) depending on the estimated stock biomass (x-axis).
set.seed(1234) uDev =rlnoise(dims(om)$iter,FLQuant(0,dimnames=dimnames(iter(catch(om),1))),0.2,b=0.0) selDev=rlnoise(dims(om)$iter,FLQuant(0,dimnames=dimnames(iter( m(om),1))),0.2,b=0.0) oms["Biomass"]=mydas:::mseMPB2(om,eq,mp,start=75,end=100,interval=3, ftar=0.6, sr_deviances=srDev, u_deviances=uDev, sel_deviances=selDev)
plot(window(oms[["Biomass"]],end=100),iter=1:3)+ theme(legend.position="none")
Figure r iFig=iFig+1; iFig
Time series from the MSE of F, SSB, recruitment and yield
In an empirical MP management is based on the data directly. The Commission for the Conservation of Southern Bluefin Tuna (CCSBT) provides a model-free example of a MP \citep{hillary2016scientific} that is based on year-to-year changes and trends in empirical indicators (i.e. CPUE and fisheries independent indices); reference levels are then tuned to meet management objectives using MSE, where tuning refers to adjusting the parameters of the MP to try and achieve the stated objectives represented by the OM.
A derivative control rule (D) is so called as the control signal is derived from the trend in the signal, i.e. to the derivative of the error.
\begin{equation}
TAC^1_{y+1}=TAC_y\times
\left{\begin{array}{rcl}
{1-k_1|\lambda|^{\gamma}} & \mbox{for} & \lambda<0\[0.35cm]
{1+k_2\lambda} & \mbox{for} & \lambda\geq 0
\end{array}\right.
\end{equation}
where $\lambda$ is the slope in the regression of $\ln I_y$ against year for the most recent $n$ years and $k_1$ and $k_2$ are \textit{gain} parameters and $\gamma$ actions asymmetry so that decreases in the index do not result in the same relative change as as an increase.
control=FLPar(k1=1,k2=1,gamma=1) oms["Emprirical"]=mydas:::mseSBTD(om,eq,control=control, sr_deviances=srDev,u_deviances=uDev, start=75,end=100)
plot(window(oms[["Emprirical"]],end=100),iter=1:3)+ theme(legend.position="none")
Figure r iFig=iFig+1; iFig
Time series from the MSE of F, SSB, recruitment and yield
A proportional control rule (P) is so called as the action is determined in proportion to the error between a signal and a reference value
\begin{equation} %\begin{align} C^{\rm targ}y = \left{\begin{array}{rcl} {\delta \left[\frac{I{y}}{I^}\right]^{1-k1}} & \mbox{for} & I_{y}\geq I^\ {\delta \left[\frac{I_{y}}{I^}\right]^{1+k2}} & \mbox{for} & I_{y}<I^ \ \end{array} \right. %\end{align} \end{equation}
where $\delta$ is the target catch and $k_1$ and $k_2$ are the gain terms
The TAC is then the average of the last TAC and the value output by the HCR.
\begin{equation} TAC_{y+1} = 0.5\times\left(TAC_y+C^{\rm targ}_y\right)\ \end{equation}
#source('~/Desktop/flr/mydas/R/mseSBTP.R') set.seed(1234) controlP=rbind(FLPar(k1=0.25), FLPar(k2=0.25)) controlP=propagate(controlP,100) res =mseSBTP(om,eq, control =controlP, start =70,end=100, sr_deviances=srDev, u_deviances =uDev, refU =31:35, refCatch=35:40)
plot(res,iter=7:8)
\newpage
r version$version.string
r packageVersion('mydas')
r packageVersion('FLCore')
r packageVersion('FLBRP')
r packageVersion('FLasher')
r packageVersion('FLife')
r packageVersion('mpb')
r date()
r system("git log --pretty=format:'%h' -n 1", intern=TRUE)
Laurence Kell. laurie@seaplusplus.es
This vignette and many of the methods documented in it were developed under the MyDas project funded by the Irish exchequer and EMFF 2014-2020. The overall aim of MyDas is to develop and test a range of assessment models and methods to establish Maximum Sustainable Yield (MSY) reference points (or proxy MSY reference points) across the spectrum of data-limited stocks.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.