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

第四部分 · 数据革命

Corsi / Fenwick:用射门尝试差代理控球与领地

上一课把三样传统统计——进球、助攻、正负值(+/-)——一个个拆穿了:它们要么太稀少(进球每场就几个,样本小得可怜),要么把功劳记错了人(助攻只奖励最后两传,正负值把你的功过和四个队友、和门将的手感、和运气全搅在一起)。它们共同的病根其实是同一个:都建立在「进球」这个太稀有的事件上。一场比赛就那么两三个进球,你想用它们稳定地评价「这五个人在场上时,我们是压着别人打、还是被人摁着打」,样本根本不够。那怎么办?这一课的答案朴素得几乎像作弊:别数那个每场只有几次的稀罕事,去数那个每场有几十次的高频事——射门尝试。这个念头,就是冰球数据革命的第一块基石,它叫 Corsi。

本课路线
(1) 先把病根说透——为什么「一切建立在进球上」的统计都逃不掉小样本;(2) 给出解药:Corsi=你在场时本队所有射门尝试(射正 + 射偏 + 被封)减去对手的射门尝试,以及它的近亲 Fenwick(不含被封的版本);核心是把稀有的进球换成高频的尝试,样本一下大几十倍;(3) 点破它到底在代理什么——Corsi% > 50% 大致意味着「你压着对手在他家门口打」,是领地与控球的高频代理;(4) 明确交叉链接足球:这和足球发明 xG同一个动机——进球太稀少,就往下找更底层、更高频的信号;(5) 诚实地讲它的短板——Corsi 只数「尝试次数」,不管射门质量,一次外围乱射和一次门前必进机会被算成同一个「1」;(6) 亲手拨一个模拟器,看 Corsi% 如何比「进球差」更快、更稳地认出谁占优。
数据小注
本课的数字都是示意 / 数量级,不同赛季、不同球队、不同统计口径差别很大。可靠的量级是这些:NHL 一场比赛两队合计的射门尝试(Corsi 事件:射正 + 射偏 + 被封)通常在 100 次上下的量级,而两队合计进球往往只有 5~6 个——两者相差近二十倍,这正是 Corsi 样本更大的根源。一支球队一个赛季的整体 Corsi%(常写作 CF%)大多落在 45%~55% 这条窄带里,能常年稳在 53%+ 就已是很能压制对手的强队(示意)。「Corsi」这名字来自门将教练 Jim Corsi,被分析圈借用;本课 widget 里的比率是为讲清「高频→更稳」这条链而设的示意刻度,不是任何官方统计,别当成精确数字引用。绝不编造小数点后的「权威数据」。

一、病根:一切建立在「进球」上的统计,都躲不开小样本

先把上一课的结论收紧成一句话,因为这一课整个是被它逼出来的。传统三样统计——进球、助攻、正负值——表面上毛病各不相同,但你往深里挖,会挖到同一块石头:它们全都以「进球」为计量单位。进球本身是产出;助攻是「进球前的最后一两传」;正负值是「你在场时本队进球减对手进球」。三样,没有一样能脱开进球独立存在。

可你早在第 02 课就知道了:冰球是低分运动,一场六十分钟,两队加起来常常也就进五六个球。这意味着,如果你想用「进球」去评价某五个人在场上那十几分钟里的表现,你手里的数据点,可能一个都没有——他们这一段可能一个球都没进、也没丢。样本量是 0 或 1 的时候,任何统计都只是在测量噪声。这就是上一课正负值「会骗人」的最深处:不是它算错了,是它想测的那个东西(进球)出现得太罕见,罕见到没法稳定测量

把问题抽象一层,它其实是个再普通不过的统计学困境:你想估计一个比率(我们占优的程度),但你只有极少的样本(进球)。样本少,估计就抖得厉害——这正是第 02 课那条「低分 → 高方差」的老话,换了个地方又冒出来。既然如此,出路也就唯一:要么等更多场次(可你想评价的往往就是这几场、这几段),要么,换一个出现得频繁得多的东西来数。冰球数据革命选了后者。

二、解药:数「射门尝试」,而不是数「进球」

