5D Library › Probabilistic Judgement, Brier-Score Calibration and the Statistics of Collective Intelligence · 中文
Chapter 6 The Statistics of Collective Intelligence
Weighing the ox
In the autumn of 1906 a weight-judging competition was held at a livestock show in Plymouth, England: how much would an ox weigh once slaughtered and dressed? Entrants bought a ticket and wrote down their estimate. Francis Galton obtained the tickets afterwards and in March 1907 published a short note in Nature entitled “Vox populi”.
Evidence
Galton’s figures and their correction. After discarding 13 illegible tickets, Galton analysed 787 estimates. He reported the median: 1,207 lb, against an actual weight of 1,198 lb, an error of under 1 % (Galton 1907b). Replying to a reader’s letter, he then reported the mean of all the estimates as 1,197 lb (Galton 1907a). More than a century later Wallis re-examined Galton’s surviving papers and found that the median should have been 1,208 lb (the draft had 1,208; the published note mistakenly gave 1,207), and that the actual weight given in the organiser’s letter converts to 1,197 lb, not 1,198 lb. So the correct statement is that the median was out by 11 lb (about 0.9 %) and the mean was exactly the actual weight (Wallis 2014).
Surowiecki’s The Wisdom of Crowds opens with this story and summarises the conditions for accurate group judgement in four points: diversity of opinion, independence, decentralisation (each person drawing on local knowledge) and a suitable way of aggregating (Surowiecki 2004). Of these, statistics can say most about the first two.
The diversity prediction theorem
The political scientist Scott Page calls a simple algebraic identity the diversity prediction theorem (Page 2007). Let people’s estimates of a true value be and the crowd mean . Then
Calculation
Derivation. Write as , square and average: . In the last term ; rearranging gives the result. It is an identity that holds for any numbers.
The program generates 787 simulated estimates (not Galton’s data), each equal to the true weight of 1,197 lb plus an error shared by everyone plus an individual error (standard deviation 75 lb), and then tests the identity on 10,000 random sets of numbers.
Calculation
# Diversity prediction theorem: crowd error = average individual error - diversity. 787
# simulated guesses (not Galton's data): truth 1,197 lb + shared error + private N(0,
# 75).
import random
rng = random.Random(1907)
def parts(s, theta):
n = len(s)
c = sum(s) / n
crowd = (c - theta) ** 2
avg = sum((x - theta) ** 2 for x in s) / n
div = sum((x - c) ** 2 for x in s) / n
return c, crowd, avg, div
if __name__ == "__main__":
theta = 1197
for shared in (0, 30):
s = [theta + shared + rng.gauss(0, 75) for _ in range(787)]
c, crowd, avg, div = parts(s, theta)
beat = sum((x - theta) ** 2 < crowd for x in s)
print(f"shared error {shared:+d} lb: crowd mean {c:.1f} lb;"
f" {beat} of 787 individuals closer than it")
print(f" crowd error {crowd:.2f} = average error {avg:.2f} - diversity {div:.2f}"
f" (difference {avg - div:.2f})")
worst = 0.0
for _ in range(10000):
n = rng.randint(2, 30)
s = [rng.uniform(-100, 100) for _ in range(n)]
_, crowd, avg, div = parts(s, rng.uniform(-50, 50))
worst = max(worst, abs(crowd - (avg - div)))
print(f"identity on 10,000 random sets of guesses: largest discrepancy {worst:.1e}")
# shared error +0 lb: crowd mean 1197.2 lb; 2 of 787 individuals closer than it
# crowd error 0.04 = average error 5706.59 - diversity 5706.54 (difference 0.04)
# shared error +30 lb: crowd mean 1230.4 lb; 244 of 787 individuals closer than it
# crowd error 1113.20 = average error 7159.50 - diversity 6046.30 (difference 1113.20)
# identity on 10,000 random sets of guesses: largest discrepancy 3.6e-12With no shared error, the crowd mean is 1,197.2 lb, the crowd error only 0.04 (square pounds), and only 2 of the 787 individuals are closer to the truth than the crowd mean. When everyone is misled by the same +30 lb, the crowd mean becomes 1,230.4 lb and the crowd error rises to 1,113.20; now 244 individuals beat the crowd. In both cases the identity holds exactly; across 10,000 random sets of numbers the largest discrepancy is , rounding error.
The theorem is often cited as evidence that “diversity trumps ability”, which calls for caution: it is an identity, not an empirical finding; it guarantees that the crowd’s error is never larger than the average individual error, but says nothing about when the crowd beats the best individual, and “diversity” is merely the spread of estimates, which may reflect different information or mere noise. Hong and Page reported simulations in which, in a certain problem-solving model, randomly chosen diverse teams beat teams of the “most able” (Hong and Page 2004); Thompson criticised the conclusion as depending on particular features of the model and not supporting general claims about real groups (Thompson 2014). This book uses only the identity itself and the simulations below under explicit assumptions.
Why extremise after averaging?
Chapter 1 mentioned that the best aggregation algorithms in the forecasting tournaments “extremise” the averaged probabilities. This seems to contradict Chapter 2: should we not avoid overconfidence?
Evidence
Two reasons. Baron, Mellers, Tetlock, Stone and Ungar point out that the simple average of many people’s probabilities tends to sit too close to 50 %, and that pushing it towards 0 or 1 matches outcomes better. There are two reasons. First, probabilities are “compressed” near 0 and 1, so random error pulls the mean towards the middle; this does not affect the median, and arguably not the mean of the log-odds. Second, each forecaster rightly allows for the incompleteness of his own information, but together the crowd holds more information than any one member; simple averaging (including the median and the mean of log-odds) does not add up this dispersed information (Baron et al. 2014).
Calculation
A model of the second reason. The event has a prior of 50 %; each clue follows if the event will happen and otherwise, so each clue adds its own value to the log-odds. All 10 forecasters see the same public clue, and each has one private clue; each reports the correct Bayesian probability given what he saw, so each is individually well calibrated. Compared are: a single forecaster, the mean of probabilities, the mean of log-odds, the mean of log-odds multiplied by a factor (fitted on 20,000 training questions, scored on 20,000 new ones), and an ideal Bayesian who sees all 11 clues.
Calculation
# Shared information and extremising (Baron et al. 2014). Clues ~ N(+-0.5, 1); 10
# forecasters share one public clue and each has one private clue; each reports a
# correct Bayesian probability. Factor a fitted on 20,000 training questions, scored on
# 20,000 new ones.
import math, random
rng = random.Random(2014)
K, MU = 10, 0.5
def inv(z):
return 1 / (1 + math.exp(-z))
def questions(n):
out = []
for _ in range(n):
y = 1 if rng.random() < 0.5 else 0
m = MU if y else -MU
pub = rng.gauss(m, 1)
priv = [rng.gauss(m, 1) for _ in range(K)]
logits = [2 * MU * (pub + x) for x in priv] # each forecaster's posterior
ideal = 2 * MU * (pub + sum(priv))
out.append((y, logits, ideal))
return out
def brier(pairs):
return sum((p - y) ** 2 for p, y in pairs) / len(pairs)
def score(qs, a):
return brier([(inv(a * sum(l) / K), y) for y, l, _ in qs])
if __name__ == "__main__":
train, test = questions(20000), questions(20000)
a_best = min((i / 20 for i in range(20, 161)), key=lambda a: score(train, a))
print(f"extremising factor fitted on training questions: a = {a_best:.2f}")
rows = [("a single forecaster", brier([(inv(l[0]), y) for y, l, _ in test])),
("mean of probabilities",
brier([(sum(inv(z) for z in l) / K, y) for y, l, _ in test])),
("mean of log-odds", score(test, 1.0)),
(f"extremised, a = {a_best:.2f}", score(test, a_best)),
("ideal: all 11 clues pooled", brier([(inv(z), y) for y, _, z in test]))]
for name, b in rows:
print(f" {name:28s} Brier {b:.4f}")
print("mean log-odds = public + (1/10) x sum of private clues; ideal counts each once")
# extremising factor fitted on training questions: a = 1.75
# a single forecaster Brier 0.1617
# mean of probabilities Brier 0.1354
# mean of log-odds Brier 0.1290
# extremised, a = 1.75 Brier 0.1187
# ideal: all 11 clues pooled Brier 0.0366
# mean log-odds = public + (1/10) x sum of private clues; ideal counts each onceA single forecaster’s Brier score is 0.1617; the mean of probabilities gives 0.1354, the mean of log-odds 0.1290; the fitted factor is , and extremising brings the score down to 0.1187. But the ideal Bayesian scores 0.0366, far better than any aggregate. The reason is in the last line: the mean of log-odds counts the public clue once and each of the 10 private clues only one tenth of a time, whereas the ideal counts every clue once. A single extremising factor cannot separate public from private information, so it can only partly make up the difference. This also shows that how far to extremise depends on how much information forecasters share: the more they share, the less one should extremise.
Chapter summary
The crowd median Galton reported in 1907 was 1,207 lb (it should have been 1,208); the mean of 1,197 lb came later and exactly equals the corrected actual weight. The diversity prediction theorem is an identity: crowd error equals average individual error minus diversity; it guarantees that the crowd is no worse than the average individual, not that it beats the best one. With correlated errors, averaging removes only the uncorrelated part; once the correlation exceeds the expert’s relative error, no number of people beats the expert. Social influence reduces diversity and raises confidence without improving accuracy. Moderately extremising the average of many probabilities can improve scores, because each person has only part of the information; how far to go depends on how much is shared. The next chapter reads this modern research beside the “temple calculation” of the Chinese military classics.
References
Fan, Y. (2026). Probabilistic Judgement, Brier-Score Calibration and the Statistics of Collective Intelligence: From Base-Rate Neglect and Signal Detection Theory to Superforecasting, Read Beside Classical Chinese Strategic Calculation [概率判断、布莱尔分数校准与群体智慧的统计理论] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23764998 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).