---
title: "Introducing $\\rho_{max}$ and $K_{max}$!"
author: "Drew Tyre"
date: '2019-02-11'
output: html_document
draft: no
slug: below-K
tags_include:
- ecology
- carrying capacity
categories: Research
---
```{r setup, include = FALSE}
library("tidyverse")
library("tidypop")
library("gganimate")
```
I often hear the phrase, "This population is below $K$ so ...". But what does the
trajectory of such a population look like? I think it should be increasing. But apparently
not everyone agrees. The usual context of this statement is interpreting what
kind of birth and death rates to expect. If a population is "below $K$", then birth
rates should exceed death rates. If they are not, then *something* (disease,
predation, hunting) is causing birth rates to fall or death rates to rise.
I've always thought of $K$ as an abstract point, the position on the population
size spectrum[^spectrum] where birth and death rates are equal. In my thinking,
if a disease arrives that reduces recruitment [(e.g. by killing newborns)](https://www.omaha.com/outdoors/pneumonia-wreaking-havoc-among-bighorn-sheep-in-nebraska-s-pine/article_ce95d13b-1d0c-5b47-ba02-316daa969d56.html), then
$K$ (and maybe $r_{max}$) is reduced because the birth rate curve shifts downwards.
But apparently not everyone thinks of $K$ in this arbitrary mathematical way.
I know there are many flavors of the term "carrying capacity". For example, "social
carrying capacity" as used by wildlife managers describes how many individuals of
a species humans are prepared to accept.[^social] I think of my use of carrying
capacity as "ecological carrying capacity", the size of a population that growth
tends towards in the absence of stochastic effects. But maybe this needs to be
unpacked a bit more.
Thinking of $K$ as a single thing creates a problem: my mathematical point
does not stay constant. It bounces around in response to environmental stochasticity.
In years with good rainfall $K$ is higher for deer than in drought years.
It trends over time in response to slow variables like landuse change. But the
common usage suggests that $K$ does *not* change. I think we need two concepts:
$K_t$ and $K_{max}$.
$K_t$ is the mathematical point I just described, and includes all the vagries of
the environment, disease, predators etc. It is specific to a point in time and
indeed, space. In contrast, $K_{max}$ is constant, a feature of the species' life
history. In a given habitat[^habitat], at what population size do birth rates equal
death rates equal given *only* intra-specific competition. In theory, one could work
out $K_{max}$ given [knowledge of primary production](https://onlinelibrary.wiley.com/doi/10.1111/ele.13227), plant community composition,
assimilation efficiencies, and assuming scramble competition. Here's a graph to
illustrate.
```{r, echo = FALSE}
logisticmod <- function(N0, r_t, K_t, t, Kmax){
N1 <- N0*exp(r_t*(1-N0/K_t))
}
plotdata <- tibble(t = 1:100,
Kmax = 100,
r_t = 0.25,
K_t = Kmax - rgamma(100, shape = 10, rate = 1/2))
plotdata <- iterate_pop(N0 = c(N=50), plotdata, logisticmod)
ggplot(data = plotdata,
mapping = aes(x = t, y = N)) +
geom_point() + geom_hline(yintercept = plotdata$Kmax[1], linetype = 2) +
annotate("text", x = 5, y = 97, label = "K[max]", parse = TRUE) +
geom_segment(mapping = aes(xend = t + 1, yend = K_t),
arrow = arrow(length = unit(0.1, "inches"), type = "closed", angle = 15),
alpha = 0.5) +
transition_time(t) + shadow_mark()
# anim_save("~/Desktop/animation.gif") # for sharing
```
In the animation[^methods], the arrows point from the current population size to $K_t$, which varies
randomly between years. Note that early on, the population increases *even in bad years*
(years with low $K_t$), because the population is below $K_t$.
I picked the $K_{max}$ notation to correspond to $r_{max}$, the intrinsic rate of
growth, or the difference in birth and death rates when intra-specific competition
is absent. This has a pleasing conceptual symmetry, but actually creates a problem.
I use $r_{max}$ in the sense of $K_t$, that is, the maximum rate of growth including
all the vagaries of the ecosystem. I use $r_t$ as the observed per capita rate of growth at
a particular point in time. So, if $r_{max}$ is now the life history constant, $r_t$ is the
particular maximum growth rate at $t$, then what is $ln\left(\frac{N_{t+1}}{N_t}\right)$?
My constants $K_{max}$ and $r_{max}$ have an interesting property. They are unobservable.
Given two population estimates you can "observe" $ln\left(\frac{N_{t+1}}{N_t}\right)$.
By analogy with the distinction between population and sample statistics, I could use
$\rho_{max}$ for the life history constant, $\rho_t$ for the value at a specific
time, and then $r_t = ln\left(\frac{N_{t+1}}{N_t}\right)$ just makes sense! Maybe.
Conceptually $r_t$ is not the same beast as $\rho_t$ because the latter is independent
of $N_t$.
Getting this notation right is not a triviality. It affects how students learn.
I've noticed many of my students struggle with this exact conceptual distinction
between $r_t$ and $\rho_t$. One is an unobservable property of the system, and the
other is an estimated quantity. Maybe I should put a hat on $\hat{r}$.
Another interesting connection:
$\hat{r}_t = f\left(\hat{N}_t | \rho_t, K_t\right)$.
Nothing to see here, really. I suspect the vague notation and terminology is so
deeply engrained in generations of ecologists that clarifying it at this point
is well nigh impossible. What do you think? Comments welcome below!
[^spectrum]: I just made this up. I love being an academic and getting to coin new jargon.
[^social]: The concept is not without criticism - [this is a fascinating read.](https://www.counterpunch.org/2016/01/08/the-politspeak-of-social-carrying-capacity/)
[^habitat]: introducing another vague term here! Here, I think of habitat as a type of vegetation in a particular location, averaged at a resolution of at least the home range of the species in question. This works just fine for big horn sheep, but what about predators?
[^methods]: I assumed that $K_t = K_{max} - gamma(10, 0.5)$ with shape and rate parameters for the gamma variate. You can see [all the code if you're keen](https://raw.githubusercontent.com/rbind/cheap_shots/master/content/post/below-K.Rmd).