顺着「换一个高频的东西来数」往下想,一个天然的候选立刻浮出来。进球之前,总得先把球射向球门——而射门这个动作,比进球频繁得多。一场比赛里,一支球队会把球射向对方球门几十次,其中绝大多数没进(被门将扑出、射偏、被防守队员用身体封堵)。这些「朝球门去的尝试」,每一次都是「我把比赛压到了你家门口、并制造了威胁」的一个印记。它们太多了,多到足以稳定地统计。

Corsi 一句话定义
Corsi(射门尝试差)= 在你这一组人在冰上时,本队打出的所有射门尝试(射正 shots on goal + 射偏 missed + 被封堵 blocked)之和,减去同一时间对手打出的所有射门尝试。写成比率就是 Corsi% = 本队尝试 ÷ (本队尝试 + 对手尝试),也常写作 CF%。它的近亲 Fenwick 定义几乎一样,只差一点:不把「被封堵」的射门算进去(只数射正 + 射偏),理由是「被队友挡下」有时更能反映防守布置而非机会本身。两者精神完全一致——都是用高频的射门尝试,去代理那个稀有的进球背后的东西

为什么这一步是「革命」?因为它把你的样本量一下放大了近二十倍。回到那个数量级:两队一场合计进球 ≈ 5~6 个,而合计射门尝试 ≈ 100 次上下。同样是评价「这段时间谁占优」,用进球你手里可能只有 0~2 个数据点,用射门尝试你手里有几十个。样本从个位数跳到几十,那条「低分 → 高方差」的诅咒就被大大压住了——Corsi% 会比「进球差」快得多地稳定下来,指向真正占优的一方。这正是本课 widget 要让你亲眼看到的事。

三、它到底在代理什么:领地与控球

光说「样本大」还不够,得说清 Corsi 大出来的这个数,代理的究竟是冰球里的什么东西——否则它只是个统计花招。答案,恰好把这门课前十课的主线接了回来。

回想第 03 课:冰球的本质,是把足球的空间之争搬到冰面、开到最高速,一切都是「在对的地点、赶在缝合之前,抢占一块冰面」。而「射门尝试」是这场空间之争最诚实的记账:要能射门,你首先得把球控在自己杆上、把比赛推进到对方的进攻区、并在那里站稳。一支不停射门的球队,几乎必然是一支控着球、压着对方在他家门口打的球队;反过来,被人压着打、球总在自己门前的球队,根本没机会射门。所以——

Corsi% 读作「领地占有率」
Corsi% > 50%:这一组人在冰上时,本队打出的射门尝试比对手多,大致意味着你把比赛压在了对方半场、控着球、占着领地Corsi% < 50%:反过来,你被摁在自己门前挨打。它是控球与领地的高频代理——你没法每秒去量「现在谁控着球、球在谁的半场」,但你能数射门尝试,而射门尝试差,就是这件事的一个又便宜、又高频、又稳定的影子。一个赛季能常年稳在 53%+(示意)的球队,就是那种「一上冰,比赛就往对方那头倒」的强队。

这就是 Corsi 的全部魔法:它没有去直接测那个既稀有又难测的东西(进球、或抽象的「控球权」),而是找到一个和它高度相关、却频繁得多、好数得多的替身(射门尝试),转而去测这个替身。用一个高频的可观测量,去代理一个稀有或难测的目标量——这个思路,你会在整个「数据革命」里一次次见到。

四、和足球 xG 同源:进球太稀少,就往下找更底层的信号

如果你读过姊妹课 《足球的逻辑》第 11 课 · xG,此刻应该有种强烈的既视感——因为 Corsi 的动机,和足球发明 xG 的动机,是一模一样的一句话:进球太稀少了,稀少到没法用它稳定地评价谁踢得更好,于是我们必须往下钻一层,去找一个更底层、更高频的信号。

足球和冰球,是这个系列里连续那一端相邻的两项运动,都是低分、都是空间之争,也就都撞上了同一堵墙、给出了同一个方向的解法。把它们并排看:

