opt.bisect | R Documentation |
The plain bisection algorithm (Burden & Douglas, 1985) is employed here to find the value of a given forecast target quantity (e.g. 'fbar') for which a selected value of a performance statistic is obtained over a chosen period.
opt.bisect(
stock,
sr,
deviances = rec(stock) %=% 1,
metrics,
statistic,
years,
pyears = years,
tune,
tol = 0.001,
maxit = 15,
log = TRUE,
verbose = TRUE
)
stock |
object class FLStock |
sr |
object class FLSR |
metrics |
FLQuant of FLStock to be defined |
statistic |
|
years |
years to be evaluated |
tune |
range for input x |
tol |
tolerance level |
maxit |
number of optimisation steps |
log |
if TRUE, optimise on log-scale |
Credits to Iago Mosqueira
Burden, Richard L.; Faires, J. Douglas (1985), "2.1 The Bisection Algorithm", Numerical Analysis (3rd ed.), PWS Publishers, ISBN 0-87150-857-5
data(ple4)
stock <- propagate(stf(ple4, end=2118), 200)
srr <- predictModel(model=rec ~ ifelse(ssb <= b, a * ssb, a * b), params=FLPar(a=1.29, b=1.35e+06))
# GENERATE SRR deviances
devs <- ar1rlnorm(rho=0.4, 2018:2118, iters=200, meanlog=0, sdlog=0.5)
# DEFINE MMY statistic
statistic <- list(MMY=list(~apply(L,1,median), name="MMY",
desc="ICES Maximum Median Yield"))
# CALL bisect over 100 years, Fmmy calculated over last 50.
fmmy <- opt.bisect(stock, sr=srr, deviances=devs, metrics=list(L=landings),
statistic=statistic, years=2018:2118,
pyears=2069:2118, tune=list(fbar=c(0.01, 0.2)))
# fmmy
mean(fbar(fmmy)[,ac(2069:2118)])
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.