⚽ 2026世界杯倒计时!免费订阅赛程更新 — 北京时间对照表 & 夺冠概率每月更新 →
FYT体育.主站
2026世界杯模型 v1.2 升级日志:小组赛蒙特卡洛 + 数据洗牌

2026世界杯模型 v1.2 升级日志:小组赛蒙特卡洛 + 数据洗牌

目录

模型不是一次性产物。每一次资格赛结束、每一次回测、每一次架构反思,都是改进的契机。

今天我们发布 FYT 2026世界杯夺冠概率模型 v1.2——距离上一版 v1.0 三个月。这是一次结构性升级,但与你可能在某些早期草稿中看到的方向不同:我们没有去重构权重、没有引入温度缩放、没有拍脑袋加主办国系数。

我们做的是两件更基础的事:

  1. 修复了数据——资格赛已经结束三周,输入文件还停留在 2 月。意大利已经没戏了,凭什么还在概率表里占位
  2. 新增了赛制感知——v1.0 给出的是 48 队夺冠概率排名,但读者真正想问的是「我支持的球队能不能小组出线」。v1.2 直接回答这个问题

下面把每处改动、为什么改、回测验证逐一说清。

改动一览

项目v1.0(2026-02-19)v1.2(2026-05-17)
评分公式五因子加权 Power Score不变
因子权重Elo 30 / xG 25 / xGA 20 / 经验 15 / 年龄 10不变
输入球队48 支(含 9 支 projected)48 支(全部 qualified)
Elo 数据2026-02-06 截止2026-05-17 全量刷新
小组赛模拟✅ 新增:Elo 驱动蒙特卡洛 10,000 次
晋级概率输出✅ 新增:p_group_winner / p_advance_ko 等
历史回测✅ 新增:2022 小组赛 Brier 0.185
夺冠概率分布顶级 ~3.3%(平坦)仍 ~3%(待 v1.3 淘汰赛模拟重写)

改动一:输入数据按资格赛结果洗牌

v1.0 的 team-inputs.yaml 写于 2 月,当时 11 支球队是 projected(基于积分榜估算)。4 月资格赛全部结束,结果与估算有出入。

11 支球队被移除

球队状态
🇮🇹 意大利欧洲附加赛连续两届出局
🇩🇰 丹麦欧预赛附加赛失利
🇷🇸 塞尔维亚欧预赛附加赛失利
🇵🇱 波兰欧预赛小组失利
🇺🇦 乌克兰欧预赛附加赛失利
🏴󠁧󠁢󠁷󠁬󠁳󠁿 威尔士欧预赛附加赛失利
🇨🇲 喀麦隆非洲附加赛失利
🇳🇬 尼日利亚非洲预赛
🇯🇲 牙买加中北美预赛
🇨🇷 哥斯达黎加中北美预赛
🇭🇳 洪都拉斯洲际附加赛失利

11 支新球队入正赛

