--- title: '5.2: Sustainable Fishing' author: "Jessie Golding, Desiree Andersen, Ellen Bledsoe" format: html: toc: true --- ```{r} #| include: false knitr::opts_chunk$set(echo = TRUE) ``` # Sustainable Fishing ## Learning Outcomes - Students will be able to explain why logistic growth populations are preferable targets for sustainable fishing. - Students will be able to fit a logistic growth model using the `drc` package and extract the carrying capacity estimate. - Students will be able to calculate the maximum sustainable yield (MSY) from a carrying capacity estimate. - Students will be able to add a horizontal reference line to a `ggplot2` plot using `geom_hline()`. ## Applying Principles of Population Growth We have decided that the Antarctic toothfish (*Dissostichus mawsoni*) may be a good candidate for our fishing. ![](assets/antarctic_toothfish.jpg){fig-align="center"} The Antarctic toothfish is fairly widely distributed around Antarctica. The hexagons below show where the Antarctic toothfish occurs. Gray represents known distribution and red represents locations where genetic samples were taken for a study on their population (Maschette et al. 2023). ![](assets/antarctic_toothfish_distribution.jpg){width="75%" fig-align="center"} However, given concerns about maintaining the fishery (an important ecosystem service), we want to make sure we do not overfish the species but rather fish sustainably. Let's keep exploring our fish populations to help us understand what we should be focusing on when making decisions about how many fish we can sustainably harvest from any given population. ## Set-Up As usual, we start with loading our packages and our data. Read in "fish_pops.csv" as `fish`. ```{r} #| message: false #| warning: false # Write your code here ``` ::: instructor-only **Answer:** ```{r} library(tidyverse) fish <- read_csv("data/fish_pops.csv") ``` ::: Let's take a look at the data and remind ourselves what the data look like. ```{r} head(fish) ``` ## Population Growth Models Let's remind ourselves about exponential growth and logistic growth. **Exponential growth** takes births and deaths (in the form of the intrinsic growth rate, `r`) into account: ![](assets/clipboard-4205079346.png){width="83" fig-align="center"} **Logistic growth** includes the intrinsic growth rate and another important factor: resources. The resources determine the maximum number of individuals a population can have, which we call the carrying capacity (`K`): ![](assets/clipboard-3779797644.png){width="130" fig-align="center"} This is what each type of population growth model looks like: ![](assets/exp_and_logistic.png){width="75%" fig-align="center"} ### Which Population to Fish? We've previously discussed what factors we want to focus on when we are deciding which population to fish. Ideally, we want to target both a large population and a stable population. At first glance, a population that is growing exponentially seems ideal, and it is, in some ways. But in reality, all populations will *eventually* hit some capacity on resources. Populations that are currently demonstrating exponential growth either haven't yet hit their carrying capacity or have dramatically overshot their carrying capacity, which can lead to a huge crash or a smaller crash with boom and bust cycles until it evens out around the carrying capacity. ![](assets/pop_crash.jpeg){width="75%" fig-align="center"} So, in order for us to feel confident that our population will be large for a long time, we probably want to choose the safer option, which is choosing a population that is showing logistic growth. Let's select the logistic growth population with the largest value, Population D, for our next analyses. ```{r} log_pop <- fish %>% filter(population == "D") ``` ## Estimating Carrying Capacity In our journey to determine how many fish we can sustainably harvest (i.e., remove from the population without causing the population to go extinct), we first need to determine the carrying capacity. While the dataset contains carrying capacity estimates, those are only visual estimates. We are going to use code (and R will use a lot of math behind the scenes) to calculate a more accurate estimate from the data. To do so, we are actually going to use a new package, `drc`. This package will let us fit a logistic model and provide an estimate of the asymptote of the curve, or the value where the curve levels off and no longer increases. This is our estimate of `K`, the carrying capacity of the population. ```{r} #| message: false #| warning: false # load the drc package; any loading messages in your console are fine library(drc) ``` Now, we are going to use a function from the `drc` package called `drm()` to fit our logistic growth model. It works very similarly to the inferential statistics models from Module 3 except instead of finding a straight line of best fit, this line of best fit is allowed to curve like the logistic growth model. Let's take a look at the data to confirm what type of growth we're working with. ```{r} ggplot(log_pop, aes(x = year, y = N)) + geom_point() + geom_line() + labs(x = "Year", y = "Population") + theme_bw() ``` What kind of growth is this population exhibiting? ::: instructor-only **Answer:** Logistic. The population increases quickly at first, then levels off as it approaches the carrying capacity. ::: ```{r} # Fit the model to the data # 'N ~ year' means we're predicting N (population) as a function of 'year' # fct = LL.4() specifies to fit a logistic growth model model <- drm(N ~ year, data = log_pop, fct = LL.4()) ``` This time, unlike with the linear model, we are interested not in a p-value but in the estimate of a specific value from the model: the carrying capacity. To get all of the estimated values, we will use a function called `coef`, which is short for "coefficient," to give us the estimates from the `model` object. ```{r} estimates <- coef(model) estimates ``` In this case, we happen to be interested in the estimate they are calling `d:(Intercept)`; this is what we are calling `K`, the carrying capacity. Let's save that value. The simplest way to choose one value from the vector `estimates` is to use square brackets for subsetting, something we haven't done since Module 1! We want the 3rd value. ```{r} K <- estimates[3] K ``` Our estimate for the carrying capacity is 104.5 fish, which is close to the carrying capacity value in the dataset (100). We can remove the label (`d:(Intercept)`) if we want to by using the `unname()` function. Now our object `K` is only the number for the estimate of the carrying capacity. ```{r} K <- unname(K) K ``` ### Plotting the Carrying Capacity Let's now add this estimated carrying capacity value to our plot of the data. First, let's plot the population data alone. ```{r} ggplot(log_pop, aes(x = year, y = N)) + # Plot the original data points (year vs. population) geom_point() + geom_line() + labs(x = "Year", y = "Population") + theme_bw() ``` To add a line representing the carrying capacity, we can use `geom_hline()` to add a horizontal line where the y-intercept is equal to the carrying capacity. This is very similar to how we used `geom_vline()` to add a vertical line to histograms to represent the mean value. ```{r} ggplot(log_pop, aes(x = year, y = N)) + # Plot the original data points (year vs. population) geom_point() + geom_line() + # use geom_hline to plot a horizontal line where the y-intercept is equal to K geom_hline(aes(yintercept = K), color = "red") + # outside of aes() sets color labs(x = "Year", y = "Population") + theme_bw() ``` ## Maximum Sustainable Yield Once we have an estimate of the carrying capacity for a population, we can calculate something called the *maximum sustainable yield*, or MSY. The MSY is the number of individuals that we can remove from the population and keep the population stable (or increasing). If we remove too many individuals (above MSY), the population will not be able to reproduce fast enough to replace the harvested individuals, causing a decline in the population—in this case, from over-fishing. ![](assets/logistic_growth_msy.png){width="49%"} ![](assets/msy.png){width="49%"} While the concept behind how we get to the equation for MSY may be a bit complex, thankfully, the equation itself is quite straightforward: ![](assets/clipboard-959845017.png){fig-align="center"} Let's calculate the maximum sustainable yield for Population D. ```{r} MSY <- K/2 MSY ``` This means that we can take about 52 fish from this population annually and keep the population stable! If we take fewer than 52 fish, the population will increase (until the carrying capacity, that is). If we take more than 52 fish, however, we are over-fishing the population, meaning the population will not be able to reproduce enough to maintain the population and will eventually collapse. ## References Golding, J.; Andersen, D.; Bledsoe, E. (2024). [Data-Driven Decision-Making: Antarctic Fisheries](http://dx.doi.org/10.25334/YECE-7M02). [Teaching Ecology for All Undergraduate Audiences](https://qubeshub.org/groups/teespring2024), QUBES Educational Resources. [doi:10.25334/YECE-7M02](http://dx.doi.org/10.25334/YECE-7M02)