The Poisson Distribution

Probability & Statistics Fundamentals

Chapter 7 · The Poisson Distribution

Chapter 6's binomial distribution needed a fixed, countable number of trials — flip the coin exactly 4 times, check exactly 500 units. Plenty of real questions don't have a natural "number of trials" at all: how many incidents hit a server in a week? How many requests arrive at an endpoint in a second? There's no fixed n to point to — just a rate. The Poisson distribution is built specifically for exactly that shape of question.

What the Poisson Distribution Models

The Poisson distribution counts how many times a rare, independent event happens within a fixed interval (of time, space, or anything else continuous), given only the average rate at which it happens — a single parameter, conventionally called λ (lambda).

Poisson probability mass function
P(X = k) = (λᵏ × e⁻λ) / k!

e here is Euler's number (≈2.71828), the same constant used throughout continuous math; k! is a factorial, exactly Discrete Mathematics Fundamentals Chapter 9's own territory for anyone who's taken that course. λ is both the distribution's only parameter and, conveniently, its mean.

Mean, Variance — and a Distinctive Property

Poisson mean and variance
E[X] = λ    Var(X) = λ
Mean equals variance — genuinely unusual, and worth remembering
Chapter 6's binomial variance, np(1−p), is always strictly less than its mean np, since (1−p) < 1. The Poisson distribution has no such gap — its variance is always exactly equal to its mean. This is actually a useful real-world diagnostic: if a dataset that's supposedly Poisson-distributed shows a variance noticeably larger than its mean ("overdispersion"), that's a signal the independence or constant-rate assumption is probably broken — real incidents often cluster (one root cause triggers several), which inflates variance beyond what pure Poisson randomness would predict.

Worked Example: Weekly Server Incidents

A service experiences an average of λ = 3 incidents per week. What's the probability of exactly 5 incidents in a given week?

TermValue
λ⁵ = 3⁵243
e⁻³≈ 0.0498
5!120
P(X=5) = (243 × 0.0498) / 120≈ 0.1008 (10.1%)

For contrast, the probability of a completely quiet, incident-free week: P(X=0) = (3⁰ × e⁻³) / 0! = e⁻³ ≈ 0.0498 — about a 5% chance, despite the average being 3 incidents. This is directly Technical Support's perfdiag1/incident1 territory, now with a precise number attached instead of just "incidents happen sometimes."

A Second Example: Request Arrival Rate

An API endpoint receives an average of λ = 2 requests per second. What's the probability of exactly 4 requests arriving in a given second?

TermValue
λ⁴ = 2⁴16
e⁻²≈ 0.1353
4!24
P(X=4) = (16 × 0.1353) / 24≈ 0.0902 (9.0%)

This is the exact reasoning behind capacity planning: knowing the full distribution of "requests per second," not just the average, is what lets a team provision for the realistic worst case rather than just the mean.

The Poisson Distribution as a Limit of the Binomial

The Poisson distribution isn't an unrelated new idea — it's what the binomial distribution turns into when n gets very large and p gets very small, while their product np stays fixed at λ. This makes intuitive sense: "requests per second" has effectively infinite tiny sub-instants where a request could arrive (huge n), each individually very unlikely (tiny p), but the overall rate λ = np stays meaningful.

ModelP(X=0), n=10,000, p=0.0002 (λ=2)
Exact binomial0.135308...
Poisson approximation (λ=2)0.135335...

The two agree to four decimal places — confirming the Poisson distribution as a genuinely accurate, and far simpler, stand-in whenever n is huge and p is tiny.

The Poisson Distribution in Code

import math def poisson_pmf(k, lam): return (lam ** k * math.exp(-lam)) / math.factorial(k) print(poisson_pmf(5, 3)) # 0.1008... — weekly incidents example print(poisson_pmf(0, 3)) # 0.0498... — a quiet week print(poisson_pmf(4, 2)) # 0.0902... — request arrivals example # Binomial-vs-Poisson agreement check, n large / p small def binomial_pmf(n, k, p): return math.comb(n, k) * (p ** k) * ((1 - p) ** (n - k)) print(binomial_pmf(10000, 0, 0.0002)) # 0.135308... print(poisson_pmf(0, 2)) # 0.135335... — matches closely

Hands-On Exercises

Exercise 1

A different service averages λ = 2 incidents per week. Using this chapter's own Poisson formula, compute P(exactly 4 incidents) in a given week, showing the λᵏ, e⁻λ, and k! terms separately.

📄 View solution
Exercise 2

An endpoint averages 5 requests per minute (λ = 5). Compute P(exactly 3 requests in a given minute), and separately state E[X] and Var(X) using this chapter's own mean/variance property.

📄 View solution
Exercise 3

A team monitors a Poisson-modeled metric (say, incidents per week) over several months and notices the observed variance is consistently much larger than the observed mean. Using this chapter's own "mean equals variance" property and its overdispersion finding, explain what this observation suggests is actually happening, and why a pure Poisson model might now be misleading for capacity/reserve planning.

📄 View solution

Chapter 7 Quick Reference

  • Models: the count of rare, independent events over a fixed interval, given only a rate λ — no fixed "number of trials" needed, unlike the binomial
  • PMF: P(X=k) = (λᵏ × e⁻λ) / k!
  • Mean = variance = λ — a distinctive, memorable property; real data showing variance far above the mean ("overdispersion") signals broken independence, often clustered events sharing a root cause
  • The Poisson distribution is the limit of the binomial as n → ∞ and p → 0, with np = λ held fixed — verified numerically to four decimal places in this chapter
  • Directly models server incident rates and request arrival rates — Technical Support's own perfdiag1/incident1 material, now with exact probabilities attached
  • Next chapter: The normal distribution and the Central Limit Theorem