Learn R Programming

MLZ (version 0.1.1)

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, figure = TRUE)

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.

figure

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

Value

An object of class '>MLZ_model.

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):

Z a matrix with nrow = I+1 and ncol = N.
yearZ a matrix with nrow = I and ncol = N.

Multispecies Model 1 (MSM1):

Z a matrix with nrow = I+1 and ncol = N.
yearZ a vector with length = I.

Multispecies Model 2 (MSM2):

Z1 a vector with length = N.
yearZ a vector with length = I.
delta a vector with length = I.
epsilon a vector with length = N-1.

Multispecies Model 3 (MSM3):

Z1 a vector with length = N.
yearZ a vector with length = I.
delta a 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:

Z a 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
# NOT RUN {
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