all_lessons/冰球的逻辑/12第 13 课 / 共 16 课

第四部分 · 数据革命

期望进球 xG 与现代分析:冰球 xG 直接借自足球

上一课,Corsi 把「谁在压着谁打」这件事量出来了——它聪明地放弃了每场只有几个的稀有进球,改去数每场几十次的高频射门尝试,样本一下大了近二十倍。可我们在上一课的结尾,就已经把它的短板钉死在墙上了:Corsi 只会数「次数」,完全不看「质量」。一次门前无人盯防、几乎必进的空网机会,和一次蓝线外隔着三个人、几乎不可能进的乱射,在 Corsi 眼里是同一个「1」。这显然荒唐——这两脚对「进球」的贡献,一个八九成、一个百分之几,差了几十倍。所以数据革命的第二步,几乎是被 Corsi 这个短板逼着迈出来的:能不能给每一次射门,按它的位置、角度、类型,各算一个「进球概率」的带小数的分,把「射门质量」这一维也补上?能——这个分,就叫期望进球 xG。而最惊人的一点是:冰球用来算它的模型,几乎就是从足球那边直接借来的同一套。

本课路线
(1) 先把上一课的缺口收紧成一句话——Corsi 数次数、不看质量,逼出「给每脚射门定价」的需求;(2) 给出 xG 的定义:给每一次射门,按位置、角度、射门类型、是否补射 / 反击等,算一个 0~1 的进球概率(门前甜点 slot 高、外围小角度低)——它正好补上了 Corsi 缺的「质量」维;(3) 本课的重头戏、也是整个系列最直白的证据:冰球的 xG 和足球的 xG 几乎是同一个模型(明确交叉链接足球 xG),因为两者是「连续、低分、争空间」的双子;再把整条数据革命脊柱一次点全——足球 xG ↔ 篮球真实命中率 / 四要素 ↔ 棒球 wOBA ↔ 橄榄球 EPA ↔ 冰球 xG,全是同一个思想:给每个事件按它对得分的期望贡献定价;(4) xG 在冰球里怎么用——球员的 xG 贡献、门将的 GSAx(扑救超越期望,回扣第 09 课)、球队的 xG 差、高危射区地图;(5) 诚实:xG 是模型、有噪声与争议,冰球样本比足球还少、更需谨慎;(6) 亲手拖一个射门点,看 xG 随位置、角度、补射 / 反击实时变化。
数据小注
本课出现的 xG 具体数字(门前甜点近射 ≈ 0.20~0.35+、蓝线外围远射 ≈ 0.02~0.04、补射 / 反击的加成幅度等)都是数量级 / 示意值。真实的冰球 xG 由各家(MoneyPuck、Evolving-Hockey、Natural Stat Trick 等)用不同的特征集与不同赛季的历史数据训练,同一脚射门在不同模型里会差零点零几,请勿当成精确常数。注意一个真实的量级差异:冰球单脚射门的平均 xG(约 0.06~0.09)通常低于足球,因为冰球射门尝试极多、大量是低质量的外围出手——但这不影响两者用的是同一套建模思路。本课 widget 用的是一个刻意简化、但方向正确的几何模型(只看角度 + 距离 + 射门类型 + 补射 / 反击),用来建立直觉,不是任何一家的真实 xG。绝不编造精确统计。

一、缺口:Corsi 数得清次数,却看不见质量

先把上一课的结论收紧成一句话,因为这一课整个是被它逼出来的。Corsi 干了一件极漂亮的事:它绕开了稀有的进球,改数高频的射门尝试,于是「谁在压着谁打」这件事第一次被又快又稳地量了出来。但它为这份「高频、好数」付出了一个明确的代价——它把每一次射门尝试,都当成一个平等的「1」来数。

回想上一课那个刺眼的例子:一支球队疯狂在蓝线附近倒球、隔着人放冷枪,攒下一大堆低质量的射门尝试,Corsi% 很漂亮;可它们从不敢、也打不进那片门前最危险的甜点区(slot,第 07 课那片球门正前方的扇形)。另一支球队射门次数不多,但每一次都是精心打穿防线、送到门前的高质量机会。只看 Corsi,你会误判前者占优——因为 Corsi 数得清次数,却看不见质量

那缺的是什么?缺的是给「一次射门到底有多可能进」定一个价。Corsi 已经把「次数」这一维做到了极好(高频、稳定、代理领地);现在要补的,是「质量」这一维。而补法其实呼之欲出——你在第 09 课门将那一课,已经偷偷见过它一次了:我们说门将的 GSAx,是「把每一脚射门先按它的期望进球定价,看你比一个平均门将多救了几个」。那个「期望进球」,就是 xG。这一课,我们把它正式请出来,从进攻方的角度、从头把它讲清楚。

