Learn R Programming

MLZ (version 0.1.5)

MLmulti: Multispecies mean length mortality estimator

Description

Estimator of instantaneous total mortality (Z) from a time series of mean length data for a suite of stocks that are fished together.

Usage

MLmulti(MLZ.list, ncp, model = c("SSM", "MSM1", "MSM2", "MSM3"),
  start = NULL, grid.search = TRUE, parallel = ifelse(ncp > 2, TRUE,
  FALSE), min.time = 3, Z.max = 5, figure = TRUE)

Value

An object of class MLZ_model.

Arguments

MLZ.list

A list containing objects of class MLZ_data.

ncp

The number of change points in total mortality in the time series. ncp + 1 total mortality rates will be estimated.

model

The multispecies model to be used.

start

An optional list of starting values. See details.

grid.search

If TRUE, a grid search will be performed using the profile_MLmulti function to find the best starting values for the change points (the years when mortality changes). Ignored if start is provided.

parallel

Whether grid search is performed in parallel. Ignored if grid.search = FALSE.

min.time

The minimum number of years between each change point for the grid search, passed to profile_MLmulti. Not used if grid.search = FALSE.

Z.max

The upper boundary for Z estimates.

figure

If TRUE, a call to plot of observed and predicted mean lengths will be produced.

Details

For a model with I change points and N species, the starting values in start is a list with the following entries:

Single Species Model (SSM, independent trends in mortality among species):

Za matrix with nrow = I+1 and ncol = N.
yearZa matrix with nrow = I and ncol = N.

Multispecies Model 1 (MSM1, common mortality change points but changes in Z are independent):

Za matrix with nrow = I+1 and ncol = N.
yearZa vector with length = I.

Multispecies Model 2 (MSM2, common mortality change points. Changes in F vary by estimated relative catchabilities among species):

Z1a vector with length = N.
yearZa vector with length = I.
deltaa vector with length = I.
epsilona vector with length = N-1.

Multispecies Model 3 (MSM3, common mortality change points and common proportional changes in F):

Z1a vector with length = N.
yearZa vector with length = I.
deltaa vector with length = I.

If ncp = 0 change points is specified, then the method simplifies to the Single Species Model. The start list should contain a single entry:

Za vector with length = N.

start can be NULL, in which case, the supplied starting values depend on the value of grid.search. If grid.search = TRUE, starting values will use the values for yearZ which minimize the negative log-likelihood from the grid search. Otherwise, the starting values for yearZ evenly divide the time series.

References

Huynh, Q.C, Gedamke, T., Hoenig, J.M, and Porch C. 2017. Multispecies Extensions to a Nonequilibrium Length-Based Mortality Estimator. Marine and Coastal Fisheries 9:68-78.

See Also

profile_MLmulti

Examples

Run this code
if (FALSE) {
data(PRSnapper)
res_eq <- MLmulti(PRSnapper, ncp = 0, start = list(Z = matrix(0.5, nrow = 1, ncol = 3)))
res_SSM <- MLmulti(PRSnapper, ncp = 1, model = "SSM")

MSM1.start.Z <- matrix(0.5, nrow = 2, ncol = 3)
MSM1.start.yearZ <- 1990
start.list <- list(Z = MSM1.start.Z, yearZ = MSM1.start.yearZ)
res_MSM1 <- MLmulti(PRSnapper, ncp = 1, model = "MSM1", start = start.list, grid.search = FALSE)

res_MSM2 <- MLmulti(PRSnapper, ncp = 1, model = "MSM2")

st.Z1 <- rep(0.5, 3)
st.yearZ <- 1990
st.delta <- 1
start.list <- list(Z1 = st.Z1, yearZ = st.yearZ, delta = st.delta)
resMSM3 <- MLmulti(PRSnapper, ncp = 1, model = "MSM3", start = start.list)
}

Run the code above in your browser using DataLab