Estimating the size of wildlife populations is a fundamental task in conservation ecology. It allows us to evaluate population trends, assess species’ conservation status, and guide management actions. However, direct counts of all individuals in a population are rarely feasible—especially for small, cryptic, or mobile animals such as small mammals.
Instead, mark-recapture methods offer a practical and statistically robust way to estimate population size using repeated sampling. These methods involve capturing individuals, marking them in a non-harmful way, and then releasing them. On subsequent visits, researchers record how many individuals are recaptured (i.e., previously marked) and how many new, unmarked individuals are caught.
In this practical, you will estimate population sizes for each small mammal species you detected in the field, in two different areas of woodland at Svanninge Bjerge.
You will apply three classic estimators:
You will apply these calculations individually to each species in your dataset. For each species, you’ll need to extract the relevant data: how many individuals were captured and marked, how many were recaptured, and the sampling occasions.
Aim: Estimate population sizes and quantify uncertainty using your own data from Svanninge Bjerge.
library(tidyverse)
You should enter your data from the two areas below. Use data collected during capture-mark-recapture surveys.
# Replace these numbers with your actual field values
M <- 50 # Number marked in first sample
C <- 40 # Number captured in second sample
R <- 10 # Number of marked individuals recaptured in second sample
\[ \hat{N} = \frac{M \cdot C}{R} \]
N_LP <- (M * C) / R
N_LP
## [1] 200
\[ \hat{N}_{Chapman} = \frac{(M + 1)(C + 1)}{R + 1} - 1 \]
N_Chapman <- ((M + 1) * (C + 1)) / (R + 1) - 1
N_Chapman
## [1] 189.0909
SE_LP <- sqrt((M^2 * C * (C - R)) / R^3)
CI_LP <- c(N_LP - 1.96 * SE_LP, N_LP + 1.96 * SE_LP)
CI_LP
## [1] 92.64638 307.35362
SE_Chapman <- sqrt(((M + 1) * (C + 1) * (M - R) * (C - R)) /
((R + 1)^2 * (R + 2)))
CI_Chapman <- c(N_Chapman - 1.96 * SE_Chapman, N_Chapman + 1.96 * SE_Chapman)
CI_Chapman
## [1] 107.6129 270.5689
If you collected more than two rounds of data, use the Schnabel method.
# Example simulated data for illustration only
# You must replace this with your own data from Svanninge Bjerge
data <- data.frame(
time = 1:4,
C_t = c(40, 35, 50, 45), # Captured individuals
R_t = c(0, 5, 8, 10), # Recaptured (marked) individuals
M_t = c(50, 60, 75, 85) # Number of marked individuals before capture
)
\[ \hat{N} = \frac{\sum C_t M_t}{\sum R_t} \]
numerator <- sum(data$C_t * data$M_t)
denominator <- sum(data$R_t)
N_Schnabel <- numerator / denominator
N_Schnabel
## [1] 507.6087
SE_Schnabel <- N_Schnabel / sqrt(numerator)
CI_Schnabel <- c(N_Schnabel - 1.96 * SE_Schnabel, N_Schnabel + 1.96 * SE_Schnabel)
CI_Schnabel
## [1] 498.4009 516.8165
You’ve now:
These techniques form a fundamental part of quantitative conservation ecology.