二、xG 的定义:给每一脚射门,按处境算一个进球概率

xG 的想法朴素得近乎笨:既然我不知道这一脚会不会进,那我就去翻历史上千千万万脚「长得跟它一模一样」的射门,看其中有百分之多少进了。这个频率,就是这一脚的期望进球。它不在乎这一脚最后进没进,它只回答一个反事实问题:站在出杆那一刻,凭历史经验,这种机会通常能进多少。

xG 一句话定义
xG(期望进球,expected goals)= 基于历史上同类射门(相同的位置、角度、距离、射门类型、是不是补射 / 反击、面前几个防守人……)的进球频率,给当前这一脚射门一个 0 ≤ xG ≤ 1 的进球概率。一脚从蓝线外围的小角度远射可能是 xG ≈ 0.03,一次门前甜点区的补射可能高达 xG ≈ 0.3+。它正好补上了 Corsi 缺的那一维——把「射门质量」变成一个能比较、能累加的数字。

关键词是「同类」。模型怎么定义「同类」?它把每一脚射门拆成一组特征(features),然后在历史数据里找特征相近的那一大堆射门,算它们的进球率。冰球 xG 常见的特征,你会发现和这门课前面讲的每一课都严丝合缝:

把这些特征喂给一个在历史射门数据上训练好的概率模型(通常是逻辑回归之类,本质就是「给定这些特征,进球的概率是多少」),它就吐回一个 01 的数。这个数,就是这一脚射门的诚实的价

三、本课的心脏:冰球的 xG,几乎就是足球那套 xG

现在讲这一课真正的重头戏,也是整个「球类的逻辑」系列在数据这条脊柱上最直白的一个证据。你如果读过姊妹课 《足球的逻辑》第 12 课 · xG,把上面那段冰球 xG 的定义和它一对照,会有一种强烈到近乎离奇的既视感——因为它们几乎就是同一个模型:都是「给每一脚射门,按位置、角度、距离、类型、防守,用历史进球频率算一个 0~1 的概率」。冰球的 xG 不是「受足球启发」这么客气,它在建模思路、特征选择、甚至连「xG」这个名字上,都是从足球那边直接搬过来的

为什么偏偏是足球和冰球共享同一套模型?因为在这个系列的「连续 ↔ 离散」谱上,它俩是紧挨着的一对双子:都连续(没有天然的回合边界,是一条不停的河流)、都低分(进球稀有、比分里全是运气)、都是争空间(第 03 课就说透了:冰球本质是足球的空间之争被搬到冰面、开到最高速)。既然两项运动的底层结构如此同构——都是「在连续流动中,稀有地把球送进一个框」——那么用来给「一次射门机会有多好」定价的数学,自然也就长得一模一样。冰球借走足球的 xG,不是偷懒,是因为要解决的根本就是同一个问题。

同一个思想的五个版本 · 数据革命同源
「别盯着稀有又带运气的结果(进球 / 比分),去给产生结果的每一个事件按它对得分的期望贡献定价,再求和」——这不是某一项运动的小聪明,而是整个系列在数据这条脊柱上共享的同一个思想。它在五项运动里各有名字,却是同一行数学:
足球 · xG给每一脚射门按位置 / 角度 / 类型定价。足球第 12 课冰球 xG 就是从这里直接借来的。
冰球 · xG给每一脚射门按位置 / 角度 / 类型 / 补射反击定价——与足球几乎同一个模型。本课主角。
篮球 · 真实命中率 / 四要素给每一次出手按位置定价(三分、底角、篮下值钱,长两分最亏)。篮球第 12 课
棒球 · wOBA给每一种上垒结果(安打 / 全垒打 / 保送…)按它对得分的真实贡献定价再加权。棒球第 12 课
橄榄球 · EP / EPA给每一次进攻按它改变了多少期望得分定价。橄榄球第 12 课
看懂其中任何一个,你就看懂了全部五个:给每个事件按它对得分的期望贡献定价

五者用的是同一个数学:期望值(概率 × 价值,再求和)。如果你想看清这个工具本身——什么是概率、什么是期望、为什么求和能把噪声抹平——可以回到《数学的逻辑》第 13 课(概率)。而如果你想看清「结果(比分)是嘈杂的价格、底层质量(xG)是更稳的价值,短期看价格、长期看价值」这套思路在别处怎么用,去读 《市场的逻辑》——一支「xG 远高于实际进球」的球队,就像一只「价值远高于价格」被暂时低估的股票,均值回归站在它这边。五项运动的「数据革命」,说到底就是把这一行数学,认真地、彻底地用在了运动上。

四、xG 在冰球里怎么用:给球员、门将、球队都定价