足球的困境与解法场均进球 ≈ 2.7,太稀少,比分里全是运气(第 03 课那套「低分 → 高方差」)。足球分析的第一步,是不再只盯着进球,转而去量每一次射门的机会质量——这就是 xG。它比进球高频得多、也稳定得多。
冰球的困境与解法一场合计进球 ≈ 5~6,同样太稀少,正负值因此会骗人(上一课)。冰球分析的第一步,是不再只盯着进球,转而去数每一次射门尝试——这就是 Corsi。它比进球高频近二十倍、也稳定得多。

两条路,同一个念头。区别只在「往下钻的第一铲,铲到了哪一层」:足球一铲子就钻到了「给每次射门的质量定价」(xG);冰球的第一铲更浅、更粗,只钻到了「数每次射门的次数」(Corsi)——先不管质量,把「谁在压着谁打」这件事用高频信号量出来再说。这不是冰球想得比足球浅,而是数据革命的自然顺序:先用最便宜的方式把样本做大(数次数),把方向搞对;等站稳了,再回头把「质量」这一维补上。而补上质量那一铲,恰好就是下一课的事——你大概已经猜到,冰球补质量用的模型,正是从足球那儿直接借来的 xG

交叉链接 · 同一个「期望值革命」的四个版本
「别盯着稀有又带运气的结果,去量高频又稳定的过程质量」——这不是某一项运动的小聪明,而是整个「球类的逻辑」系列在数据这条脊柱上共享的同一个思想。它在五项运动里各有名字:足球的 xG、篮球的 真实命中率 / 四要素、棒球的 wOBA / WAR、橄榄球的 EP / EPA,以及冰球的 Corsi(以及下一课的冰球 xG)。它们全都在做同一件事:给每个事件,按它对「得分」的期望贡献定价,再用这个高频的价,绕开那个稀有又嘈杂的最终比分。看懂其中任何一个,你就看懂了全部五个。

五、诚实的短板:Corsi 只数「次数」,不看「质量」

Corsi 这么好,是不是就够了?不。它有一个非常明确、也非常致命的短板,而且这个短板不是缺陷,是它为了换取「高频、好数」而主动付出的代价——你必须清楚它,才不会滥用它。

短板是这样的:Corsi 把每一次射门尝试,都当成一个平等的「1」来数。一次从蓝线附近、隔着三个人、几乎不可能进的外围乱射,记「1」;一次门前无人盯防、球门大开、几乎必进的绝佳机会,也记「1」。在 Corsi 眼里,这两次完全等价。可你我都知道,这两次射门对「进球」的贡献,天差地别——一个可能只有百分之几的进球概率,一个可能高达八九成。

这会带来真实的误导。设想一支球队疯狂地在外围倒球、远射,攒下一大堆低质量的射门尝试,Corsi% 很漂亮;可它们从不敢、也打不进那片门前最危险的甜点(slot),真正的好机会寥寥无几。另一支球队射门尝试次数不多,但每一次都是精心打穿防线、送到门前的高质量机会。只看 Corsi,你会误判前者占优——因为 Corsi 数得清次数,却看不见质量。这正是它作为「第一铲」的粗糙之处:它把「谁在压着谁打」量出来了,却没法回答「这些压制,有多少真的转化成了危险的机会」。

这正是逼出下一课的缺口
Corsi 的这个短板,不是要我们抛弃它,而是要我们再往下钻一层。它已经把「次数」这一维做好了(高频、稳定、代理领地);缺的是「质量」这一维。一次门前空网和一次蓝线乱射,能不能不再都算成「1」,而是各自按它「进球的概率」记一个带小数的分?能——这个带小数的分,就是 xG;而冰球用来算它的模型,几乎就是足球那套 xG 的翻版。这就是下一课。

六、动手:射门尝试差,比进球差认得更快

下面这个模拟器,让你亲手验证本课最核心的一句话:在低分运动里,「射门尝试差」比「进球差」更快、更稳地认出谁占优。玩法只有一根滑块——你设定本队的真实领地优势:也就是「如果比赛无限长,本队打出的射门尝试本该占多大比例」。50% 表示两队旗鼓相当;往右拉,表示本队真的更能压着对手打(比如 58%,示意一支不错的强队)。

