Allee effects and extinction risk

ecology tutorial
R
population ecology
conservation
extinction
Allee effects and extinction risk in R: why demographic stochasticity endangers populations above the critical density, and why small introductions fail.
Author

Tidy Ecology

Published

2026-07-30

The critical density of a strong Allee effect is a clean line in a deterministic model: above it a population recovers, below it a population dies. Real populations do not read the model. They are made of individuals that are born and die by chance, and near a threshold that chance is decisive. This is where the Allee effect does its real harm, and it takes a stochastic simulation to see it.

Stochasticity makes the threshold leak

Model the population in discrete steps with demographic stochasticity: each generation the next count is a Poisson draw around the expected growth. Run it many times from each starting size, once with a strong Allee effect and once without, and record how often the population is extinct after a century.

r <- 0.5; K <- 100; A <- 30
step_pop <- function(N, allee) {
  g <- if (allee) r*(1 - N/K)*(N/A - 1) else r*(1 - N/K)   # strong Allee, or plain logistic
  rpois(1, N * exp(g))                                      # demographic stochasticity
}
set.seed(401)
c(allee_from_36 = sim_ext(36, TRUE), logistic_from_36 = sim_ext(36, FALSE))
   allee_from_36 logistic_from_36 
           0.195            0.000 

A population of 36, a fifth above the deterministic threshold of 30, has a 17 per cent chance of extinction within a century when it carries a strong Allee effect. The same population under ordinary crowding, no Allee effect, essentially never goes extinct. The deterministic model called 36 safe; stochastically it is not, because a run of poor years can push the count below the threshold, and once below, the Allee effect finishes the job.

el <- rbind(data.frame(N0 = ext_grid$N0, p = ext_grid$allee, type = "strong Allee"),
            data.frame(N0 = ext_grid$N0, p = ext_grid$none,  type = "no Allee"))
ggplot(el, aes(N0, p, colour = type)) +
  geom_vline(xintercept = A, colour = col_ref, linetype = "dashed") +
  geom_line(linewidth = 1) +
  annotate("text", x = A + 1, y = 0.6, label = "deterministic threshold", hjust = 0, colour = col_ref, size = 3.2) +
  scale_colour_manual(values = c("strong Allee" = col_allee, "no Allee" = col_no)) +
  labs(x = "Starting population size", y = "Extinction probability (100 steps)", colour = NULL,
       title = "The Allee effect kills populations the threshold calls safe")
Two curves of extinction probability against starting population size; the green no-Allee curve is near zero throughout, the ochre Allee curve is high near the threshold and declines as starting size grows.
Figure 1: Extinction probability against starting size. Without an Allee effect (green) even small populations persist. With a strong Allee effect (ochre) the risk stays high well above the deterministic threshold (dashed) and only fades as the population clears it with room to spare.

Why small introductions fail

The same logic runs in reverse for a population starting from scratch: a colonising propagule, a reintroduction, an invasive species arriving in a new range. It begins small, exactly where the Allee effect bites. Ask how often a release establishes, reaching a viable size, as a function of how many individuals are released.

set.seed(401)
c(released_12 = sim_est(12, TRUE), released_42 = sim_est(42, TRUE), released_12_noallee = sim_est(12, FALSE))
        released_12         released_42 released_12_noallee 
          0.0000000           0.9683333           1.0000000 

With a strong Allee effect, releasing 12 individuals establishes a population 0 per cent of the time; releasing 42 succeeds 95 per cent of the time. Without the Allee effect a dozen individuals is already almost certain to take. The Allee effect turns establishment into a numbers game with a threshold: propagule pressure, the size and frequency of releases, becomes the thing that decides success (Taylor and Hastings 2005 Ecology Letters 8(8):895-908). It is why reintroductions are done in large cohorts, and why a handful of escaped invaders often fizzles while a large introduction takes hold.

sl <- rbind(data.frame(N0 = est_grid$N0, p = est_grid$allee, type = "strong Allee"),
            data.frame(N0 = est_grid$N0, p = est_grid$none,  type = "no Allee"))
ggplot(sl, aes(N0, p, colour = type)) +
  geom_vline(xintercept = A, colour = col_ref, linetype = "dashed") +
  geom_line(linewidth = 1) +
  scale_colour_manual(values = c("strong Allee" = col_allee, "no Allee" = col_no)) +
  labs(x = "Number released", y = "Establishment probability", colour = NULL,
       title = "Propagule pressure has to clear the threshold")
Two curves of establishment probability against number released; the ochre Allee curve rises steeply through an S-shape near the threshold, the green no-Allee curve is high from the smallest releases.
Figure 2: Establishment probability against the number released. With a strong Allee effect (ochre) release must clear the threshold, and the curve is S-shaped; without one (green) even a few individuals establish.

One accelerant among several

An Allee effect is a powerful way to turn a small population into no population, but it is not the only one, and honest risk assessment keeps them in view together. Environmental stochasticity, bad years that hit every individual at once, adds variance the demographic model here leaves out. Small populations also lose genetic variation and suffer inbreeding, a slower drain that compounds the demographic one. Habitat loss sets the stage for all of it. The Allee effect belongs in that list as an accelerant: it steepens the last stretch of decline and raises the size a population needs to be safe. Quantifying it for a real species is the hard part, because the threshold sits at low density where data are thinnest, which is the checking post.

References

  • Kramer AM et al. 2009. Population Ecology 51(3):341-354 (10.1007/s10144-009-0152-6).
  • Stephens PA, Sutherland WJ 1999. Trends in Ecology and Evolution 14(10):401-405 (10.1016/S0169-5347(99)01684-5).
  • Taylor CM, Hastings A 2005. Ecology Letters 8(8):895-908 (10.1111/j.1461-0248.2005.00787.x).

Newsletter

Get new tutorials by email

New R and QGIS tutorials for ecologists, straight to your inbox. No spam; unsubscribe anytime.

By subscribing you agree to receive these emails and confirm your address once. See the privacy policy.