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.
Figure 1. 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.

Show how β and R₀ change with population size

Both models are the same equation with a different transmission coefficient. Write new infections in the standard-incidence form β(N)SI/N\beta(N)\,S\,I/N and let a single coefficient β(N)=βC(N)\beta(N)=\beta\,C(N) absorb the contact rule. The two assumptions are then just two shapes for that coefficient:

β(N)=βκN(density-dependent),β(N)=βκ(frequency-dependent).\beta(N) = \beta\kappa N \quad\text{(density-dependent)}, \qquad \beta(N) = \beta\kappa \quad\text{(frequency-dependent)}.

Under density dependence the coefficient grows linearly with crowding; under frequency dependence it is flat. The power-law compromise C(N)=κNqC(N)=\kappa N^{q} interpolates the two as β(N)=βκNq\beta(N)=\beta\kappa N^{q}.

Seed one infection into a fully susceptible population, SNS\approx N. The infected class then obeys

dIdt=[β(N)SNγ]I=[β(N)γ]I,\frac{dI}{dt} = \left[\beta(N)\,\frac{S}{N} - \gamma\right]I = \big[\beta(N) - \gamma\big]I,

so the basic reproduction number is R0=β(N)/γR_0 = \beta(N)/\gamma, giving

R0DD=βκNγ,R0FD=βκγ.R_0^{\mathrm{DD}} = \frac{\beta\kappa N}{\gamma}, \qquad R_0^{\mathrm{FD}} = \frac{\beta\kappa}{\gamma}.

The density-dependent R0R_0 carries a factor of NN; the frequency-dependent one does not. The invasion (per-capita) growth rate is r(N)=β(N)γ=γ(R01)r(N)=\beta(N)-\gamma=\gamma\,(R_0-1), so it shares the sign of R01R_0-1:

rDD(N)=βκNγ,rFD(N)=βκγ.r_{\mathrm{DD}}(N) = \beta\kappa N - \gamma, \qquad r_{\mathrm{FD}}(N) = \beta\kappa - \gamma.

The density-dependent rate is a rising line that crosses zero exactly at the critical density NT=γ/(βκ)N_T=\gamma/(\beta\kappa) — below it the pathogen shrinks, above it it grows — while the frequency-dependent rate is a horizontal line whose sign never depends on NN.

Per-capita growth rate of an invading infection against host density. The density-dependent rate rises linearly and crosses zero at the critical density N_T = 50; below it the pathogen fades out. The frequency-dependent rate is flat, so invasion succeeds or fails at every density alike.
Figure 2. Per-capita growth rate of an invading infection against host density. The density-dependent rate rises linearly and crosses zero at the critical density N_T = 50; below it the pathogen fades out. The frequency-dependent rate is flat, so invasion succeeds or fails at every density alike.

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.

Watching the threshold in an SIR epidemic#

The invasion algebra becomes vivid when we run the full SIR model forward. Keep γ=0.1 day1\gamma=0.1\ \text{day}^{-1} and the two transmission constants from above, seed one infection, and compare population sizes N=100N=100 and N=500N=500.

A density-dependent epidemic uses the mass-action term βκSI\beta\kappa\,S I:

dSdt=βκSI,dIdt=βκSIγI,dRdt=γI,\frac{dS}{dt} = -\beta\kappa\,S I, \qquad \frac{dI}{dt} = \beta\kappa\,S I - \gamma I, \qquad \frac{dR}{dt} = \gamma I,

so R0=βκN/γR_0=\beta\kappa N/\gamma climbs from 22 at N=100N=100 to 1010 at N=500N=500.

A frequency-dependent epidemic divides the same term by NN:

dSdt=βκSIN,dIdt=βκSINγI,dRdt=γI,\frac{dS}{dt} = -\beta\kappa\,\frac{S I}{N}, \qquad \frac{dI}{dt} = \beta\kappa\,\frac{S I}{N} - \gamma I, \qquad \frac{dR}{dt} = \gamma I,

so R0=βκ/γ=3R_0=\beta\kappa/\gamma=3 at both sizes.

Number infected over time from four SIR runs. Colour marks the contact rule (density-dependent vs frequency-dependent) and dashing marks the population size (N=100 solid, N=500 dashed). The density-dependent curves are two different epidemics — a slow low bump at N=100 and a fast tall wave at N=500 — while the frequency-dependent curves are the same epidemic scaled up with N.
Figure 3. Number infected over time from four SIR runs. Colour marks the contact rule (density-dependent vs frequency-dependent) and dashing marks the population size (N=100 solid, N=500 dashed). The density-dependent curves are two different epidemics — a slow low bump at N=100 and a fast tall wave at N=500 — while the frequency-dependent curves are the same epidemic scaled up with N.

Colour marks the contact rule and dashing marks the population size, so each curve is one row of the earlier R0R_0 table playing out in time. The two frequency-dependent curves (orange) are the same epidemic: both have R0=3R_0=3, so they share a growth rate and reach the same fraction of the population — raising NN from 100 to 500 just scales the count up about fivefold (a single seed is a smaller starting fraction in the larger population, so its wave arrives a little later). The two density-dependent curves (blue) are different epidemics: at N=100N=100 the pathogen barely spreads (R0=2R_0=2, a slow bump peaking near 16), while at N=500N=500 it explodes (R0=10R_0=10, a fast wave peaking above 330). Raising the density changes what kind of outbreak happens under density dependence, but only how large it is under frequency dependence.

In code#

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

R#

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#

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#

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.