A probabilistic forecast must be scored by a rule that rewards honesty. Under an improper rule a forecaster does better by reporting something other than their belief, and the scores become useless for judging skill. The Brier and log scores are the two rules every forecaster should know; the Murphy decomposition separates "are your 70%s right 70% of the time" (calibration) from "do your forecasts discriminate" (resolution).
A binary event Y∈{0,1}; a forecast p∈[0,1]; a scoring rule S(p,y), here a loss (lower is better). If the forecaster's true belief is q=Pr(Y=1), the expected score of reporting p is
Sˉ(p;q)=qS(p,1)+(1−q)S(p,0).(13.31)
S is proper if Sˉ(q;q)≤Sˉ(p;q) for all p,q, and strictly proper if equality implies p=q (Gneiting and Raftery 2007).
The Brier score (Brier 1950) over N forecasts and the log score are
BS=N1i=1∑N(pi−yi)2,(13.32)
LS=−N1i=1∑N[yilnpi+(1−yi)ln(1−pi)].(13.33)
Proposition 13.18Brier is strictly proper
SˉB(p;q)=q(1−p)2+(1−q)p2=(p−q)2+q(1−q).(13.34)
Proof
Expand: q(1−2p+p2)+(1−q)p2=q−2pq+p2=(p−q)2+q−q2. The second term does not depend on p, and the first is uniquely minimised at p=q.∎
Proposition 13.19log score is strictly proper
SˉL(p;q)=H(q)+DKL(q∥p),(13.35)
where H(q)=−qlnq−(1−q)ln(1−q) and DKL(q∥p)=qln(q/p)+(1−q)ln((1−q)/(1−p))≥0 with equality iff p=q.
Proof
−qlnp−(1−q)ln(1−p)=[−qlnq−(1−q)ln(1−q)]+[qln(q/p)+(1−q)ln((1−q)/(1−p))], which is (13.35). Gibbs' inequality: since ln is strictly concave, Jensen gives −DKL(q∥p)=∑yqyln(py/qy)≤ln∑yqy(py/qy)=ln1=0, with equality iff py/qy is constant, i.e. p=q.∎
Counter-example (an improper rule) The absolute error ∣p−y∣ has expected value q(1−p)+(1−q)p=q+p(1−2q), which is linear in p. For q>1/2 it is minimised at p=1, for q<1/2 at p=0. A forecaster scored by absolute error should report only 0 or 1, destroying all probabilistic information. The test test_strict_propriety_on_a_grid checks all three behaviours numerically.
The two proper rules differ in their tails. Brier is bounded: the worst possible single score is 1. The log score is unbounded: a forecast of p=0 for an event that happens scores +∞. That is a feature. It encodes the view that certainty about an uncertain event is an unbounded error, and it is why the 100% forecast in case study 13.9.1 is indefensible regardless of how the rest of a track record looks.
Calibration, resolution and the Murphy decomposition#
A forecaster is calibrated if Pr(Y=1∣p=f)=f for every forecast value f they use. Calibration alone is cheap: always forecasting the base rate yˉ is perfectly calibrated and useless. The other ingredient is resolution: how much the outcome frequency varies across the forecaster's categories.
Group forecasts into K bins with nk forecasts each, all equal to fk within bin k. Let yˉk be the observed frequency in bin k and yˉ the overall frequency.
Within bin k, add and subtract yˉk:
∑i∈k(fk−yi)2=nk(fk−yˉk)2+2(fk−yˉk)∑i∈k(yˉk−yi)+∑i∈k(yi−yˉk)2.
The middle sum is zero by definition of yˉk. Because yi∈{0,1}, yi2=yi and ∑i∈k(yi−yˉk)2=nkyˉk−nkyˉk2=nkyˉk(1−yˉk). So
BS=N1k∑nk(fk−yˉk)2+N1k∑nkyˉk(1−yˉk).
For the second term, use ∑knkyˉk=Nyˉ and ∑knkyˉk2=∑knk(yˉk−yˉ)2+Nyˉ2 (the cross term 2yˉ∑knk(yˉk−yˉ) vanishes). Then N1∑knkyˉk(1−yˉk)=yˉ−N1∑knk(yˉk−yˉ)2−yˉ2=UNC−RES.∎
Uncertainty depends only on the events, not the forecaster. A good forecaster has small REL and large RES. If forecasts within a bin are not all equal (equal-width bins on continuous forecasts), two extra within-bin terms appear and (13.36) holds only approximately; the code's bins=None option bins by distinct forecast value so the identity is exact.
The Brier skill score against a reference forecast is BSS=1−BS/BSref. Use two references: the coin flip (0.5, BS=0.25) and climatology (the base rate, BS=yˉ(1−yˉ)).
Forecasts p=(0.9,0.2,0.6,0.7,0.4), outcomes y=(1,0,1,1,0). Squared errors: 0.01,0.04,0.16,0.09,0.16; sum 0.46; BS=0.092. Log score: −51[ln0.9+ln0.8+ln0.6+ln0.7+ln0.6]=−51[−0.10536−0.22314−0.51083−0.35667−0.51083]=0.341366. Murphy with one bin per distinct forecast: each bin has one forecast and yˉk∈{0,1}, so REL = BS = 0.092, RES = 51∑(yˉk−0.6)2=51(3×0.16+2×0.36)=0.24, UNC = 0.6×0.4=0.24. Check: 0.092−0.24+0.24=0.092. With one forecast per bin, resolution equals uncertainty mechanically and reliability carries the whole score. The decomposition only becomes informative with many forecasts per bin, which is why the forecast journal (13.8) uses coarse probability levels.
Ten weekly questions answered with probabilities from a five-level scale:
p
0.6
0.7
0.3
0.6
0.8
0.3
0.7
0.6
0.3
0.8
y
1
1
0
0
1
0
1
1
1
1
BS=0.161, LS=0.501. Base rate yˉ=0.7, UNC =0.21. Bins: f=0.3 (n=3, yˉ=1/3), f=0.6 (n=3, yˉ=2/3), f=0.7 (n=2, yˉ=1), f=0.8 (n=2, yˉ=1). REL =101[3(0.0333)2+3(0.0667)2+2(0.3)2+2(0.2)2]=0.0277. RES =101[3(0.3667)2+3(0.0333)2+2(0.3)2+2(0.3)2]=0.0767. Check: 0.0277−0.0767+0.21=0.161. Skill: BSS=0.356 against a coin flip and 0.233 against climatology. The diagnosis: the 0.7 and 0.8 forecasts were underconfident (all happened). Ten forecasts are, of course, far too few to conclude anything (13.8).
Practitioner notes
Report both scores. Brier is easier to explain and robust to a single extreme miss; log score is the one tied to wealth growth (a Kelly bettor's log-wealth growth against a market is a log-score difference, M03) and punishes overconfidence harshly.
Never forecast exactly 0 or 1 on a question that is not already resolved. Use 0.01–0.02 and 0.98–0.99 for "almost certain".
Option prices imply risk-neutral probabilities (M08: PrQ(ST>K)=−erτ∂C/∂K, the strike slope of the call price grossed up by the discount factor). Scoring them as real-world forecasts mixes in risk premia; risk-neutral probabilities of large falls are systematically higher than realised frequencies.