In this vignette we illustrate the use of the knobi
package through a real case example. For this purpose, the formulation
of the Known Biomass Production Models (KBPMs) is explained and then
each of the functions of the package is described and applied to a real
case study.
Please note that this vignette does not cover all possibilities for each function in this package (i.e., not all arguments or combinations of arguments are used). Instead, it focuses on describing the basic usage of the functions, with some alternatives included for certain functions. For more detailed information, please refer to the help documentation for each function in the package.
For a correct understanding of KBPM models, we start reviewing the surplus production models (SPMs) framework and then based on this background the KBPM formulation is described.
Traditional SPMs are one of the most widely used data-limited (or data moderated) assessment models. Their general structure relates directly to Russell’s formulation of the stock dynamics:
\[B_{t+1}=B_t + f(B_t)-C_t\] Eq. (1)
where Bt is the stock biomass at the beginning of year t, Ct is the biomass caught during year t and f(Bt) is the biomass production function.
There are many formulations of the biomass production function f(Bt), among which the general Pella-Tomlinson (1969) is widely used:
\[f(B_t) = \frac{r}{p}{B_{t}} \left(1-\left( \frac{B_{t}}{K}\right) ^{p}\right)\] Eq. (2)
where r is the intrinsic population growth rate, K is the carrying capacity and p is the asymmetry parameter, which allows non-symmetrical production curves and, consequently, maximum production different from K/2. Schaefer (1954) model corresponds to p=1 (symmetric production curve and \(SP_{max}=K/2\)).
SPMs link the population dynamics, i.e. Eq. (1) with the observations through the relation between the catch and the stock biomass across the catchability coefficient (q).
\[\hat{I}_t=C_t/E_t=qB_t\] where It is the value of the relative biomass index for year t, notation ˆ denotes an estimated value and q is the catchability coefficient, which scales the modeled stock biomass to match the trends in catch rates.
An alternative line of research based on surplus production models named known-biomass production models (KBPM) was developed (MacCall, 2002). The basis of the KBPM model is the idea that the annual surplus production in an unfished stock is equal to Bt+1-Bt, and that, for a fished stock, the calculation of surplus production depends on catch.
\[SP_t=\overline{B}_{t+1}-\overline{B}_t+C_t\] Eq. (3)
where SPt is the surplus production during year t, Bt is the average biomass or SSB, Bt=(Bt+Bt+1)/2, and Ct represents the catch during year t.
In contrast to the traditional SPMs, KBPMs use as input data a biomass time series, estimated using another stock assessment model, instead of a biomass index.
Once the surplus production is calculated using the known average biomass (of two consecutive years) and the observed catch, the KBPMs are fitted as:
\[SP_{t}= \frac{r}{p}\overline{B}_{t}\left(1-\left( \frac{\overline{B}_{t}}{K}\right) ^{p}\right)\] Eq. (4)
knobi packageIn this section the knobi package functions are
described. More precisely, in each one of the next subsections the
following package functions are explained:
knobi_fit: fits the KBPM model (main
function).
knobi_env: analyzes the production changes in
response to environmental fluctuations.
knobi_retro: carries out the retrospective
analysis.
knobi_proj: projects the population and fishery
dynamics.
knobi_fitThis section illustrates the use of the knobi_fit
function, which allows us to fit the KBPM model.
For that, the case study of European hake (\(Merluccius\) \(merluccius\)) is used. European hake is a resource of great commercial importance in Atlantic Iberian Waters. This species is assessed by the International Council for the Exploration of the Sea (ICES) in two units: the northern and the southern stocks. For the current illustration we focus on the northern hake unit which covers the subareas 4, 6, and 7, and divisions 3.a, 8.a–b, and 8.d (Greater North Sea, Celtic Seas, and the northern Bay of Biscay).
data argumentThe first step is to create the data input object.
The data was downloaded using the icesSAG package and
saved in the knobi_dataset under the hake_n
object.
Then the data list for knobi_fit is
created. Mandatory data are the catch time series and the biomass or SSB
time series. However, in this example we also include some additional
available information.
As you can see, in the code below, the data input argument is
created. Firstly we introduce both, the biomass and spawning stock
biomass (SSB) series, then below in the control argument we
indicate which of the two series is used in the fit. After that, in the
next line of code, we introduce the second data source which are the
catches. After introducing the two main sources of information, we can
add more details that are used mainly for comparing KBPM results with
those derived from the assessment model that produced the SSB estimates
(a data-rich model). In this particular case, we add the recruitment
series, the value of the reference point \(F_{msy}\) and the years associated to the
observed catch time series (if omitted, an increasing sequence from 1
onward will be used).
Details about the optional entries of this argument can be found on the help page.
control objectcontrol list contains a set of settings for the KBPM
fit. In this example. it includes the argument pella, which
is an optional logical argument where “TRUE” means that Pella-Tomlinson
model is fitted instead of the Schaefer one.
There is the possibility of defining other control
settings such as start_r, start_K or
start_p, optional start values of the model parameters
\(r\) (intrinsic growth rate), \(K\) (maximum population size) and \(p\) (shape parameter in Pella-Tomlinson
model), respectively.
After preparing both lists, data and
control, we can apply the knobi_fit function
over them for fitting the KBPM model.
In addition to the arguments mentioned above, the
plot_out=TRUE argument allows the creation of an external
folder with the corresponding plots files also displayed in the plot
window. We can set the folder name and its directory through the
plot_filename and the plot_dir arguments,
respectively.
Note that if the length of the input catch time series does not match with the SSB length, a warning is returned indicating that the series of catch is reduced so that the fit can be done.
#> Warning in knobi_fit(data, control, plot_out = FALSE): The length of the catch
#> time series is reduced according to biomass or SSB time series length.
As you can see, the following input quantities are plotted: fishing
mortality time series, SSB, surplus production and catch time series.
Note that in this example we are using control$method=SSB,
which means that we are going to operate with the SSB and not with the
stock biomass. Plots of catch over fishing mortality, fishing mortality
over SSB, and catch over SSB time series with a smooth line from a
“loess” regression are also displayed. Plot of input-output time series
of fishing mortality is also provided with horizontal lines at fishing
mortalities at MSY (two lines representing both input and output). The
fishing mortality relative to \(F_{msy}\) is also plotted including a
reference horizontal line at 1. The analogous SSB plots are also
reported. It is important to mention that, in these cases, inputs are
represented in blue and outputs in red, highlighting the case of the
SSB, where the absolute value is an input of the model, while the
relative SSB (SSB/SSBmsy) depends on the estimation of the reference
point, so it is represented in red as well. On the other hand, the
fitted surplus production curve is plotted twice with the observed Sp
over SSB (first plot) and with the catch over SSB observations (second
plot). Finally, a plot with the KBPM fit residuals is shown.
The formula and the parameter estimates of the fit are printed running the name of the output object.
hake_n_results
#>
#> Formula:
#> SP_t = (r/p)*B_t*(1-(B_t/K)^p)
#>
#> Parameter estimates:
#> r 0.6303395
#> K 529631.1
#> p 0.25
#> The hake_n_results object is a list containing the
following slots: (1) params, that is the estimated
parameters in the fit; (2) BRPs, that are the biological
reference points estimates; (3) the residuals of the fit;
(4) an error_table with the error measures (5) the
input list which is an updated version of its input
including the annual average biomass, the surplus production and the F
estimated time series; (6) the control output which is the
input one updated with the information of the plot settings; and (7) the
optimx slot with the results provided by the optimizing
function. See the help page for a more completed description.
knobi_envAfter carrying out the KBPM fit using knobi_fit,
knobi_env function allows us to analyze and model the
relationships between the surplus production and the environmental
covariable(s) in order to test whether productivity changes in response
to environmental fluctuations. The knobi_env procedure can
be summarized in three steps:
In step (3) environmental covariables can be included as additive and multiplicative effects in the KBPM base formulation, i.e. in Eq. (4).
\[SP_{t}= \frac{r}{p}\overline{B}_{t}\left(1-\left( \frac{\overline{B}_{t}}{K}\right) ^{p}\right) + cX_{t-lag}\overline{B}_{t}\] Eq. (5)
being c the parameter that represent the effect of the lagged environmental variable Xt-lag (t index represents years and \(lag\) represent the response variable \(lag\), as explained below).
\[SP_{t}= \frac{r}{p}\overline{B}_{t}\left(1-\left( \frac{\overline{B}_{t}}{K}\right) ^{p}\right)exp^{cX_{t-lag}}\] Eq. (6)
knobi_env inputs are the object returned by
knobi_fit and a data object containing, at
least, the mandatory environmental information required for the fit: the
env argument, which is a data frame containing the values
of each one of the environmental variable(s) in one column; and the
years argument, which contains the years in which the
environmental variable(s) are reported.
In the following example, we create a data frame in which we
introduce the years in which the environmental variables are available,
which is from 1973 to 2020. Then, we create four columns containing the
values of the Sea Surface Temperature (SST), the Sea Bottom Temperature
(SBT) and the Atlantic Multidecadal Oscillation (AMO) and the North
Atlantic Oscillation (NAO) indices. Finally, we cut the data frame for
starting in the first year of the KBPM fit data minus the value of the
nlag or lag argument (below, a detailed
explanation of this argument is provided).
Env <- knobi_dataset$Env
nlag <- 5
years <- hake_n_results$df$Year
ind <- which(Env[,1]==years[1])
ind1 <- which(Env[,1]==years[length(years)])
Env <- Env[(ind-nlag):ind1,]Now, we create the data list
data <- list(
env = data.frame( AMO=Env$AMO, NAO=Env$NAO, SST = Env$SST, SBT = Env$SBT),
years = Env$years)In the optional control input list we provide the
settings for the environmental fit. In this example, we set
nlag=5. This argument specifies the maximum lag of the
environmental variable to test in the correlation analysis, meaning that
lags less than or equal to nlag (a natural number) are
evaluated. This means that correlation between KBPM residuals at time
t and Xt-lag, where X the
environmental variable and lag takes values from 0 to
nlag, is computed. The lagged environmental variable
corresponding to the highest correlation with the KBPM residuals is
included in the environmental model.
Based on the arguments defined above, we apply the function as you can see below. Note that it reports a plot of the correlation analysis between the environmental variable(s) and the base KBPM residuals. Besides, a plot of the fitted values of the base model (no environmental information) and the environmental ones is also displayed. At last, a plot with the Pearson’s residuals for each KBPM model is also reported.
hake_n_environmental <- knobi_env(knobi_results = hake_n_results,
data = data,
control = control,
plot_out = FALSE)Running the name of the output object the formula and the parameters estimates for both environmental models fit are printed.
hake_n_environmental
#>
#> Multiplicative model:
#> SP_t = (r/p)*B_t*(1-(B_t/K)^p)*exp(c*X_t)
#>
#> Parameter estimates:
#> r 0.6736933
#> K 452443.7
#> p 0.25
#> c 0.1972694
#>
#>
#> Additive model:
#> SP_t = (r/p)*B_t*(1-(B_t/K)^p)+c*X_t*B_t
#>
#> Parameter estimates:
#> r 0.736126
#> K 378965.4
#> p 0.25
#> c 0.1818502A detailed description of each slot of the output function’s object is available in the help page. The output object contains the parameter estimates for both models and its reference points estimates, the accuracy measures for each model and the correlation analysis between the environmental variable(s) and the KBPM base residuals, among other results.
From Eq. (5) and Eq. (6) we can derive the formulas that provide the reference points (BRPs). It is important to take into account that in these models the BRPs depend on the value of the environmental covariate (details provided below for each model).
In the case of these environmental models, the estimated BRPs correspond to a value of the scaled environmental variable equal to the mean of the time series, i.e. \(X_t=0\), which cancels out the effect of the parameter \(c\). The estimates of the remain parameters included in the Eq. (2), and therefore for the BRPs as well, will be different from the base model ones because the fact of having included the environmental effect in the equations had an impact on the estimation of the curve.
The mathematical formulation of the BRPs estimates for each KBPM model depending on the centered environmental variable are:
\[B_{msy}(X)=K\left(\frac{1}{p+1}\right)^{1/p}\] \[F_{msy}(X)=\frac{r}{p}\left(1-\frac{1}{p+1}\right) cX\] \[MSY(X)=B_{msy}(X)*F_{msy}(X)\] \[K(X)=K\]
where r, p, K and c are the model parameter estimates of the additive and multiplicative environmental models, i.e. Eq. (5) and Eq. (6) respectively; and X the centered environmental variable.
\[B_{msy}(X)=K\left(\frac{p c X+r}{r(p+1)}\right)^{1/p}\] \[F_{msy}(X)=\frac{r}{p}\left(1-\frac{1}{p+1}\right)-\frac{cX}{p+1}+cX\] \[MSY(X)=B_{msy}(X)*F_{msy}(X)\] \[K(X)=K+cX\]
where r, p, K and c are the model parameter estimates of the Eq. (5) and Eq. (6) and X the centered environmental variable.
For simplicity, the output slot $BRPs provides the BRPs
estimates for a value of the centered environmental variable equal to
the mean of the time series, i.e. , which cancels out the environmental
effect in the equations defining both models, i.e. the effect of the
parameter .
There is the possibility of obtaining 3D plots reporting the surplus
production curve conditioned to a grid of environmental values using the
argument control$plot3d=TRUE. In this case, a list named
plots3D is added to the output list of
knobi_env with the 3D plots objects.
There is also the possibility of fixing which lag is used in the
relation among the surplus production and the environmental variable,
for that the lag argument is used instead of
nlag inside control as you can see below
Furthermore, it is also possible to fit the environmental models
considering several variables at the same time using
control$multicovar = TRUE. This means that
cXt is replaced by \(\sum_{i=1}^{N} c_i X_{t,i}\) in Eq. (5) and
Eq. (6), where index N represents the number of environmental
variables.
Below you can see how we introduce the same data set as in previous
examples but in the control we set multicovar=TRUE so that
two of the variables, e.g. “AMO” and “NAO”, are considered in the
environmental fit. Note that “AMO” is 2 years lagged whereas “NAO” is 3
years lagged respect the SP.
data2 <- data
data2$env <- data2$env[,c('AMO','NAO')]
control <- list( lag=c(2,3), multicovar=TRUE)
hake_n_multi <- knobi_env( hake_n_results, data2, control)Finally, there is also the possibility of testing the correlation between the KBPM residuals and the environmental variable(s) through the fit of autoregressive models (AR models). In this case, firstly an AR model is fitted for the residuals in order to determine how the residuals can explain themselves:
\[ r_t=\sum_{i=1}^{\rho}\beta_{i}r_{t-i}+\epsilon_{t}\]
being rt the KBPM base residual for year
t and \(\rho\) the AR model
order, estimated as the maximum time lag at which the absolute value of
the residuals partial autocorrelation is large than
qnorm(0.975)
Then, AR models are fitted considering each one of the lagged environmental variable(s),
\[r_{t,lag}=\sum_{i=1}^{\rho}\beta_{i}r_{t-i}+X_{t-lag}+\epsilon_{t}\]
for lag=0,1,…,nlag, being Xt-lag the lagged environmental variable at year t-lag. Then, we have an autoregressive model for each of the lagged environmental variables. The AIC values of the above models are compared, and the lagged environmental variable whose model reports the lowest AIC is used in the KBPM fit, except if the argument ‘lag’ is used.
This test procedure is carried out using the argument
ar_cor = TRUE in control list as you can see
below.
control_ar <- list( nlag=3, ar_cor=TRUE)
hake_env_ar <- knobi_env( hake_n_results, data = data, control = control_ar)A plot with the AIC values for each model is also represented. In the
output object env_aic represents the AIC values for each AR
model and selected_lag represent the lag corresponding to
the model with the lowest AIC.
knobi_retroOnce the KBPM fit is carried out using knobi_fit
function, its robustness to the deletion of data is tested using the
knobi_retro function.
knobi_retro input is the object returned by
knobi_fit and the selected retrospective models. In this
example, these models are specified by the nR argument,
with a value of 5 (that is also the default value). This means that the
first retrospective model considers the data deleting the last year and
fits the surplus production curve, the next model deletes the two last
years of the original data set and fits the SP curve, and then the
process continues in this way until the last model is reached in which
the last 5 years in the original data are deleted to then fit the
curve.
The estimated surplus production curves from the retrospective
analysis are plotted. The plot is displayed in the plot window and also
saved if plot_out=T in the provided directory and file.
The knobi_retro output is a list containing the
retrospective analysis, that includes the parameter estimates and the
reference points for each one of the models.
hake_n_retros
#> $BRPs
#> K B_MSY F_MSY MSY MSYoverK
#> 1978 - 2019 529631.1 216936.9 0.5042716 109395.1 0.2065496
#> 1978 - 2018 534350.5 218870.0 0.5047717 110479.4 0.2067545
#> 1978 - 2017 547288.4 224169.3 0.5048597 113174.1 0.2067905
#> 1978 - 2016 585744.5 239921.0 0.4944368 118625.8 0.2025213
#> 1978 - 2015 625579.8 256237.5 0.4807142 123177.0 0.1969005
#> 1978 - 2014 606781.3 248537.6 0.4869952 121036.6 0.1994733
#>
#> $params
#> r K p
#> 1978 - 2019 0.6303395 529631.1 0.25
#> 1978 - 2018 0.6309646 534350.5 0.25
#> 1978 - 2017 0.6310746 547288.4 0.25
#> 1978 - 2016 0.6180460 585744.5 0.25
#> 1978 - 2015 0.6008928 625579.8 0.25
#> 1978 - 2014 0.6087441 606781.3 0.25There is also another possibility for choosing the years to consider
in each one of retrospective models. The yR argument
specifies the final years of the catch time series for each of the
retrospective models, providing greater flexibility in choosing the
years from which to delete information. The number of retrospective fits
will correspond to the length of the yR vector.
Additionally, different starting years can be set using the
yR0 argument.
Below, there are two examples of the use of these arguments. In the
first example, the retrospective models are fitted from the first year
available in the time series (which is the year 1978) up to the years
defined by yR(2005, 2010 and 2015), while in the second
example the models fit from the years contained in yR0 up
to the years included in yR, i. e. , 1990 to 2005, from
1995 to 2010 and from 1995 to 2015.
#> $BRPs
#> K B_MSY F_MSY MSY MSYoverK
#> 1978 - 2019 529631.1 216936.92 0.5042716 109395.13 0.2065496
#> 1978 - 2005 154479.7 63274.88 0.9052966 57282.54 0.3708095
#> 1978 - 2010 1059244.7 433866.63 0.4182645 181471.02 0.1713211
#> 1978 - 2015 625579.8 256237.47 0.4807142 123177.00 0.1969005
#>
#> $params
#> r K p
#> 1978 - 2019 0.6303395 529631.1 0.25
#> 1978 - 2005 1.1316207 154479.7 0.25
#> 1978 - 2010 0.5228307 1059244.7 0.25
#> 1978 - 2015 0.6008928 625579.8 0.25
#> $BRPs
#> K B_MSY F_MSY MSY MSYoverK
#> 1978 - 2019 529631.1 216936.92 0.5042716 109395.13 0.2065496
#> 1990 - 2005 164645.5 67438.81 0.8632071 58213.66 0.3535696
#> 1995 - 2010 391203.7 210004.26 0.8258184 173425.39 0.4433122
#> 1995 - 2015 422793.8 195255.57 0.6960105 135899.92 0.3214331
#>
#> $params
#> r K p
#> 1978 - 2019 0.6303395 529631.1 0.2500000
#> 1990 - 2005 1.0790089 164645.5 0.2500000
#> 1995 - 2010 2.0000000 391203.7 1.4218399
#> 1995 - 2015 1.1425157 422793.8 0.6415208
The environmental fit information can be considered too in the
retrospective analysis through the env_results argument,
where the result of the knobi_environmental function has to
be provided. For environmental models, both the estimated BRPs and the
plotted production curve correspond to a value of the scaled
environmental variable equal to the mean of the time series, i.e. \(X_t=0\), which cancels out the
environmental effect in the equations defining both models as it has
been explained in the knobi_env function help’s details. In
this case a panel of plots is provided, where each graph corresponds
with a different model.
#> $base
#> $base$BRPs
#> K B_MSY F_MSY MSY MSYoverK
#> 1978 - 2019 529631.1 216936.9 0.5042716 109395.1 0.2065496
#> 1978 - 2018 534350.5 218870.0 0.5047717 110479.4 0.2067545
#> 1978 - 2017 547288.4 224169.3 0.5048597 113174.1 0.2067905
#> 1978 - 2016 585744.5 239921.0 0.4944368 118625.8 0.2025213
#>
#> $base$params
#> r K p
#> 1978 - 2019 0.6303395 529631.1 0.25
#> 1978 - 2018 0.6309646 534350.5 0.25
#> 1978 - 2017 0.6310746 547288.4 0.25
#> 1978 - 2016 0.6180460 585744.5 0.25
#>
#>
#> $add
#> $add$BRPs
#> K B_MSY F_MSY MSY MSYoverK
#> 1978 - 2019 378965.4 155224.2 0.5889008 91411.67 0.2412138
#> 1978 - 2018 381131.0 156111.3 0.5911377 92283.27 0.2421300
#> 1978 - 2017 388755.9 159234.4 0.5884641 93703.74 0.2410349
#> 1978 - 2016 407308.8 166833.7 0.5766696 96207.91 0.2362039
#>
#> $add$params
#> r K p c
#> 1978 - 2019 0.7361260 378965.4 0.25 0.1818502
#> 1978 - 2018 0.7389222 381131.0 0.25 0.1850930
#> 1978 - 2017 0.7355801 388755.9 0.25 0.1792517
#> 1978 - 2016 0.7208370 407308.8 0.25 0.1655657
#>
#>
#> $mult
#> $mult$BRPs
#> K B_MSY F_MSY MSY MSYoverK
#> 1978 - 2019 452443.7 185320.9 0.5389546 99879.58 0.2207558
#> 1978 - 2018 456042.4 186794.9 0.5404260 100948.85 0.2213585
#> 1978 - 2017 463274.6 189757.3 0.5422213 102890.45 0.2220939
#> 1978 - 2016 482842.0 197772.1 0.5363887 106082.71 0.2197048
#>
#> $mult$params
#> r K p c
#> 1978 - 2019 0.6736933 452443.7 0.25 0.1972694
#> 1978 - 2018 0.6755326 456042.4 0.25 0.1988995
#> 1978 - 2017 0.6777767 463274.6 0.25 0.1922609
#> 1978 - 2016 0.6704859 482842.0 0.25 0.1788851
#> $BRPs
#> K B_MSY F_MSY MSY MSYoverK
#> 1978 - 2019 529631.1 216936.9 0.5042716 109395.1 0.2065496
#> 1978 - 2018 534350.5 218870.0 0.5047717 110479.4 0.2067545
#> 1978 - 2017 547288.4 224169.3 0.5048597 113174.1 0.2067905
#> 1978 - 2016 585744.5 239921.0 0.4944368 118625.8 0.2025213
#> 1978 - 2015 625579.8 256237.5 0.4807142 123177.0 0.1969005
#> 1978 - 2014 606781.3 248537.6 0.4869952 121036.6 0.1994733
#>
#> $params
#> r K p
#> 1978 - 2019 0.6303395 529631.1 0.25
#> 1978 - 2018 0.6309646 534350.5 0.25
#> 1978 - 2017 0.6310746 547288.4 0.25
#> 1978 - 2016 0.6180460 585744.5 0.25
#> 1978 - 2015 0.6008928 625579.8 0.25
#> 1978 - 2014 0.6087441 606781.3 0.25
#> $base
#> $base$BRPs
#> K B_MSY F_MSY MSY MSYoverK
#> 1978 - 2019 529631.1 216936.92 0.5042716 109395.13 0.2065496
#> 1990 - 2005 164645.5 67438.81 0.8632071 58213.66 0.3535696
#> 1995 - 2010 391203.7 210004.26 0.8258184 173425.39 0.4433122
#> 1995 - 2015 422793.8 195255.57 0.6960105 135899.92 0.3214331
#>
#> $base$params
#> r K p
#> 1978 - 2019 0.6303395 529631.1 0.2500000
#> 1990 - 2005 1.0790089 164645.5 0.2500000
#> 1995 - 2010 2.0000000 391203.7 1.4218399
#> 1995 - 2015 1.1425157 422793.8 0.6415208
#>
#>
#> $add
#> $add$BRPs
#> K B_MSY F_MSY MSY MSYoverK
#> 1978 - 2019 516488.5 211553.67 0.5067793 107211.03 0.2075768
#> 1990 - 2005 111641.9 55622.62 1.0092396 56136.55 0.5028268
#> 1995 - 2010 405142.5 215900.38 0.8428851 181979.21 0.4491734
#> 1995 - 2015 456945.2 214180.97 0.7175821 153692.44 0.3363476
#>
#> $add$params
#> r K p c1 c2
#> 1978 - 2019 0.6334741 516488.5 0.2500000 0.01699060 -0.004395063
#> 1990 - 2005 2.0000000 111641.9 0.9816899 -0.12416790 0.002753767
#> 1995 - 2010 2.0000000 405142.5 1.3728028 -0.07141606 0.019703123
#> 1995 - 2015 1.2207720 456945.2 0.7012297 -0.07482624 0.049011604
#>
#>
#> $mult
#> $mult$BRPs
#> K B_MSY F_MSY MSY MSYoverK
#> 1978 - 2019 498824.3 204318.44 0.5217788 106609.03 0.2137206
#> 1990 - 2005 114441.3 57362.27 0.9936139 56995.95 0.4980364
#> 1995 - 2010 396365.5 211096.05 0.8442971 178227.79 0.4496551
#> 1995 - 2015 422155.9 201122.10 0.7438395 149602.56 0.3543776
#>
#> $mult$params
#> r K p c1 c2
#> 1978 - 2019 0.6522235 498824.3 0.2500000 0.05169038 -0.006546162
#> 1990 - 2005 2.0000000 114441.3 1.0128543 -0.09494490 0.001506168
#> 1995 - 2010 2.0000000 396365.5 1.3688343 -0.05364247 0.025982666
#> 1995 - 2015 1.3168214 422155.9 0.7703032 -0.06813650 0.090082469
knobi_projknobi_proj function projects the time series of biomass
(or spawning biomass) and then the surplus production for a set of
future catch or fishing mortality values.
One of the knobi_proj arguments is a data frame
containing the selected catch for the projected years. In this case
three catch scenarios are considered: (i) constant catch value equal to
the last historical catch, (ii) last historical catch with a 20%
increase; and (iii) last historical catch with a 20% decrease.
catch <- rep(hake_n_results$input$Catch[length(hake_n_results$input$Catch)],8)
C <- data.frame(catch=catch, catch08=0.8*catch, catch12=1.2*catch)The resulting plots are displayed in the plot window. In this
example, four plots are presented in a panel reporting the SSB, surplus
production, catch and fishing mortality projections for each catch catch
scenario. Note that, in this case, plot_out = FALSE (by
default), then plots are not saved like in the previous examples.
Then, on the basis of the above catch scenarios and the
hake_n_results object, the projections are carried out.
Running the name of the output object the data frame with the projections for each scenario are printed. Details of the additional output information are provided in the help page.
projections
#>
#> Projections:
#>
#> SSB SP Year C F Sc Model
#> 235508.2 108904.40 2020 87238.0 0.3704245 catch base
#> 256339.7 107234.53 2021 87238.0 0.3403219 catch base
#> 275106.4 104775.01 2022 87238.0 0.3171064 catch base
#> 291242.7 101973.58 2023 87238.0 0.2995371 catch base
#> 304589.9 99196.75 2024 87238.0 0.2864113 catch base
#> 315290.3 96680.05 2025 87238.0 0.2766910 catch base
#> 323660.3 94535.93 2026 87238.0 0.2695357 catch base
#> 330084.2 92787.89 2027 87238.0 0.2642901 catch base
#> 243962.5 108365.38 2020 69790.4 0.2860702 catch08 base
#> 280323.4 103937.24 2021 69790.4 0.2489639 catch08 base
#> 311323.0 97642.81 2022 69790.4 0.2241736 catch08 base
#> 335916.5 91124.99 2023 69790.4 0.2077611 catch08 base
#> 354385.5 85393.72 2024 69790.4 0.1969336 catch08 base
#> 367707.9 80832.02 2025 69790.4 0.1897985 catch08 base
#> 377046.9 77426.73 2026 69790.4 0.1850974 catch08 base
#> 383464.6 74989.40 2027 69790.4 0.1819996 catch08 base
#> 226957.6 109250.89 2020 104685.6 0.4612561 catch12 base
#> 231444.6 109094.31 2021 104685.6 0.4523138 catch12 base
#> 235752.0 108891.57 2022 104685.6 0.4440497 catch12 base
#> 239838.4 108652.39 2023 104685.6 0.4364840 catch12 base
#> 243672.5 108387.04 2024 104685.6 0.4296160 catch12 base
#> 247233.2 108105.55 2025 104685.6 0.4234286 catch12 base
#> 250508.9 107817.08 2026 104685.6 0.4178917 catch12 base
#> 253496.6 107529.56 2027 104685.6 0.4129665 catch12 base
#>
#> There is the possibility of considering the environmental information
in the projections. For this purpose, the knobi_env output
and the new environmental values for the future years env
argument must be provided.
In the current example, three scenarios are considered: (i) Constant SBT equal to last year’s SBT; (ii) constant SBT equal to last year’s SBT with a 5% increment; and (iii) constant SBT equal to last year’s SBT with a 5% decrease.
last_SBT <- Env$SBT[length(Env$SBT)]
env <- data.frame( SBTi=rep(last_SBT,5),
SBTii=rep(last_SBT*1.05,5),
SBTiii=rep(last_SBT*0.95,5))
C <- C[(1:5),]Note that, as shown below, in this case, in addition to the plot with the results from the base KBPM model, additional plots are provided: (1) panels for each catch or fishing mortality scenario, depending on the model and environmental scenario; and (2) the same information, but now presented by each environmental scenario, depending on the model and catch or fishing mortality.
env_projections
#>
#> Projections:
#>
#> SSB SP Year C F Sc Model EnvSc
#> 235508.2 108904.40 2020 87238.0 0.3704245 catch base <NA>
#> 256339.7 107234.53 2021 87238.0 0.3403219 catch base <NA>
#> 275106.4 104775.01 2022 87238.0 0.3171064 catch base <NA>
#> 291242.7 101973.58 2023 87238.0 0.2995371 catch base <NA>
#> 304589.9 99196.75 2024 87238.0 0.2864113 catch base <NA>
#> 243962.5 108365.38 2020 69790.4 0.2860702 catch08 base <NA>
#> 280323.4 103937.24 2021 69790.4 0.2489639 catch08 base <NA>
#> 311323.0 97642.81 2022 69790.4 0.2241736 catch08 base <NA>
#> 335916.5 91124.99 2023 69790.4 0.2077611 catch08 base <NA>
#> 354385.5 85393.72 2024 69790.4 0.1969336 catch08 base <NA>
#> 226957.6 109250.89 2020 104685.6 0.4612561 catch12 base <NA>
#> 231444.6 109094.31 2021 104685.6 0.4523138 catch12 base <NA>
#> 235752.0 108891.57 2022 104685.6 0.4440497 catch12 base <NA>
#> 239838.4 108652.39 2023 104685.6 0.4364840 catch12 base <NA>
#> 243672.5 108387.04 2024 104685.6 0.4296160 catch12 base <NA>
#> 239759.5 117407.06 2020 87238.0 0.3638562 catch add SBTi
#> 267381.1 112312.17 2021 87238.0 0.3262683 catch add SBTi
#> 289601.1 106603.66 2022 87238.0 0.3012351 catch add SBTi
#> 306366.1 101402.38 2023 87238.0 0.2847508 catch add SBTi
#> 318431.1 97203.57 2024 87238.0 0.2739620 catch add SBTi
#> 238962.7 115813.35 2020 87238.0 0.3650696 catch mult SBTi
#> 264242.5 109222.30 2021 87238.0 0.3301437 catch mult SBTi
#> 283063.5 102895.70 2022 87238.0 0.3081923 catch mult SBTi
#> 296177.5 97808.30 2023 87238.0 0.2945463 catch mult SBTi
#> 304905.6 94123.95 2024 87238.0 0.2861148 catch mult SBTi
#> 261310.6 160509.12 2020 87238.0 0.3338480 catch add SBTii
#> 331527.0 154399.69 2021 87238.0 0.2631400 catch add SBTii
#> 391656.1 140334.49 2022 87238.0 0.2227414 catch add SBTii
#> 437060.4 124950.16 2023 87238.0 0.1996017 catch add SBTii
#> 468371.2 112147.43 2024 87238.0 0.1862583 catch add SBTii
#> 253021.4 143930.87 2020 87238.0 0.3447850 catch mult SBTii
#> 299482.3 123466.83 2021 87238.0 0.2912960 catch mult SBTii
#> 327454.0 106952.67 2022 87238.0 0.2664130 catch mult SBTii
#> 342219.6 97054.51 2023 87238.0 0.2549182 catch mult SBTii
#> 349464.3 91910.81 2024 87238.0 0.2496335 catch mult SBTii
#> 217504.6 72897.18 2020 87238.0 0.4010858 catch add SBTiii
#> 204964.0 76497.74 2021 87238.0 0.4256259 catch add SBTiii
#> 195390.4 78830.92 2022 87238.0 0.4464805 catch add SBTiii
#> 187777.7 80419.75 2023 87238.0 0.4645812 catch add SBTiii
#> 181521.3 81543.35 2024 87238.0 0.4805939 catch add SBTiii
#> 227179.0 92246.00 2020 87238.0 0.3840056 catch mult SBTiii
#> 231857.3 91586.54 2021 87238.0 0.3762573 catch mult SBTiii
#> 235895.4 90965.77 2022 87238.0 0.3698164 catch mult SBTiii
#> 239339.8 90399.02 2023 87238.0 0.3644943 catch mult SBTiii
#> 242248.4 89894.03 2024 87238.0 0.3601180 catch mult SBTiii
#> 247181.9 114804.13 2020 69790.4 0.2823443 catch08 add SBTi
#> 287643.9 105700.81 2021 69790.4 0.2426277 catch08 add SBTi
#> 318553.1 95698.39 2022 69790.4 0.2190856 catch08 add SBTi
#> 340226.4 87229.02 2023 69790.4 0.2051293 catch08 add SBTi
#> 354553.0 81004.93 2024 69790.4 0.1968405 catch08 add SBTi
#> 246787.4 114015.16 2020 69790.4 0.2827957 catch08 mult SBTi
#> 285079.2 102149.34 2021 69790.4 0.2448105 catch08 mult SBTi
#> 311871.7 91016.38 2022 69790.4 0.2237792 catch08 mult SBTi
#> 328976.2 82773.37 2023 69790.4 0.2121443 catch08 mult SBTi
#> 339273.5 77402.07 2024 69790.4 0.2057054 catch08 mult SBTi
#> 268517.4 157475.26 2020 69790.4 0.2599101 catch08 add SBTii
#> 351287.3 147645.22 2021 69790.4 0.1986705 catch08 add SBTii
#> 419511.6 128384.28 2022 69790.4 0.1663611 catch08 add SBTii
#> 468478.2 109129.60 2023 69790.4 0.1489726 catch08 add SBTii
#> 500416.7 94328.24 2024 69790.4 0.1394646 catch08 add SBTii
#> 260423.8 141287.93 2020 69790.4 0.2679878 catch08 mult SBTii
#> 317778.6 113002.48 2021 69790.4 0.2196196 catch08 mult SBTii
#> 350184.2 91389.53 2022 69790.4 0.1992963 catch08 mult SBTii
#> 365877.2 79577.40 2023 69790.4 0.1907481 catch08 mult SBTii
#> 372889.0 74026.85 2024 69790.4 0.1871613 catch08 mult SBTii
#> 225180.2 70800.86 2020 69790.4 0.3099313 catch08 add SBTiii
#> 226043.4 70506.33 2021 69790.4 0.3087478 catch08 add SBTiii
#> 226654.3 70296.25 2022 69790.4 0.3079156 catch08 add SBTiii
#> 227085.6 70147.11 2023 69790.4 0.3073308 catch08 add SBTiii
#> 227389.5 70041.59 2024 69790.4 0.3069200 catch08 add SBTiii
#> 235309.2 91058.83 2020 69790.4 0.2965902 catch08 mult SBTiii
#> 254772.5 87448.49 2021 69790.4 0.2739323 catch08 mult SBTiii
#> 270582.5 83752.31 2022 69790.4 0.2579265 catch08 mult SBTiii
#> 282880.7 80425.01 2023 69790.4 0.2467132 catch08 mult SBTiii
#> 292137.1 77668.48 2024 69790.4 0.2388961 catch08 mult SBTiii
#> 232255.6 119846.87 2020 104685.6 0.4507344 catch12 add SBTi
#> 246419.0 117850.97 2021 104685.6 0.4248277 catch12 add SBTi
#> 258490.0 115662.25 2022 104685.6 0.4049890 catch12 add SBTi
#> 268405.7 113540.46 2023 104685.6 0.3900275 catch12 add SBTi
#> 276312.9 111645.02 2024 104685.6 0.3788662 catch12 add SBTi
#> 231035.4 117406.38 2020 104685.6 0.4531150 catch12 mult SBTi
#> 242560.1 115014.16 2021 104685.6 0.4315863 catch12 mult SBTi
#> 251760.6 112758.13 2022 104685.6 0.4158141 catch12 mult SBTi
#> 258860.5 110812.91 2023 104685.6 0.4044093 catch12 mult SBTi
#> 264199.1 109235.51 2024 104685.6 0.3962375 catch12 mult SBTi
#> 254033.8 163403.27 2020 104685.6 0.4120931 catch12 add SBTii
#> 311225.5 160351.35 2021 104685.6 0.3363657 catch12 add SBTii
#> 362276.1 151120.98 2022 104685.6 0.2889663 catch12 add SBTii
#> 403056.4 139810.73 2023 104685.6 0.2597294 catch12 add SBTii
#> 433002.5 129452.64 2024 104685.6 0.2417668 catch12 add SBTii
#> 245512.4 146360.34 2020 104685.6 0.4263964 catch12 mult SBTii
#> 280473.7 132933.46 2021 104685.6 0.3732457 catch12 mult SBTii
#> 303025.7 121541.85 2022 104685.6 0.3454677 catch12 mult SBTii
#> 316114.7 114007.35 2023 104685.6 0.3311633 catch12 mult SBTii
#> 323246.2 109626.78 2024 104685.6 0.3238572 catch12 mult SBTii
#> 209731.7 74798.93 2020 104685.6 0.4991407 catch12 add SBTiii
#> 182899.9 80908.67 2021 104685.6 0.5723657 catch12 add SBTiii
#> 160495.5 83653.86 2022 104685.6 0.6522649 catch12 add SBTiii
#> 139675.3 84076.95 2023 104685.6 0.7494924 catch12 add SBTiii
#> 118078.8 82101.17 2024 104685.6 0.8865741 catch12 add SBTiii
#> 218955.7 93246.91 2020 104685.6 0.4781133 catch12 mult SBTiii
#> 208021.9 94256.70 2021 104685.6 0.5032433 catch12 mult SBTiii
#> 197891.5 94853.79 2022 104685.6 0.5290050 catch12 mult SBTiii
#> 188187.1 95108.66 2023 104685.6 0.5562846 catch12 mult SBTiii
#> 178577.5 95043.38 2024 104685.6 0.5862193 catch12 mult SBTiii
#>
#> The output list also contains the projections for each of the scenarios catches and environmental scenarios. Details of the output are available in the help page.
Alternatively, projections can be based on fishing mortality. The
scenarios presented below have been created from the estimated
Fmsy in the knobi_fit analysis.
fmsy <- hake_n_results$BRPs['F_MSY']
ff <- rep(fmsy,5)
f <- data.frame( f=ff, f12=ff*1.2, f08=ff*0.8)
f_projections <- knobi_proj( hake_n_results, f=f, env_results=hake_n_environmental, env=env)f_projections
#>
#> Projections:
#>
#> SSB SP Year C F Sc Model EnvSc
#> 223095.0 109340.42 2020 112500.46 0.5042716 f base <NA>
#> 220585.4 109375.87 2021 111234.96 0.5042716 f base <NA>
#> 219105.6 109388.31 2022 110488.75 0.5042716 f base <NA>
#> 218228.5 109392.71 2023 110046.46 0.5042716 f base <NA>
#> 217707.1 109394.27 2024 109783.49 0.5042716 f base <NA>
#> 214475.7 109386.30 2020 129784.83 0.6051259 f12 base <NA>
#> 198627.8 108897.43 2021 120194.82 0.6051259 f12 base <NA>
#> 189718.8 108283.09 2022 114803.74 0.6051259 f12 base <NA>
#> 184530.5 107808.37 2023 111664.20 0.6051259 f12 base <NA>
#> 181446.0 107484.41 2024 109797.66 0.6051259 f12 base <NA>
#> 232338.5 109056.44 2020 93729.38 0.4034173 f08 base <NA>
#> 244779.5 108303.13 2021 98748.27 0.4034173 f08 base <NA>
#> 252451.6 107632.76 2022 101843.35 0.4034173 f08 base <NA>
#> 257070.6 107155.32 2023 103706.73 0.4034173 f08 base <NA>
#> 259811.7 106846.14 2024 104812.54 0.4034173 f08 base <NA>
#> 227828.3 121194.07 2020 114887.37 0.5042716 f add SBTi
#> 232728.3 120851.51 2021 117358.28 0.5042716 f add SBTi
#> 235429.5 120629.66 2022 118720.43 0.5042716 f add SBTi
#> 236902.1 120498.93 2023 119463.01 0.5042716 f add SBTi
#> 237700.0 120425.24 2024 119865.37 0.5042716 f add SBTi
#> 226628.8 118190.18 2020 114282.49 0.5042716 f mult SBTi
#> 229545.8 117679.56 2021 115753.41 0.5042716 f mult SBTi
#> 230979.1 117416.85 2022 116476.23 0.5042716 f mult SBTi
#> 231678.1 117285.94 2023 116828.68 0.5042716 f mult SBTi
#> 232017.6 117221.69 2024 116999.89 0.5042716 f mult SBTi
#> 245893.8 166434.93 2020 123997.27 0.5042716 f add SBTii
#> 280926.3 169290.56 2021 141663.18 0.5042716 f add SBTii
#> 303065.7 169478.80 2022 152827.44 0.5042716 f add SBTii
#> 316186.8 169034.93 2023 159444.05 0.5042716 f add SBTii
#> 323673.9 168602.80 2024 163219.56 0.5042716 f add SBTii
#> 238671.5 148348.21 2020 120355.25 0.5042716 f mult SBTii
#> 258493.0 142000.73 2021 130350.67 0.5042716 f mult SBTii
#> 266564.0 138912.59 2022 134420.65 0.5042716 f mult SBTii
#> 269650.1 137657.06 2023 135976.87 0.5042716 f mult SBTii
#> 270800.8 137178.44 2024 136557.15 0.5042716 f mult SBTii
#> 209338.0 74889.21 2020 105563.21 0.5042716 f add SBTiii
#> 187040.4 80397.88 2021 94319.15 0.5042716 f add SBTiii
#> 176664.6 82256.79 2022 89086.97 0.5042716 f add SBTiii
#> 171508.8 83005.49 2023 86487.02 0.5042716 f add SBTiii
#> 168863.2 83343.36 2024 85152.94 0.5042716 f add SBTiii
#> 216761.4 93479.31 2020 109306.60 0.5042716 f mult SBTiii
#> 204528.7 94500.01 2021 103138.02 0.5042716 f mult SBTiii
#> 197773.4 94858.78 2022 99731.48 0.5042716 f mult SBTiii
#> 193936.6 94995.80 2023 97796.69 0.5042716 f mult SBTiii
#> 191722.3 95052.50 2024 96680.11 0.5042716 f mult SBTiii
#> 219870.3 123439.71 2020 133049.19 0.6051259 f12 add SBTi
#> 212534.8 123548.77 2021 128610.29 0.6051259 f12 add SBTi
#> 208642.5 123531.93 2022 126254.97 0.6051259 f12 add SBTi
#> 206540.1 123500.94 2023 124982.74 0.6051259 f12 add SBTi
#> 205393.5 123477.51 2024 124288.91 0.6051259 f12 add SBTi
#> 218343.6 119462.62 2020 132125.38 0.6051259 f12 mult SBTi
#> 209047.1 120569.63 2021 126499.84 0.6051259 f12 mult SBTi
#> 204648.9 120972.11 2022 123838.36 0.6051259 f12 mult SBTi
#> 202512.5 121138.97 2023 122545.56 0.6051259 f12 mult SBTi
#> 201461.5 121214.11 2024 121909.56 0.6051259 f12 mult SBTi
#> 237486.6 169332.41 2020 143709.28 0.6051259 f12 add SBTii
#> 258279.2 172253.49 2021 156291.42 0.6051259 f12 add SBTii
#> 270997.9 173463.14 2022 163987.83 0.6051259 f12 add SBTii
#> 278469.6 173977.36 2023 168509.18 0.6051259 f12 add SBTii
#> 282756.2 174208.22 2024 171103.13 0.6051259 f12 add SBTii
#> 230254.6 150492.14 2020 139333.01 0.6051259 f12 mult SBTii
#> 238062.5 148514.59 2021 144057.80 0.6051259 f12 mult SBTii
#> 241153.1 147652.24 2022 145927.97 0.6051259 f12 mult SBTii
#> 242344.6 147307.86 2023 146649.01 0.6051259 f12 mult SBTii
#> 242799.3 147174.70 2024 146924.16 0.6051259 f12 mult SBTii
#> 201849.7 76493.83 2020 122144.47 0.6051259 f12 add SBTiii
#> 169262.6 82901.62 2021 102425.17 0.6051259 f12 add SBTiii
#> 154786.4 84236.51 2022 93665.27 0.6051259 f12 add SBTiii
#> 147658.0 84523.66 2023 89351.69 0.6051259 f12 add SBTiii
#> 143970.1 84572.33 2024 87120.06 0.6051259 f12 add SBTiii
#> 208649.7 94208.84 2020 126259.37 0.6051259 f12 mult SBTiii
#> 184394.3 95121.34 2021 111581.75 0.6051259 f12 mult SBTiii
#> 171631.0 94792.20 2022 103858.36 0.6051259 f12 mult SBTiii
#> 164501.1 94350.29 2023 99543.89 0.6051259 f12 mult SBTiii
#> 160382.4 94007.69 2024 97051.54 0.6051259 f12 mult SBTiii
#> 236292.2 118558.67 2020 95324.34 0.4034173 f08 add SBTi
#> 254662.0 116240.52 2021 102735.07 0.4034173 f08 add SBTi
#> 265158.9 114458.03 2022 106969.70 0.4034173 f08 add SBTi
#> 270925.9 113341.74 2023 109296.18 0.4034173 f08 add SBTi
#> 274026.3 112702.17 2024 110546.93 0.4034173 f08 add SBTi
#> 235455.1 116546.95 2020 94986.67 0.4034173 f08 mult SBTi
#> 251814.2 112744.10 2021 101586.21 0.4034173 f08 mult SBTi
#> 260141.9 110443.21 2022 104945.74 0.4034173 f08 mult SBTi
#> 264212.4 109231.46 2023 106587.86 0.4034173 f08 mult SBTi
#> 266162.5 108630.98 2024 107374.54 0.4034173 f08 mult SBTi
#> 254823.6 163097.49 2020 102800.25 0.4034173 f08 add SBTii
#> 305451.2 164182.24 2021 123224.30 0.4034173 f08 add SBTii
#> 338446.1 161566.77 2022 136534.99 0.4034173 f08 add SBTii
#> 358147.8 158854.58 2023 144482.99 0.4034173 f08 add SBTii
#> 369315.7 156952.61 2024 148988.33 0.4034173 f08 add SBTii
#> 247590.6 145713.62 2020 99882.34 0.4034173 f08 mult SBTii
#> 280421.5 132957.39 2021 113126.89 0.4034173 f08 mult SBTii
#> 294142.5 126273.64 2022 118662.17 0.4034173 f08 mult SBTii
#> 299340.2 123542.97 2023 120759.02 0.4034173 f08 mult SBTii
#> 301232.2 122522.35 2024 121522.29 0.4034173 f08 mult SBTii
#> 217314.1 72946.46 2020 87668.26 0.4034173 f08 add SBTiii
#> 206418.2 76202.68 2021 83272.67 0.4034173 f08 add SBTiii
#> 201123.8 77618.09 2022 81136.83 0.4034173 f08 add SBTiii
#> 198473.1 78284.81 2023 80067.49 0.4034173 f08 add SBTiii
#> 197126.1 78612.77 2024 79524.09 0.4034173 f08 add SBTiii
#> 225439.3 92474.70 2020 90946.11 0.4034173 f08 mult SBTiii
#> 226645.7 92317.06 2021 91432.80 0.4034173 f08 mult SBTiii
#> 227342.8 92224.00 2022 91714.03 0.4034173 f08 mult SBTiii
#> 227744.6 92169.71 2023 91876.12 0.4034173 f08 mult SBTiii
#> 227975.8 92138.25 2024 91969.40 0.4034173 f08 mult SBTiii
#>
#> In case of multicovar=TRUE in knobi_env,
the env argument must be a list in which each item is a
data frame containing the values of the variables for a specific
environmental scenario. In the following scenario we have two scenarios,
“climate_1” and “climate_2”, and each of them we provide values of the
two covariables, “AMO” and “NAO”, which are the ones included in the
environmental fit.
env <- list( climate_1 = data.frame( AMO=c(0.2,0.2,0.3,0.3,0.4),
NAO=c(0.2,0.2,0.3,0.3,0.4)),
climate_2 = data.frame( AMO=c(0.2,0.3,0.4,0.5,0.6),
NAO=c(0.2,0.3,0.4,0.5,0.6)))
multiproj <- knobi_proj( hake_n_results, hake_n_multi, c=C, env=env)multiproj
#>
#> Projections:
#>
#> SSB SP Year C F Sc Model EnvSc
#> 235508.2 108904.40 2020 87238.0 0.3704245 catch base <NA>
#> 256339.7 107234.53 2021 87238.0 0.3403219 catch base <NA>
#> 275106.4 104775.01 2022 87238.0 0.3171064 catch base <NA>
#> 291242.7 101973.58 2023 87238.0 0.2995371 catch base <NA>
#> 304589.9 99196.75 2024 87238.0 0.2864113 catch base <NA>
#> 243962.5 108365.38 2020 69790.4 0.2860702 catch08 base <NA>
#> 280323.4 103937.24 2021 69790.4 0.2489639 catch08 base <NA>
#> 311323.0 97642.81 2022 69790.4 0.2241736 catch08 base <NA>
#> 335916.5 91124.99 2023 69790.4 0.2077611 catch08 base <NA>
#> 354385.5 85393.72 2024 69790.4 0.1969336 catch08 base <NA>
#> 226957.6 109250.89 2020 104685.6 0.4612561 catch12 base <NA>
#> 231444.6 109094.31 2021 104685.6 0.4523138 catch12 base <NA>
#> 235752.0 108891.57 2022 104685.6 0.4440497 catch12 base <NA>
#> 239838.4 108652.39 2023 104685.6 0.4364840 catch12 base <NA>
#> 243672.5 108387.04 2024 104685.6 0.4296160 catch12 base <NA>
#> 236170.3 110228.58 2020 87238.0 0.3693860 catch add climate_1
#> 258251.3 108409.51 2021 87238.0 0.3378027 catch add climate_1
#> 279117.2 107798.15 2022 87238.0 0.3125498 catch add climate_1
#> 298011.7 104467.00 2023 87238.0 0.2927334 catch add climate_1
#> 314709.1 103403.73 2024 87238.0 0.2772020 catch add climate_1
#> 236426.6 110741.16 2020 87238.0 0.3689856 catch mult climate_1
#> 258446.6 107774.92 2021 87238.0 0.3375475 catch mult climate_1
#> 278431.0 106669.91 2022 87238.0 0.3133200 catch mult climate_1
#> 295700.0 102343.93 2023 87238.0 0.2950220 catch mult climate_1
#> 310025.2 100782.54 2024 87238.0 0.2813900 catch mult climate_1
#> 236170.3 110228.58 2020 87238.0 0.3693860 catch add climate_2
#> 259234.8 110376.43 2021 87238.0 0.3365212 catch add climate_2
#> 281989.1 109608.18 2022 87238.0 0.3093666 catch add climate_2
#> 303659.7 108209.02 2023 87238.0 0.2872887 catch add climate_2
#> 323771.2 106489.97 2024 87238.0 0.2694434 catch add climate_2
#> 236426.6 110741.16 2020 87238.0 0.3689856 catch mult climate_2
#> 259771.3 110424.27 2021 87238.0 0.3358262 catch mult climate_2
#> 282070.9 108651.02 2022 87238.0 0.3092768 catch mult climate_2
#> 302143.0 105969.13 2023 87238.0 0.2887308 catch mult climate_2
#> 319378.3 102977.50 2024 87238.0 0.2731494 catch mult climate_2
#> 244549.9 109540.21 2020 69790.4 0.2853831 catch08 add climate_1
#> 281987.2 104915.11 2021 69790.4 0.2474950 catch08 add climate_1
#> 314937.4 100566.12 2022 69790.4 0.2216009 catch08 add climate_1
#> 342108.4 93356.77 2023 69790.4 0.2040008 catch08 add climate_1
#> 363737.0 89481.26 2024 69790.4 0.1918705 catch08 add climate_1
#> 244677.7 109795.81 2020 69790.4 0.2852340 catch08 mult climate_1
#> 281398.6 103226.80 2021 69790.4 0.2480126 catch08 mult climate_1
#> 311994.2 97545.10 2022 69790.4 0.2236914 catch08 mult climate_1
#> 335670.4 89388.23 2023 69790.4 0.2079135 catch08 mult climate_1
#> 352967.3 84786.33 2024 69790.4 0.1977248 catch08 mult climate_1
#> 244549.9 109540.21 2020 69790.4 0.2853831 catch08 add climate_2
#> 283008.8 106958.39 2021 69790.4 0.2466015 catch08 add climate_2
#> 317887.3 102379.32 2022 69790.4 0.2195445 catch08 add climate_2
#> 347889.7 97206.40 2023 69790.4 0.2006107 catch08 add climate_2
#> 372907.4 92409.72 2024 69790.4 0.1871521 catch08 add climate_2
#> 244677.7 109795.81 2020 69790.4 0.2852340 catch08 mult climate_2
#> 282631.0 105691.58 2021 69790.4 0.2469312 catch08 mult climate_2
#> 315230.9 99088.97 2022 69790.4 0.2213946 catch08 mult climate_2
#> 341026.6 92083.36 2023 69790.4 0.2046479 catch08 mult climate_2
#> 360292.8 86029.79 2024 69790.4 0.1937047 catch08 mult climate_2
#> 227696.1 110727.79 2020 104685.6 0.4597602 catch12 add climate_1
#> 233626.6 110504.35 2021 104685.6 0.4480895 catch12 add climate_1
#> 240255.2 112124.16 2022 104685.6 0.4357266 catch12 add climate_1
#> 247459.8 111656.13 2023 104685.6 0.4230409 catch12 add climate_1
#> 255153.2 113102.03 2024 104685.6 0.4102852 catch12 add climate_1
#> 228076.5 111488.69 2020 104685.6 0.4589933 catch12 mult climate_1
#> 234596.9 110923.16 2021 104685.6 0.4462361 catch12 mult climate_1
#> 241911.2 113076.67 2022 104685.6 0.4327439 catch12 mult climate_1
#> 249776.5 112025.20 2023 104685.6 0.4191171 catch12 mult climate_1
#> 257951.0 113694.98 2024 104685.6 0.4058352 catch12 mult climate_1
#> 227696.1 110727.79 2020 104685.6 0.4597602 catch12 add climate_2
#> 234571.9 112395.10 2021 104685.6 0.4462836 catch12 add climate_2
#> 243058.9 113950.12 2022 104685.6 0.4307005 catch12 add climate_2
#> 253018.3 115339.79 2023 104685.6 0.4137471 catch12 add climate_2
#> 264259.6 116513.98 2024 104685.6 0.3961468 catch12 add climate_2
#> 228076.5 111488.69 2020 104685.6 0.4589933 catch12 mult climate_2
#> 236006.5 113742.49 2021 104685.6 0.4435708 catch12 mult climate_2
#> 245973.6 115562.82 2022 104685.6 0.4255969 catch12 mult climate_2
#> 257477.2 116815.67 2023 104685.6 0.4065820 catch12 mult climate_2
#> 269915.5 117432.14 2024 104685.6 0.3878458 catch12 mult climate_2
#>
#> Schaefer, M.B. (1954). Some Aspects of the Dynamics of Populations Important to the Management of the Commercial Marine Fisheries. Bulletin of the Inter-American Tropical Tuna Commission. 1:26-56.
Pella, J.J., Tomlinson, P.K. (1969). A generalized stock-production model. Bulletin of the Inter-American Tropical Tuna Commission. 13:421–58.
MacCall, A. (2002). Use of Known-Biomass Production Models to Determine Productivity of West Coast Groundfish Stocks. North American Journal of Fisheries Management, 22, 272-279.