DEV Community

杰克法拉利
杰克法拉利

Posted on

The Poisson Distribution: Football Prediction’s Most Overrated “Mathematically Correct” Tool

If you've read any football prediction tutorial, you've seen this formula:

P(goals = k) = λᵏ · e⁻ᵏ / k!

It's called the Poisson distribution, born a hundred years ago to describe "how many phone calls a telephone exchange receives per minute."
Today, millions of people use it to predict football scores — and then, match after match of 3:3, 0:0, 4:2, they question their life choices.

This article aims to explain it thoroughly: what Poisson does right, where it goes wrong on the football pitch, and why "mathematically correct" is precisely its biggest trap.


1. First, in plain language: what is the Poisson distribution?

The math:
Let X be the number of times an event occurs in a unit of time. If X follows a Poisson distribution with parameter λ, then:

  • Probability mass function: P(X = k) = λᵏ·e⁻ᵏ / k!, k = 0, 1, 2, …
  • Expectation E(X) = λ
  • Variance Var(X) = λ ← remember this one; the whole tragedy starts here

In plain words:
The Poisson distribution answers: "If an event happens λ times per unit time on average, what's the probability it happens exactly 0 times, 1 time, 2 times…?"

It was first used like this: a telephone exchange receives 2 calls per minute on average. What's the probability of zero calls in this minute? What's the probability of 5 calls? The answer is the Poisson distribution.

Why is it a good fit for "telephones"? Because phone calls have three features:

  1. Each call doesn't affect others (Zhang San calling doesn't make Li Si want to call more)
  2. The average arrival rate is stable (no sudden 100 calls per minute at 8 AM)
  3. Two calls never arrive simultaneously

These three are exactly all of the Poisson distribution's assumptions. And on the football pitch, almost none of them hold.


2. The bivariate Poisson model: how Poisson predicts scores

The math:
Assume home goals X ~ Poisson(λ_h), away goals Y ~ Poisson(λ_a), with X and Y mutually independent. Then the probability of score (i, j) is:

P(X = i, Y = j) = P(X = i) · P(Y = j) = (λ_hⁱ·e⁻λ_h / i!) · (λ_aʲ·e⁻λ_a / j!)

So we can compute probabilities for every score from 0:0 to 6:6, sort them, and take the Top-1 as the "predicted score."

In plain words:
Assume "home team averages 1.6 goals, away team averages 1.1 goals," multiply the two "independent dice" distributions, and you get a "score probability table." It looks very rigorous: probability of 0:0, of 2:1, of 3:3 — all computed for you.

The problem: this table's correctness rests on the premise that "home goals and away goals don't interfere with each other." In football, that premise is a flat-out lie.


3. Four assumptions — three and a half collapse on the pitch

Assumption ①: X and Y are mutually independent ← collapses hardest

The math:
Independence requires Cov(X, Y) = 0, i.e. home goals and away goals are uncorrelated. But in real football data, the two teams' goal counts are significantly correlated — the scoreline itself is a tactical variable.

In plain words:
Football is not two independently operating telephone exchanges; it's a zero-sum game:

  • Home 2:0 up → park the bus; both teams' goal probabilities drop together
  • Home 0:2 down → push forward recklessly; both rise together
  • 1:1 locked → neither dares to commit

You can't claim "home goals and away goals don't affect each other" — it's precisely the opponent's goals that determine your next behavior. That's like saying "my pulling force in tug-of-war is unrelated to yours."

Consequence: the independence assumption makes the model systematically underestimate the scores with the strongest correlation — blowouts (3:3, 4:2, one side collapsing) and goalless stalemates (0:0, both defending). These are exactly the highest-correlation scenarios, the ones Poisson computes as "very unlikely" yet which occur frequently in reality.

Assumption ②: Events arrive independently (memorylessness) ← collapses

The math: The Poisson process requires inter-arrival times to be i.i.d., and P(next event within t seconds | already waited s seconds) to be independent of s — "memorylessness."

In plain words: Goals don't fall uniformly; they cluster and burst. Red cards, physical collapse, tactical shifts, substitutions cause goals to concentrate in short windows. You've seen "three goals after the 80th minute," but you'll never see "telephone exchange receiving a steady 2 calls per minute"-style goal rhythm. Goals have a clustering effect; Poisson pretends it doesn't exist.

Assumption ③: λ is constant through the match ← collapses

The math: Poisson requires the rate λ(t) ≡ λ to be constant. In real football λ is time-varying: it changes with match progress, scoreline, fitness, weather, tactics.

In plain words: The goal rate in the 10th minute and the 85th minute are completely different things. The trailing side's "late surge" and the strong side's "garbage-time coasting" are evidence of λ drifting. Measuring the whole match with one fixed ruler erases "the process of the game" itself.

