grolenage_boot {fishboot} | R Documentation |
Bootstrapped length-at-age analysis
Description
This function obtains growth parameter estimates from length-at-age data. Since it internally uses the function growth_length_age, this function allows to perform different methods: Gulland and Holt, Ford Walford, Chapman, Bertalanffy, or non linear least squares method (LSM).
This function performs bootstrapped fitting of the von Bertalanffy growth
function with estimated growth parameters (L_{inf}
, K
and
t_0
) from length-at-age data, based on the function
growth_length_age. The output is an object containing the
parameters L_{inf}
, K
and t_0
(named here t_anchor
)
as well as the growth performance index Phi’
(named PhiL
).
Usage
grolenage_boot(
param,
method = "LSM",
Linf_est = NA,
Linf_init = 100,
K_init = 0.1,
t0_init = 0,
seed = NULL,
nresamp = 200,
nan_action = c("nothing", "nanrm", "narm", "force"),
time_lim = 5 * 60
)
Arguments
param |
a
|
method |
indicating which of following methods should be applied:
|
Linf_est |
BertalanffyPlot requires an estimate for |
Linf_init |
initial parameter of |
K_init |
initial parameter of |
t0_init |
initial parameter of |
seed |
seed value for random number reproducibility (if it |
nresamp |
|
nan_action |
|
time_lim |
If |
Details
It is important to take into account the particular considerations of each method regarding the required parameters, so it is recommended to read the Details of the documentation of growth_length_age.
CI and plotting arguments (of growth_length_age) are set as
FALSE
for each bootstrap call here. By default,
growth_length_age generates a plot when it is called, so
internally grolenage_boot
executes a dev.off
call in order to
prevent it.
nan_action = "force"
should be used carefully, as estimated NaN
VBGF parameter values are not always a result of bootstrap data selection
factors. Few resamples should first be tested with different Linf_init
,
K_init
and t0_init
values. No selection of the realistic initial
parameters may also result in NaN
values being obtained. The search
time may depend on the size of the input set. For example, if you have many
thousands of individuals or if (in addition) the value of nresamp
is
too high, it is possible that the function will take a long time before
obtaining complete results. Even though time_lim
avoids falling into
an infinite loop by limiting the time used by this process to 5 minutes, this
value is referential and might be insufficient due to the factors mentioned
above.
t_anchor
is the true t_0
estimate in the case of true
length-at-age data, but it will only be available from "BertalanffyPlot" or
"LSM" methods. For the other methods, a vector of NA
s will be returned
instead.
Value
An object of class lfqBoot
containing 2 levels:
$bootRaw
A
data.frame
of fitted VBGF parameters (columns) by resampling (rows).$seed
A
numeric
vector of seed values set prior to each resampling call.
References
Efron, B., & Tibshirani, R., 1986. Bootstrap methods for standard errors, confidence intervals, and other measures of statistical accuracy. Statistical Science, 54-75.
Pauly, D. 1981. The relationship between gill surface area and growth performance in fish: a generalization of von Bertalanffy's theory of growth. Meeresforsch. 28:205-211.
Schwamborn, R., Mildenberger, T. K., & Taylor, M. H., 2019. Assessing sources of uncertainty in length-based estimates of body growth in populations of fishes and macroinvertebrates with bootstrapped ELEFAN. Ecological Modelling, 393, 37-51.
Schwamborn, R., Freitas, M. O., Moura, R. L., & Aschenbrenner, A. 2023. Comparing the accuracy and precision of novel bootstrapped length-frequency and length-at-age (otolith) analyses, with a case study of lane snapper (Lutjanus synagris) in the SW Atlantic. Fisheries Research, 264, 106735.
von Bertalanffy, L., 1938. A quantitative theory of organic growth. Human Biology 10, 181-213.
Examples
# Synthetical length at age data
dat <- list(age = rep(x = 1:7,each = 15),
length = c(rnorm(n = 15, mean = 4.6, sd = 4),
rnorm(n = 15, mean = 22.8, sd = 7),
rnorm(n = 15, mean = 35, sd = 7),
rnorm(n = 15, mean = 43, sd = 7),
rnorm(n = 15, mean = 49, sd = 5),
rnorm(n = 15, mean = 53, sd = 5),
rnorm(n = 15, mean = 57, sd = 3)))
# Perform bootstrapped curve fitting with grolenage_boot
res <- grolenage_boot(param = dat, nresamp = 70)
# Plot scatter histograms of Linf and K
LinfK_scatterhist(res = res)
# Plot univariate density plots of all parameters
univariate_density(res = res)
# Plot swarm plots of all n bootstraps
vbgfCI_time(res = res)
# Extract data.frame with all parameter estimates
# for comparisons of posterior distributions
print(res$bootRaw)