get_index function

Extract a relative biomass/abundance index, center of gravity, or effective area occupied

Extract a relative biomass/abundance index, center of gravity, or effective area occupied

get_index( obj, bias_correct = FALSE, level = 0.95, area = 1, silent = TRUE, ... ) get_index_split( obj, newdata, bias_correct = FALSE, nsplit = 1, level = 0.95, area = 1, silent = FALSE, predict_args = list(), ... ) get_cog( obj, bias_correct = FALSE, level = 0.95, format = c("long", "wide"), area = 1, silent = TRUE, ... ) get_eao(obj, bias_correct = FALSE, level = 0.95, area = 1, silent = TRUE, ...)

Arguments

  • obj: Output from predict.sdmTMB() with return_tmb_object = TRUE. Alternatively, if sdmTMB() was called with do_index = TRUE or if using the helper function get_index_split(), an object from sdmTMB().
  • bias_correct: Should bias correction be implemented TMB::sdreport()?
  • level: The confidence level.
  • area: Grid cell area. A vector of length newdata from predict.sdmTMB() or a value of length 1 which will be repeated internally to match or a character value representing the column used for area weighting.
  • silent: Silent?
  • ...: Passed to TMB::sdreport().
  • newdata: New data (e.g., a prediction grid by year) to pass to predict.sdmTMB() in the case of get_index_split().
  • nsplit: The number of splits to do the calculation in. For memory intensive operations (large grids and/or models), it can be helpful to do the prediction, area integration, and bias correction on subsets of time slices (e.g., years) instead of all at once. If nsplit > 1, this will usually be slower but with reduced memory use.
  • predict_args: A list of arguments to pass to predict.sdmTMB() in the case of get_index_split().
  • format: Long or wide.

Returns

For get_index(): A data frame with a columns for time, estimate, lower and upper confidence intervals, log estimate, and standard error of the log estimate.

For get_cog(): A data frame with a columns for time, estimate (center of gravity in x and y coordinates), lower and upper confidence intervals, and standard error of center of gravity coordinates.

For get_eao(): A data frame with a columns for time, estimate (effective area occupied; EAO), lower and upper confidence intervals, log EAO, and standard error of the log EAO estimates.

Examples

library(ggplot2) # use a small number of knots for this example to make it fast: mesh <- make_mesh(pcod, c("X", "Y"), n_knots = 60) # fit a spatiotemporal model: m <- sdmTMB( data = pcod, formula = density ~ 0 + as.factor(year), time = "year", mesh = mesh, family = tweedie(link = "log") ) # prepare a prediction grid: nd <- replicate_df(qcs_grid, "year", unique(pcod$year)) # Note `return_tmb_object = TRUE` and the prediction grid: predictions <- predict(m, newdata = nd, return_tmb_object = TRUE) # biomass index: ind <- get_index(predictions, bias_correct = TRUE) ind ggplot(ind, aes(year, est)) + geom_line() + geom_ribbon(aes(ymin = lwr, ymax = upr), alpha = 0.4) + ylim(0, NA) # do that in 2 chunks # only necessary for very large grids to save memory # will be slower but save memory # note the first argument is the model fit object: ind <- get_index_split(m, newdata = nd, nsplit = 2, bias_correct = TRUE) # center of gravity: cog <- get_cog(predictions, format = "wide") cog ggplot(cog, aes(est_x, est_y, colour = year)) + geom_point() + geom_linerange(aes(xmin = lwr_x, xmax = upr_x)) + geom_linerange(aes(ymin = lwr_y, ymax = upr_y)) + scale_colour_viridis_c() # effective area occupied: eao <- get_eao(predictions) eao ggplot(eao, aes(year, est)) + geom_line() + geom_ribbon(aes(ymin = lwr, ymax = upr), alpha = 0.4) + ylim(0, NA)

References

Geostatistical model-based indices of abundance (along with many newer papers):

Shelton, A.O., Thorson, J.T., Ward, E.J., and Feist, B.E. 2014. Spatial semiparametric models improve estimates of species abundance and distribution. Canadian Journal of Fisheries and Aquatic Sciences 71(11): 1655--1666. tools:::Rd_expr_doi("10.1139/cjfas-2013-0508")

Thorson, J.T., Shelton, A.O., Ward, E.J., and Skaug, H.J. 2015. Geostatistical delta-generalized linear mixed models improve precision for estimated abundance indices for West Coast groundfishes. ICES J. Mar. Sci. 72(5): 1297–1310. tools:::Rd_expr_doi("10.1093/icesjms/fsu243")

Geostatistical model-based centre of gravity:

Thorson, J.T., Pinsky, M.L., and Ward, E.J. 2016. Model-based inference for estimating shifts in species distribution, area occupied and centre of gravity. Methods Ecol Evol 7(8): 990–1002. tools:::Rd_expr_doi("10.1111/2041-210X.12567")

Geostatistical model-based effective area occupied:

Thorson, J.T., Rindorf, A., Gao, J., Hanselman, D.H., and Winker, H. 2016. Density-dependent changes in effective area occupied for sea-bottom-associated marine fishes. Proceedings of the Royal Society B: Biological Sciences 283(1840): 20161853. tools:::Rd_expr_doi("10.1098/rspb.2016.1853")

Bias correction:

Thorson, J.T., and Kristensen, K. 2016. Implementing a generic method for bias correction in statistical models using random effects, with spatial and population dynamics examples. Fisheries Research 175: 66–74. tools:::Rd_expr_doi("10.1016/j.fishres.2015.11.016")

See Also

get_index_sims()