Density-Dependent and Frequency-Dependent Transmission

The rate at which new infections appear is a product of how many infectious individuals there are and how often a susceptible meets one. That second piece — the contact rate — is where two classic assumptions part ways: does an individual meet more others as the population gets denser, or does it keep a roughly fixed number of contacts no matter how crowded things get? The answer decides whether a pathogen faces a critical host density below which it cannot spread, and it changes what control does.

Left: the per-individual contact rate rises with density under density-dependent transmission but stays flat under frequency-dependent transmission. Right: as a result density-dependent R0 grows with host density and crosses one at a threshold N_T, while frequency-dependent R0 is constant.

One transmission term, two contact rules

Write new infections per unit time as a per-capita contact rate C(N)C(N), a per-contact transmission probability β\beta, and the chance a contact is with an infectious individual, I/NI/N: new infections=βC(N)SIN.\text{new infections} = \beta\,C(N)\,S\,\frac{I}{N}. Everything hinges on how the contact rate C(N)C(N) depends on the total host density NN.

Density-dependent transmission assumes contacts scale with density, C(N)=κNC(N)=\kappa N. Twice as many hosts in the same area means twice as many encounters per individual. Substituting collapses the term to the mass-action form dIdt=βκSIγI,\frac{dI}{dt}=\beta\kappa\,S I - \gamma I, where the transmission constant is often just written β=βκ\beta' = \beta\kappa. This is the assumption baked into the classic SIR model when it is written with βSI\beta S I.

Frequency-dependent transmission (also called standard incidence) assumes the contact rate is fixed, C(N)=κC(N)=\kappa, independent of density. Each individual makes about the same number of contacts whether the population is sparse or dense. The term becomes dIdt=βκSINγI,\frac{dI}{dt}=\beta\kappa\,\frac{S I}{N} - \gamma I, which is the βSI/N\beta S I / N form.

The two models look almost identical — they differ only by a factor of NN — but that factor changes the biology completely.

The critical difference: a density threshold

Consider a pathogen invading a fully susceptible population, so SNS\approx N. It spreads when dI/dt>0dI/dt>0, i.e. when the basic reproduction number R0>1R_0>1.

Under density dependence, seeding one infection into S=NS=N gives dI/dt=(βκNγ)IdI/dt = (\beta\kappa N - \gamma)I, so R0=βκNγ.R_0 = \frac{\beta\kappa N}{\gamma}. This scales with density. Setting R0=1R_0=1 gives a critical host density NT=γβκ,N_T = \frac{\gamma}{\beta\kappa}, below which the pathogen cannot invade no matter how it is introduced. Thinning the host population below NTN_T eradicates the disease — the logic behind culling and behind the local fadeout of measles in small communities before vaccination.

Under frequency dependence, the NN cancels: R0=βκγ,R_0 = \frac{\beta\kappa}{\gamma}, independent of population size. There is no density threshold. A sexually transmitted infection can persist in a small, sparse population just as well as a large one, because partners are acquired at a rate set by behavior, not by crowding.

Which assumption fits which disease

The right choice is an empirical question about how contact scales, not a mathematical preference.

Real systems often sit between the two, and a common compromise is the power law C(N)=κNqC(N)=\kappa N^{q} with 0q10\le q\le 1: q=1q=1 recovers density dependence, q=0q=0 recovers frequency dependence. Fitting qq to contact or incidence data is a standard way to let the data decide (McCallum, Barlow & Hone 2001).

A worked example

Take a recovery rate γ=0.1 day1\gamma=0.1\ \text{day}^{-1} (a 10-day infectious period) and compare two population sizes, N=100N=100 and N=1000N=1000.

For a density-dependent pathogen with βκ=0.002 day1\beta\kappa=0.002\ \text{day}^{-1} per individual, the threshold is NT=γ/(βκ)=0.1/0.002=50N_T=\gamma/(\beta\kappa)=0.1/0.002=50 hosts. So R0=βκN/γR_0=\beta\kappa N/\gamma is 22 at N=100N=100 and 2020 at N=1000N=1000 — the same pathogen barely spreads in the small population and explodes in the large one.

For a frequency-dependent pathogen with βκ=0.3 day1\beta\kappa=0.3\ \text{day}^{-1}, R0=0.3/0.1=3R_0=0.3/0.1=3 in both populations. Halving or doubling the host density does nothing to invasion.

In code

We compute R0R_0 under both assumptions at two densities to see the density dependence appear and disappear.

R

gamma <- 0.1

# density-dependent: R0 scales with N, threshold at N_T
bk_dd <- 0.002
R0_dd <- function(N) bk_dd * N / gamma
N_T <- gamma / bk_dd                 # critical host density = 50

# frequency-dependent: R0 independent of N
bk_fd <- 0.3
R0_fd <- function(N) bk_fd / gamma

sapply(c(100, 1000), R0_dd)          # 2 and 20
sapply(c(100, 1000), R0_fd)          # 3 and 3
N_T                                  # 50

Python

gamma = 0.1
bk_dd, bk_fd = 0.002, 0.3

R0_dd = lambda N: bk_dd * N / gamma          # scales with density
R0_fd = lambda N: bk_fd / gamma              # flat in density
N_T = gamma / bk_dd                          # critical host density

print("density-dependent R0:", [round(R0_dd(N), 2) for N in (100, 1000)])
print("frequency-dependent R0:", [round(R0_fd(N), 2) for N in (100, 1000)])
print("critical host density N_T:", N_T)
density-dependent R0: [2.0, 20.0]
frequency-dependent R0: [3.0, 3.0]
critical host density N_T: 50.0

Julia

gamma = 0.1
bk_dd, bk_fd = 0.002, 0.3

R0_dd(N) = bk_dd * N / gamma      # scales with density
R0_fd(N) = bk_fd / gamma          # flat in density
N_T = gamma / bk_dd               # critical host density = 50

R0_dd.((100, 1000))               # (2.0, 20.0)
R0_fd.((100, 1000))               # (3.0, 3.0)

Why it matters

The transmission term is the single most consequential modeling choice in an epidemic model, and it is easy to make by accident: writing βSI\beta S I versus βSI/N\beta S I / N commits you to a whole theory of how contact works. Get it wrong and the model can predict a density threshold that does not exist, or miss one that does — which in turn misprices interventions like culling, vaccination, and social distancing. The same distinction propagates into R0R_0 calculations via the next-generation matrix, into the vector-borne models where frequency dependence is the norm, and into the evolution of virulence, where how transmission scales with host density shapes the selective pressure on the pathogen.