xG 一旦算出来,它最大的力量在于可加性——单脚的 xG 可以往上加,加成球员、门将、球队三个层面的诚实评价:

五、诚实:xG 是工具,不是真理(冰球尤其要谨慎)

xG 捧上天,会犯和「迷信 Corsi」一样的错——只是错得更精致。xG 是个模型,模型就有边界和噪声,必须说清楚,而且有几条在冰球里比在足球里更要紧:

所以正确的态度是:xG 是一把比 Corsi 又进了一步、但依然会抖动的尺子。Corsi 把「谁在压着谁打」从玄学里拽出来,xG 再把「这些压制有多危险」也拽了出来——这是巨大的进步;但它不是上帝视角的真理。会用它的人,用它看趋势和大样本,尤其在冰球里,更要克制,别拿它给一场球、一个球员盖棺定论。

六、动手:拖动射门点,看 xG 怎么变

下面这块进攻区,让你亲手拨动 xG 的核心变量——射门的位置(决定到球门的距离和角度),以及它是不是补射 / 反击。拖动那个白色的射门点,注意从它射向球门时,两根门柱张开的那个夹角怎么变:正对球门、离得近(门前甜点区 slot),夹角大、xG 高;往边上挪、往蓝线退,夹角被压扁、xG 暴跌。再点「类型」按钮切到补射或反击,看同一个位置的 xG 怎么被抬高——因为门将来不及重新封角、或防线还没落位。

xG 定价器 · 拖射门点 + 切补射 / 反击,看机会质量
拖动冰面上的白色射门点(决定到球门的距离与角度);点「类型」按钮循环切换阵地射门 → 补射 → 反击 rush(补射与反击会抬高 xG——门将重心已散、或防线未落位)。蓝色扇形是从射门点看球门两柱张开的「射门视角张角」——它越大、离门越近,机会越好。点几个预设点对照锚点值。这是刻意简化的示意几何模型(只看角度 + 距离 + 类型),不是任何一家的真实冰球 xG。
xG(进球概率)
0.14
到球门距离
15 ft
射门视角张角
23°
射门类型
阵地
射门点(可拖) 射门视角张角 门前甜点区 slot(xG 最高) 球门

玩几下你会得到一个比任何公式都牢的直觉:xG 几乎全由「那个张角」「距离」和「射门类型」决定,而这门课前面讲的所有进攻战术,归根结底就是把出杆的那一刻挪到「张角大、距离近、且最好是补射 / 反击」的处境去。cycling(第 07 课)是为了把防守拉散、松出门前的高 xG 空当;门前制造混乱(第 07 课)是为了创造补射、遮挡门将;打 rush(第 06、07 课)是为了在防线落位前偷一个高 xG 的失衡机会。而门将(第 09 课)则反着来:靠几何把你逼到张角小、距离远的低 xG 处境,并尽量不给你补射的第二下。整门课的攻防拉锯,第一次有了一把统一的、带小数的计分尺。

一句话带走
Corsi 数次数、不看质量,于是冰球借来了期望进球 xG:给每一次射门,按位置、角度、类型、是否补射 / 反击算一个 0~1 的进球概率(门前甜点 slot 高、外围小角度低),把「射门质量」这一维补齐。而冰球的 xG 和足球的 xG 几乎是同一个模型——因为两者是「连续、低分、争空间」的双子,这是整个系列「数据革命同源」最直白的证据。整条脊柱是同一个思想:足球 xG ↔ 篮球真实命中率 ↔ 棒球 wOBA ↔ 橄榄球 EPA ↔ 冰球 xG,都在给每个事件按它对得分的期望贡献定价。应用上:球员 xG 贡献、门将 GSAx(回扣 09)、球队 xG 差、高危射区地图。但记住——xG 是把好用却会抖的尺子,冰球样本比足球更少、更要谨慎,看大样本和趋势,别拿它给单场盖棺定论。

七、常见误解

下一步
有了 Corsi 和 xG 这套给射门与球员定价的语言,一个更大的问题就压过来了:既然我们能给每个球员的贡献算出一个诚实的价,那怎么把一群球员拼成一台能赢球的机器?冰球的答案,和别的运动很不一样——它不是堆几个明星就行。因为换人不停、每个人的上冰时间被死死限制(回扣第 05 课换人一课),冰球阵容讲究的是深度角色分工:四条前锋线各有各的活(得分线、两能线、防守线、体力线),三对后卫轮转,外加门将这个单点变量。深度和分工,在冰球里比任何单项运动都关键。 → 第 13 课《建队与阵容:四条前锋线 + 三对后卫的深度》会带你看清:一支冰球队不是一份明星名单,而是一台每 40~60 秒就轮换一次、靠深度和角色咬合起来的机器。