然后点「推进比赛」,程序会一段一段地模拟比赛:每一「回合」,按你设定的领地优势,用确定性随机抽出这次射门尝试属于哪一方(尝试很多,每场几十次);其中只有一小部分尝试会变成进球(低转化率,进球因此很稀少)。右侧读数同时显示两样东西——本队实时的 Corsi%,以及同一时间的进球差。你会看到一件很有说服力的事:

把滑块拉到正好 50%(两队真实相当),再看:Corsi% 会稳稳停在 50% 附近,而进球差依旧会因为运气东倒西歪。这就直观地证明了:当你想尽快、稳稳地判断「谁在占优」,该看的是那个高频信号(Corsi),而不是那个稀有又嘈杂的结果(进球)。这,就是冰球数据革命第一块基石的全部价值。

射门尝试差代理领地 · Corsi% 比进球差认得更快
拖动滑块设定本队的真实领地优势(射门尝试本该占的比例,50%=势均力敌,往右=本队更压制)。点 推进比赛 一段段模拟:每回合按此比例抽一次射门尝试归属,少数尝试转成进球。看右侧——Corsi%(高频)很快稳到你设的真值附近,而进球差(稀有)长时间乱跳、认不出谁强。点「复位」从头再来。
本队 Corsi%(高频·稳)
进球差(稀有·噪声大)
累计射门尝试(本 / 对)
0 / 0
累计进球(本 / 对)
0 / 0
本队 Corsi% 曲线(高频,快速收敛到真值) 本队进球占比曲线(稀有,长期乱跳) 你设定的真实领地优势(虚线)
没有 canvas 也不影响理解:想象你把本队设成 58% 的领地优势。头几分钟,进球是 0:0 或 1:0、甚至 0:1(进球太少,认不出谁强);但射门尝试早已是 24:17 这样,Corsi% ≈ 58% 明明白白写着「本队在压着打」。射门尝试多,所以它先一步说出了真相——这就是 Corsi 的意义。

这个玩具当然简化得厉害(真实的 Corsi 要分五人组统计、要扣掉比分和主客场的影响、还有前面说的「不看质量」这个大短板),但它的方向是真的、也是本课的心脏:高频的射门尝试差,是「谁在压着谁打」这件事又快又稳的影子;稀有的进球差,则要慢得多、抖得多才认得出真相。数据革命的第一步,就是学会先去看那个高频的影子。

七、常见误解

一句话带走
冰球数据革命的第一块基石是 Corsi:既然进球每场只有几个、太稀少,评价「谁在压着谁打」样本不够,就改去数每场有几十次的射门尝试——Corsi = 你在场时本队射门尝试 − 对手射门尝试Fenwick 是不含被封堵的版本)。样本一下大近二十倍,于是 Corsi% 比「进球差」更快、更稳地认出谁占优,成了领地与控球的高频代理(Corsi% > 50% ≈ 你压着对手在他家门口打)。它的动机和足球发明 xG 一模一样:进球太稀少 → 往下找更底层、更高频的信号。它诚实的短板也很明确——只数次数、不看质量,一次门前必进和一次蓝线乱射被算成同一个「1」。这个缺口,正是下一课要补的。
下一步
Corsi 已经把「次数」这一维做好了——高频、稳定、能代理领地。可它有个绕不过去的短板:它只数射门尝试的次数,不看每次射门的质量。一次门前无人盯防的空网机会,和一次蓝线外隔着三个人的乱射,在 Corsi 眼里都是同一个「1」——可它俩的进球概率天差地别。能不能给每一次射门,按它的位置、角度、类型,各算一个「进球概率」,把「射门质量」也算进来?能——这个带小数的分,就叫期望进球 xG。而冰球用来算它的模型,几乎就是从足球直接借来的那一套:冰球的期望进球和足球的期望进球,本质是同一个模型——这是整个系列「数据革命同源」最直白的一个证据。 → 第 12 课《期望进球 xG 与现代分析:冰球 xG 直接借自足球》会带你把「质量」这一维补齐,让每一次射门都有一个诚实的价。