Assumption ④: variance = mean ← collapses (the most insidious one)

The math: The Poisson distribution's most famous property: Var(X) = E(X) = λ. The distribution's dispersion is fully determined by its mean — no freedom to express "extra volatility." Real football score distributions are over-dispersed: actual variance significantly exceeds the mean.

In plain words: Poisson's "personality" is locked by its mean. A match with λ = 2 must have volatility exactly equal to 2 — no more, no less. But real football: two matches both "averaging 4 goals," one can end 7:6, the other 1:0. The real world's variance is far larger than Poisson allows.


4. The key mechanism: why "perfectly tuned parameters" can't save it

This is the most important section of the article.

The math:
The Poisson distribution's shape (kurtosis, skewness, tail fatness) is entirely determined by the single parameter λ, and variance is locked to λ. Therefore, no matter how finely you tune λ (with xG, historical averages, or market-implied values), you can only translate the distribution — you cannot change its shape.

When the true distribution is "sharp peak + fat tails" (lots of boring scores + a few extreme ones), while Poisson is "sharp peak + thin tails" (probability mass squeezed around the mean), the two rankings must systematically misalign:

  • Poisson's Top-1 is always a low-priced score near the mean (1:0, 2:1, 1:1, 2:0)
  • Real-world frequent outcomes (0:0, 3:3, 0:2 upsets) are systematically down-ranked
  • The KL divergence is nonzero and does not converge as λ estimation improves

In plain words:
Imagine Poisson as a ruler with a fixed shape and no adjustable markings. You can slide it forward and backward (tuning λ), but you can't make it thicker, thinner, longer, or shorter. The real distribution of football scores is a "differently shaped ruler." You can position it perfectly, but if the ruler's shape is wrong, the rankings it produces are wrong.

This is the essential difference between "model structural error" and "parameter estimation error":

  • Parameter error → can be tuned, can be fixed
  • Structural error → welds the prediction ceiling shut; tuning is futile

Backtest proof (our data):
On 44,479 real matches, the Poisson model's Top-1 score hit rate was 13.33%, logloss 2.87 — significantly worse than the "de-vigged market probability" baseline. And 148,397 real score bins show: 88% of actual outcomes fall in {1:0, 2:1, 1:1, 0:1, 2:0} — five boring scores.

Notice the irony in this comparison:

Poisson's "predicted" Top-1 also happens to fall in these boring scores — the direction coincidentally aligns, but it bets the same way in every match, which is equivalent to erasing variance entirely. When a match actually ends 3:3, Poisson's assigned probability might be under 2%.


Causal chain: why the Poisson distribution welds shut the score-prediction ceiling (backtest: 44,479 matches, Top-1 hit rate 13.33%, logloss 2.87)

5. So should I delete Poisson? — No, demote it

Many people hearing this would say: "Then Poisson is useless, delete it."

Don't delete it. Poisson gets "ranking" wrong, but it gets two things right:

  1. Candidate-pool generation: Poisson can propose a "reasonable score set" (0:0 to 4:2), ensuring you don't miss "possible worlds." Real scores do mostly fall near its mean neighborhood, so it's a decent "possibility filter."
  2. λ's physical meaning: λ itself (expected goals) remains a useful intermediate quantity, feeding magnitude judgment and over/under calibration.

The correct division of labor:

Poisson opens the possibility space (breadth); the market prices each possibility (precision).
One manages "which scores exist in the world," the other manages "which score is most likely."

That's the choice our model finally made: Poisson exits ranking (weight zeroed), remains as candidate-pool generator; ranking is fully handed to de-vigged market probability + evidence scores.


6. One-paragraph summary (take it and go)

What you want Poisson for Verdict
Generate a "possible score set" ✅ Yes — this is what it's good at
Predict "which score is most likely" ❌ Don't trust it — wrong shape, ceiling welded shut
Derive expected goals λ ✅ Useful — as an intermediate quantity
Judge direction and winner ❌ Market odds carry far more information

One last plain sentence:
Poisson is a mathematical tool invented a hundred years ago for "telephones." Football is not a telephone — football has tactics, emotion, collapses, and late winners, and those are precisely the things erased by the three words "independent, constant, memoryless" in Poisson's formula.

Being mathematically correct is not the same as being really correct. The one who truly understands the market is the market itself.


Data source: backtest data from my football prediction model's full historical library (44,479-match Poisson ranking backtest, 148,397 real score bins, 230,557 match odds). Conclusions come from real backtests, not theoretical derivation.

Disclaimer: This article is a knowledge explainer on probability theory and football market mechanics. It is not betting advice. Every prediction carries variance — stay rational.

Top comments (0)