Brier评分:如何评估概率预测
了解Brier评分如何用均方误差评估一组概率预测,掌握计算公式、分数高低含义,以及为何总报50%会得到0.25。
Brier评分用于将概率预测与实际结果进行比较。计算方法是:用您给出的概率减去结果值(事件发生时为1,未发生时为0),将差值平方,再对您作出的所有预测取平均值。评分越低越好:0表示完美预测;如果对所有事件都预测“50%”,得分就是0.25。
什么是Brier评分?
预测是对概率的判断,单个概率本身永远无法判定为正确或错误。您认为某件事发生的概率是30%,结果确实发生了。您错了吗?还不能这样说。Glenn Brier在1950年为天气预报员撰文时,采取了一种不同的方法:不评判任何单次预测,而是一次性评估整组预测记录。
下面是一组虚构的十次预测记录。这些数字都不是来自市场,仅用于展示计算过程。
- 给出90%,事件发生。平方误差为0.01。
- 给出80%,事件发生。平方误差为0.04。
- 给出70%,事件未发生。平方误差为0.49。
- 给出60%,事件发生。平方误差为0.16。
- 给出50%,事件未发生。平方误差为0.25。
- 给出40%,事件未发生。平方误差为0.16。
- 给出30%,事件发生。平方误差为0.49。
- 给出20%,事件未发生。平方误差为0.04。
- 给出10%,事件未发生。平方误差为0.01。
- 给出95%,事件发生。平方误差为0.0025。
十个平方误差相加为1.6525。除以十后,Brier评分为0.165。完整计算就是这样。任何Mac或Linux机器自带的python3都可以运行这段计算。无需安装任何程序,也无需使用库。
rows = [(0.90, 1), (0.80, 1), (0.70, 0), (0.60, 1), (0.50, 0), (0.40, 0), (0.30, 1), (0.20, 0), (0.10, 0), (0.95, 1)]brier = sum((p - o) * (p - o) for p, o in rows) / len(rows)flat = sum((0.5 - o) * (0.5 - o) for _, o in rows) / len(rows)print(round(brier, 3), round(flat, 3))成交记录0.165 0.25
为什么 0.25 是需要超越的基准
对所有问题都给出 50% 的概率预测,每次平方误差都是 0.25,无论实际结果如何。这个固定的 0.25 是任何一组“是”或“否”问题的无信息基准。技能评分将其汇总为一个数值:1 减去你的得分除以基准得分。虚构日志中的 0.165 换算后,技能评分为 0.34。
有一个注意事项可以避免许多错误的评分。如果你评估的事件只会在 10% 的情况下发生,那么每次都给出固定的 10% 预测,即使完全不了解具体问题,也能得到 0.09 的得分。在一组结果分布不均衡的问题中,低于 0.25 的得分并不能证明具备预测能力。合理的基准应是你实际回答的问题的基础发生率。
校准度与置信度会一并计分
校准度是指:在所有您判断为70%概率的事件中,实际发生的比例接近70%。统计学家所说的分辨率,也就是置信度,指的是在获得信息后,您愿意在多大程度上偏离基准概率。对每个问题都回答50%的预测者,校准度完美,但完全没有用;Brier评分会同时衡量这两个特性:校准失误会推高评分,而有效的置信度会降低评分。
按所报概率对虚构的日志进行分组,可以看出校准检查的形式。在 Python 中,每个分组占一行,hits = [o for p, o in rows if p >= 0.8],然后计算 hits 的平均值。
- 报告概率为10%至30%,平均值为20%:3次中有1次发生,占33%。
- 报告概率为40%至50%,平均值为45%:2次中没有发生,占0%。
- 报告概率为60%至70%,平均值为65%:2次中有1次发生,占50%。
- 报告概率为80%至95%,平均值为88%:3次中有3次发生,占100%。
10个预测远远不足以从这些分组中得出任何结论。每个分组需要数百个已经揭晓结果的问题,才能评估校准度。本页其余部分使用的是一份包含数百万个预测的日志。
市场为自己的预测打分
每份上市期权都带有一个类似明确概率的数字。Delta衡量标的股票价格变动一美元时,期权价格的变动幅度。对于到期时要么价内(到期时具有价值)、要么一文不值的合约,Delta的绝对值通常接近市场隐含的价内概率。它来自决定AAPL隐含波动率的同一波动率曲面。每份合约都会到期,因此每个预测最终都会接受检验。
下图统计了从2025年1月至2026年5月、在距到期日大约一个月时观察到的所有SPY期权。图中按标示的Delta分组,并统计合约最终价内的频率。
每个数字背后的完整 SQL
WITH settle AS
(
SELECT
date AS settle_date,
any(toFloat64(underlying_close)) AS settle_px
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= '2025-01-01'
AND date < '2026-08-01'
GROUP BY date
),
scored AS
(
SELECT
toUInt8(floor(abs(toFloat64(g.delta)) * 10)) AS bucket,
abs(toFloat64(g.delta)) AS stated,
startsWith(lower(toString(g.option_type)), 'c') AS is_call,
if(is_call,
s.settle_px > toFloat64(g.strike_price),
s.settle_px < toFloat64(g.strike_price)) AS finished_itm
FROM global_markets.options_greeks AS g
INNER JOIN settle AS s ON s.settle_date = g.expiration_date
WHERE g.underlying_symbol = 'SPY'
AND g.date >= '2025-01-01'
AND g.date < '2026-06-01'
AND g.expiration_date <= '2026-07-31'
AND g.days_to_expiry BETWEEN 28 AND 35
AND g.iv_converged = 1
AND g.volume > 0
AND abs(g.delta) > 0.02
AND abs(g.delta) < 0.98
)
SELECT
concat(toString(bucket * 10), ' to ', toString(bucket * 10 + 10), '%') AS stated_bucket,
round(avg(stated) * 100, 1) AS stated_pct,
round(avg(finished_itm) * 100, 1) AS finished_itm_pct,
count() AS sample_size
FROM scored
GROUP BY bucket
ORDER BY bucket将两条序列相互对照。在最低分组中,市场给出的平均概率为5.2%,这些合约最终价内的比例为3.7%。在最高分组中,标示概率为94%,最终价内的比例为96.5%。在全部10个分组中,实际频率都与标示概率大致处于同一区间。这正是校准表的作用:它逐组揭示预测值与实际结果之间的差距,而不是将差距隐藏在单一平均值中。
市场能跑赢五成概率吗?
现在看分数本身。计算方法相同。我们选取几家家喻户晓的公司,并将每家公司的 Brier 分数与在完全相同合约上计算出的平坦 50%基线并列展示。
每个数字背后的完整 SQL
WITH settle AS
(
SELECT
underlying_symbol AS sym,
date AS settle_date,
any(toFloat64(underlying_close)) AS settle_px
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'TSLA')
AND date >= '2025-01-01'
AND date < '2026-08-01'
GROUP BY sym, settle_date
),
scored AS
(
SELECT
g.underlying_symbol AS symbol,
abs(toFloat64(g.delta)) AS stated,
startsWith(lower(toString(g.option_type)), 'c') AS is_call,
if(is_call,
s.settle_px > toFloat64(g.strike_price),
s.settle_px < toFloat64(g.strike_price)) AS finished_itm
FROM global_markets.options_greeks AS g
INNER JOIN settle AS s
ON s.sym = g.underlying_symbol AND s.settle_date = g.expiration_date
WHERE g.underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'TSLA')
AND g.date >= '2025-01-01'
AND g.date < '2026-06-01'
AND g.expiration_date <= '2026-07-31'
AND g.days_to_expiry BETWEEN 28 AND 35
AND g.iv_converged = 1
AND g.volume > 0
AND abs(g.delta) > 0.02
AND abs(g.delta) < 0.98
)
SELECT
symbol,
round(avg((stated - finished_itm) * (stated - finished_itm)), 4) AS market_brier,
round(avg((0.5 - finished_itm) * (0.5 - finished_itm)), 4) AS coin_flip_brier,
formatReadableQuantity(count()) AS graded_contracts
FROM scored
GROUP BY symbol
ORDER BY market_brier在 28.54 thousand份已结算合约中,NVDA的得分为 0.1122;在相同合约集合上,平坦基线的得分为 0.25。表现最弱的 6家公司是 SPY,其得分仍达到 0.1375。期权在这里并没有什么神奇之处。深度虚值合约的 Delta 接近 0.02,而且大多到期归零。预测这类结果并不难,因此这种容易程度已经反映在分数中。这也是单独引用 Brier 分数几乎无法说明问题的主要原因。
同一位预测者在不同问题上的得分并不相同
将完全相同的方法按问题距离结算的时间长短进行拆分,得分会随之波动。
每个数字背后的完整 SQL
WITH settle AS
(
SELECT
date AS settle_date,
any(toFloat64(underlying_close)) AS settle_px
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= '2025-01-01'
AND date < '2026-08-01'
GROUP BY date
),
scored AS
(
SELECT
multiIf(g.days_to_expiry <= 7, 1,
g.days_to_expiry <= 14, 2,
g.days_to_expiry <= 30, 3,
g.days_to_expiry <= 60, 4,
g.days_to_expiry <= 120, 5,
6) AS horizon_rank,
abs(toFloat64(g.delta)) AS stated,
startsWith(lower(toString(g.option_type)), 'c') AS is_call,
if(is_call,
s.settle_px > toFloat64(g.strike_price),
s.settle_px < toFloat64(g.strike_price)) AS finished_itm
FROM global_markets.options_greeks AS g
INNER JOIN settle AS s ON s.settle_date = g.expiration_date
WHERE g.underlying_symbol = 'SPY'
AND g.date >= '2025-01-01'
AND g.date < '2026-06-01'
AND g.expiration_date <= '2026-07-31'
AND g.days_to_expiry BETWEEN 1 AND 250
AND g.iv_converged = 1
AND g.volume > 0
AND abs(g.delta) > 0.02
AND abs(g.delta) < 0.98
)
SELECT
multiIf(horizon_rank = 1, '1 to 7 days',
horizon_rank = 2, '8 to 14 days',
horizon_rank = 3, '15 to 30 days',
horizon_rank = 4, '31 to 60 days',
horizon_rank = 5, '61 to 120 days',
'121 to 250 days') AS horizon,
round(avg((stated - finished_itm) * (stated - finished_itm)), 4) AS market_brier,
round(avg((0.5 - finished_itm) * (0.5 - finished_itm)), 4) AS coin_flip_brier,
count() AS sample_size
FROM scored
GROUP BY horizon_rank
ORDER BY horizon_rank对于剩余期限为1 to 7 days的合约,市场的δ得分为0.1084;对于剩余期限为121 to 250 days的合约,得分为0.1218。预测者相同,方法相同,但问题集合不同。第一行的固定50%基准为0.25,最后一行则为0.25。因此,它是所有期限中唯一固定的参照。比较两位预测者时,必须使用相同时间窗口内的相同问题,否则比较的将是问题难度,而不是预测能力。
为什么适当评分规则很重要
平均绝对误差是概率预测值与实际结果之间绝对差值的平均值。它听起来像一种合理的替代指标,但会产生错误激励。假设您确实认为某事件发生的概率为70%。报告70%时,预期绝对误差为0.7 x 0.3 + 0.3 x 0.7 = 0.42。改报100%后,误差降至0.7 x 0 + 0.3 x 1 = 0.30。在绝对误差指标下,诚实报告反而代价更高。一个奖励过度表达信心的指标,衡量的就不是预测能力。
Brier评分不存在这一问题。您认为概率为70%,并报告70%时,预期得分为0.7 x 0.09 + 0.3 x 0.49 = 0.21。报告100%时,得分升至0.30。报告60%时,得分升至0.22。最低分恰好出现在您主观相信的概率值上。具备这一性质的规则称为适当评分规则。这也是Brier评分成为预测竞赛默认指标的原因。
对数评分是另一种常见的适当评分规则:取您为实际发生结果赋予的概率的自然对数,然后取反。对一个最终发生的事件报告1%,代价为4.6;报告0%则代价为无穷大。在这组虚构的十个预测中,对数评分为0.483,而固定基准为0.693。Brier评分始终介于0和1之间,更适合作为评分表中的分数。对数评分没有上限,更适合用于尾部风险影响较大的评分场景。
这对事件合约意味着什么
如果某件事发生则支付1美元、否则支付0美元的事件合约,其交易价格已经包含了概率信息。价格为六十二美分,就代表百分之六十二的预测概率,但这里尚未扣除买卖价差和费用。我们的将事件合约价格转换为概率指南介绍了这种换算;事件合约如何结算则说明合约条款中的“事件发生”具体意味着什么。
该价格是一项有公开历史记录和明确结算日期的预测。因此,它是您自己的交易记录必须超越的基准。在相同时间窗口内,针对相同问题评估您的预测。如果交易者在这组问题上的布里尔分数高于该价格对应的分数,就没有证据表明其在这组问题上具备可量化的优势,无论交易背后的叙事多么有说服力。将投注赔率中剔除庄家优势后,同样的检验也适用于体育赔率;在利率市场中,美联储利率赔率则会为一个有明确决议日期的问题提供带日期的概率。
:::details这些面板如何评估市场
Delta数据来自每份合约的每日期权希腊值记录。只有在观测日有成交量且波动率求解结果收敛的合约才会纳入统计。结果取自合约到期日标的资产的收盘价:当收盘价高于行权价时,看涨期权被视为价内;当收盘价低于行权价时,看跌期权被视为价内。实际结算会在收盘后通过行权决定完成,因此,若合约价格在行权价附近、差距仅为几美分,实际结算结果可能与这一简化方法不同。面板中的所有合约都已到期。较长期限分组必然会使用时间窗口内更早的观测日期。如果股票拆分发生在观测日与到期日之间,行权价和结算价格就会处于不同的价格尺度。这也是每个分组都列出样本数量的另一个原因。
Delta近似的是风险中性概率,而不是现实世界概率。两者的差异来自期权价格中包含的风险溢价。校准表正是用来衡量这一差异,而不是假定差异不存在。
:::
常见问题
Brier分数越低越好吗?
是的。Brier分数用于衡量误差,因此0代表完美预测,1代表最差结果,即对所有最终未发生的事件都给出100%的概率。低于0.25的分数,优于对每个问题都回答50%所得到的分数。
怎样的Brier分数算好?
没有普遍适用的标准,因为分数取决于问题的难度。天气预报员对明天下雨的预测分数为0.10,政治预测员对势均力敌选举的预测分数为0.18,二者不能直接比较。只有在回答相同问题、覆盖相同时间窗口时,才能比较不同预测员的分数。
Brier分数为0.25意味着什么?
这相当于预测员对所有问题都给出50%的概率,因为无论结果如何,每次预测误差的平方都是0.25。对于一组“是或否”问题,0.25是没有信息时的标准基准。不过,如果问题的结果分布明显偏向一方,则应使用基础发生率作为基准。
Brier分数与对数分数有何不同?
二者都是严格评分规则。这意味着,当你给出自己实际相信的概率时,评分最优。Brier分数会将误差平方,取值范围为0至1。对数分数对高置信度但错误的预测惩罚更重;如果对最终发生的事件给出0%,代价将是无穷大。
期权delta可以解读为概率吗?
delta的绝对值接近市场隐含的期权到期时价内概率,而且这是风险中性概率,不是现实世界概率。上方各面板将delta作为预测进行评分:一条轴显示给出的delta,另一条轴显示这些合约实际到期时处于价内的比例。
这里的每个面板下方都附有完整且准确的SQL,因此评分过程可以逐行审计。如果您想用同一组问题,将自己的预测记录与市场预测进行评分,请在Strasmore终端用通俗英语索取相关数字。