球队来路Elo
🏴󠁧󠁢󠁳󠁣󠁴󠁿 苏格兰欧预赛1878
🇸🇪 瑞典欧预赛附加赛1719
🇨🇿 捷克欧预赛附加赛1726
🇧🇦 波黑欧预赛附加赛1594
🇵🇦 巴拿马中北美预赛1737
🇭🇹 海地中北美预赛1532
🇨🇼 库拉索中北美预赛(首次参赛1436
🇯🇴 约旦亚洲预赛(首次参赛1690
🇬🇭 加纳非洲预赛1505
🇨🇻 佛得角非洲预赛(首次参赛1549
🇨🇩 民主刚果非洲预赛1655

库拉索、约旦、佛得角三队首次踏上世界杯,本身就是这届赛事的故事线。

48 支球队的 Elo 同步从 eloratings.net 全量刷新,例如:

  • 西班牙从 2010 → 2165(卫冕欧洲杯后强势)
  • 厄瓜多尔从 1810 → 1933(南美预赛超水准发挥)
  • 哥伦比亚从 1870 → 1975
  • 德国从 1960 → 1923(持续阵痛)
  • 卡塔尔从 1640 → 1425(赛事后大幅滑落)

11 支新球队的 xG/世界杯经验/阵容年龄字段是基于 Elo 区间与赛史的首轮估算,在 confidence_note 中显式标记。下一周期 cron 跑之前会刷到 FBref 与 Transfermarkt 的最新数据。

改动二:新增 Elo 驱动的小组赛蒙特卡洛

这是 v1.2 的真正升级——模型现在能告诉你「谁能小组出线」,而不只是「谁更强」。

为什么需要这一层

v1.0 输出 48 队夺冠概率排名,最强队(西班牙、阿根廷)也只占约 3%。这个数字在数学上不错(48 队和为 100%),但在沟通上没意义——读者想知道的是:

  • 我支持的球队能不能小组出线?
  • A 组哪两队最可能晋级?
  • 巴西在 C 组的难度有多大?

这些问题需要赛制结构。v1.2 的答案是直接模拟整个小组赛。

怎么模拟

对每场小组赛,根据双方 Elo 计算胜/平/负概率:

expected_a = 1 / (1 + 10^((Elo_b − Elo_a) / 400))   ← 经典 Elo 胜率预期
P(平) = max(0.05, 0.30 × exp(−|Elo_a − Elo_b| / 500))   ← 缝隙感知和率
P(A 胜) = expected_a × (1 − P(平))
P(B 胜) = (1 − expected_a) × (1 − P(平))

关键点是缝隙感知和率

  • 实力相近时(Elo 差 < 100),和率约 30%
  • 实力差距 500 分以上,和率掉到 5% 下限

恒定使用 26% 历史均值会高估强弱悬殊比赛的平局率(西班牙踢库拉索几乎不会握手言和)。缝隙感知模型更贴近实际比赛分布。

之后独立采样比赛比分(净胜球以 Elo差/200 为均值的正态分布抽样后取整),用于积分差/进球数的并列规则。比分采样只为并列裁决服务,不作为预测每场具体比分发布

整轮模拟跑 10,000 次

for sim in range(10_000):
    模拟 72 场小组赛
    统计每队的积分、净胜球、进球数
    按 [积分 → 净胜球 → 进球数 → 抽签] 排出每小组的 1/2/3/4 位
    所有小组第三按同一规则跨组排序,取前 8 晋级 R32

汇总 10,000 次模拟,得到每队 9 个概率/期望值字段

10,000 次跑完只要约 1.4 秒,所以每周 cron 都能跑。

输出新增的 group_stage 字段

predictions.json 中每支球队的 group_stage 块:

{
  "p_group_winner": 0.82,
  "p_runner_up": 0.16,
  "p_third": 0.02,
  "p_fourth": 0.00,
  "p_advance_ko": 0.99,
  "p_eliminated": 0.01,
  "exp_points": 7.73,
  "exp_gd": 6.07,
  "exp_gf": 7.5
}

这一层有实质区分度。当前 2026 输入下的晋级概率分布:

区间球队数球队
95–100%5西班牙、阿根廷、英格兰、厄瓜多尔、瑞士
90–95%7法国、巴西、德国、荷兰、克罗地亚 等
60–90%14大量欧洲、南美中游球队
30–60%14亚非中游 + 部分欧洲附加赛球队
10–30%8弱组球队

不再是一片 3%。

历史回测:2022 世界杯小组赛

我们用 2022 世界杯小组赛(32 队 × 8 组 × 前 2 出线的旧赛制)做回测。Elo 用 2022 年 11 月赛前快照,小组组成、实际出线集都是公开历史数据。

详细报告:doc/wc-model-backtest-2022.md

头条指标

指标v1.2 小组赛模拟「Elo 排名硬选」基线「全部 50/50」基线
Brier 评分(晋级概率) ↓0.1850.3130.250
小组第一命中(8 组)6 / 8
前 16 晋级集(按概率排序)11 / 16

Brier 评分 = 平均(预测概率 − 实际 0/1)²,越小越好。v1.2 显著优于两个基线

校准曲线

如果模型说「X% 概率晋级」,那 X% 的同概率球队是否真的晋级?

预测晋级概率区间球队数实际晋级率
0.0–0.250%(0/5)✓
0.2–0.4650%(3/6)
0.4–0.6956%(5/9)
0.6–0.8743%(3/7)❗
0.8–1.05100%(5/5)✓

两端校准良好:高置信度晋级预测全部命中,低置信度淘汰预测全部命中。

中段(0.6–0.8)跑偏明显——因为 2022 这个区间里挤着比利时、德国、乌拉圭、丹麦、厄瓜多尔,5 支「按 Elo 该出线」的球队全部出局。这是历史性的爆冷年份:

球队预测晋级概率实际结果
乌拉圭68.0%出局
比利时66.7%出局(黄金一代谢幕)
德国66.2%出局(开局输给日本)
丹麦57.2%出局
厄瓜多尔62.2%出局(最后一战被塞内加尔逼出局)

Elo 类模型本身的天花板:赛前统计无法预测临场战术革命、王朝末路、心理崩盘。这不是 v1.2 的缺陷,是任何赛前模型的共有局限。

我们之所以仍然报告这一数据,是因为透明度比安慰更重要。如果你把模型用作「锁定大概率事件 + 警惕中段不确定性」的工具,它的价值很明确。

没改的部分 —— 以及为什么

评分公式(Power Score)不变

五因子加权评分照旧。没有移除任何因子,没有调整任何权重,没有加入主办国系数

为什么?因为我们没有找到充分理由。

「世界杯经验」「阵容年龄适配度」这些因子或许信号弱,但移除前应当先用数据说话——而不是听一句「学术文献认为信号弱」就动刀。我们手头目前没有时间做严格的因子归因实验,所以选择保守保留,先把更确定的事做完

主办国效应同样保留为后续工作。home_advantage 字段还在输入里(美/加/墨 = 0.8),但 v1.2 的小组赛模拟未读取它。等 v1.3 的淘汰赛模拟一起加入会更系统。

夺冠概率仍然「平坦」

win_probability_pct 字段还是 v1.0 的直接归一化:48 队 Power Score 之和除以 100%,所以最强队也只有约 3%。

这个数字不好看,但强行用数学手段(温度缩放、softmax 校准等)拉伸它是治标不治本

  • 真正的夺冠概率应该从「在 10,000 次完整赛制模拟中赢得冠军的频率」反推
  • 这需要先有淘汰赛模拟(v1.3 路线图)
  • 在没有赛制模拟的前提下,用一个温度参数 T 强行把最强队拉到 13% 只是数字游戏

所以 v1.2 的态度是:这一层不动,等 v1.3 真正修复

读者在 v1.3 落地前,建议把注意力放在新增的 group_stage.p_advance_ko 字段上,而不是夺冠概率字段。

v1.3 路线图

已知改进项:

  1. 淘汰赛蒙特卡洛模拟 — 从小组赛模拟结果派生 R32 对阵,模拟单场淘汰(含加时和点球大战),输出基于赛制的真正夺冠概率,替代 v1.0 的归一化字段
  2. 主办国效应应用 — 把 home_advantage 字段作为 Elo 加成施加到美/加/墨在本国场地的小组赛
  3. DB schema 扩展season_predictions 表新增 p_group_winner / p_advance_ko / exp_group_points 列,让小组赛模拟数据进入查询层
  4. 新球队输入精化 — 11 支新晋级球队的 xG / WC 经验 / 阵容年龄字段从首轮估算切到 FBref + Transfermarkt 实测数据

预计 6 月赛前完成 v1.3。

完整方法论

模型架构、评分公式、模拟流程、SHA-256 可复现机制、回测指标细节,请见 2026世界杯夺冠概率模型方法论 v1.2

当前模型输出请见 48队夺冠概率排名


免责声明:本文与模型输出仅供参考,不构成任何投注建议。 方法论透明度:所有改动、回测数据、源代码、计算结果均可复现。模型代码在 scripts/assets/wc-prediction-model.py,回测代码在 scripts/backtest/wc-model-backtest.py,每次运行的 source_snapshot 是 16 位 SHA-256 指纹。

FAQ

常见问题

Q01 v1.2 相比 v1.0 改了哪些地方?
两项核心改动。一,新增 Elo 驱动的小组赛蒙特卡洛模拟层,10,000 次模拟跑出每队小组第一、小组第二、晋级 R32 等概率。二,按资格赛实际结果更新输入数据:11 支未晋级球队(含意大利、丹麦、塞尔维亚、波兰)被移除,11 支新晋级球队(含瑞典、苏格兰、捷克、波黑、加纳)补入。五因子加权评分公式本身未变。
Q02 为什么夺冠概率仍然几乎是平的(最强队也只有 3%)?
这是 v1.0 的「直接归一化」遗留:48 队的 Power Score 之和除以 100% 必然让顶级球队只占 3% 左右。v1.2 没有用数学手段(如温度缩放)强行拉伸概率——因为正确的修复路径是引入赛制结构。v1.3 将通过淘汰赛蒙特卡洛重新派生夺冠概率(从「冠军频率」而非「实力归一化」反推),届时顶级球队会自然落到 10–15% 的合理区间。在 v1.3 之前,建议读者关注新增的「晋级 R32 概率」字段,那一层有实质区分度。
Q03 小组赛模拟的胜率公式是什么?
经典 Elo 胜率预期 + 缝隙感知和率。P(A 胜) = expected_a × (1 − P(平));P(平) = max(0.05, 0.30 × exp(−|Elo差| / 500))。意思是:实力相近时和率约 30%,差距 500 分以上掉到 5% 下限。比恒定 26% 历史均值更贴近实际分布——西班牙对库拉索几乎不会平局。
Q04 2022 历史回测结果如何?
在 2022 世界杯小组赛上回测(32 队 × 8 组 × 前 2 出线的旧赛制),v1.2 小组赛模拟达到 Brier 评分 0.185,明显优于「按 Elo 硬选前 16」基线的 0.313 与「全部 50/50」基线的 0.250。8 个小组第一中预测对 6 个;前 16 晋级集预测对 11 个。日本击败西班牙+德国、摩洛哥击败比利时等爆冷是任何赛前数据模型都难以预知的。
Q05 为什么不接入主办国效应?
home_advantage 字段保留在输入文件中(美/加/墨值为 0.8),但 v1.2 的小组赛模拟未读取该字段——这是有意的范围限定。v1.3 会把主办国效应作为 Elo 加成应用到三国在本土场地的小组赛,与淘汰赛模拟一起发布。
Q06 输入数据有什么变化?
2026-04 资格赛全部结束,输入数据按结果重写。Elo 全部从 eloratings.net 当前数据刷新。移除 11 支未晋级球队(意大利、丹麦、塞尔维亚、波兰、乌克兰、威尔士、喀麦隆、尼日利亚、牙买加、哥斯达黎加、洪都拉斯),补入 11 支新晋级球队(捷克、瑞典、苏格兰、波黑、巴拿马、海地、库拉索、约旦、加纳、佛得角、民主刚果)。新球队的 xG/经验/年龄数据为首轮估算(confidence_note 字段标识),下一周期 cron 前会刷新。
Q07 下一步还会改进什么?
三项已知改进。v1.3 引入淘汰赛蒙特卡洛模拟(从 R32 模拟到决赛,单场带加时 + 点球),用模拟结果替代当前的直接归一化夺冠概率;同时应用主办国效应。Postgres 写入扩展存储 p_group_winner / p_advance_ko 等新字段。新晋级 11 队的 xG / WC 经验 / 阵容年龄精化。
没找到答案?欢迎在订阅邮箱留言。 回到顶部 ↑

世界杯赛程 & 预测月报