Goals Added: Deep Dive Methodology 把每次觸球換算成入球
棒球分析有 WAR,把一名球員的所有貢獻換算成勝場。足球一直缺乏對應的指標:入球與助攻只記錄進攻鏈最後兩個人,中場的一次直塞、中堅的一次解圍、門將的一次高空球接應,在傳統數據裏都沒有價格。
American Soccer Analysis(ASA)發表 Goals Added: Deep Dive Methodology,作者 Matthias Kullowatz 是 University of Portland 的數學與統計學教授。這是 g+ 系列的第二篇:第一篇由 John Muller 介紹概念,第二篇交代方法,包括如何定義「一次控球」、如何為每個比賽情境估值、如何把價值分配給傳球者與接球者,以及為何射門與十二碼要另行處理。本文根據原文(含附錄)導讀,並在文末補充這套方法對球隊評估與賽果預測的意義。

本文重點
g+ 為場上每個有球動作給出一個以入球為單位的數值。做法是先估算每個比賽情境「餘下回合能賺到多少 xG,減去對手下一回合能賺到多少 xG」,再把動作前後兩個情境的差額記在動作上。以 xG 而非實際入球作訓練目標,是因為射門遠比入球多,模型可以更快找出哪些情境細節真正提高入球機率。
原文最重要的三個設計選擇是:以控球回合作為分析單位;價值必須跨兩個回合計算,否則所有解圍都會被記負值;以及對接球、射門與十二碼作人手調整。第三點的結果是,射門者只獲記射門的 xG,同時被扣減射門前該情境已有的價值,平均而言兩者相抵。原文的說法是,與多年來只看 xG 的做法相比,射門本身幾乎沒有淨價值。
一、目標:每個動作都以入球為單位
原文開首回顧作者的動機。ASA 在 2013 年成立,作者一直想建立一個能為全場動作記功的指標,以所有球迷都明白的單位表達,也就是入球。足球缺乏棒球那種公開、且回合之間大致獨立的數據,直至 event data 普及,這件事才可行。作者說整個過程花了五年。
方法可以濃縮為六步:
把比賽切成一個個「控球回合」(possession,原文亦稱 chain)。
對回合中任何一個時點,定義「餘下回合賺到的 xG」。
用統計模型,按比賽情境(足球在哪裏、哪隊控球、足球如何到達該處)估算第 2 步的數值;模型會為每個動作發生前的情境估值。
從本回合餘下 xG 減去對手下一回合的 xG,得出兩回合淨值。
動作前後兩個情境的估值之差,就是該動作的價值。
把價值分配給參與動作的球員。
原文特別解釋第 3 步為何需要模型:若直接從數據統計,多數回合最後沒有射門,價值會是零,所有 xG 都會落在少數有射門的回合上。模型的工作是把這些 xG 平滑地分配到每一種情境。
二、為何以「控球回合」作單位
要為比賽情境定價,先要決定用甚麼時間單位去對應 xG 結果。原文比較了三個選項。
整場比賽: 太大。做法會變成統計每場有多少種情境、賺了多少 xG,需要大量主觀判斷去把情境分類,而且不精確。
單一動作: 太小。若只看一個動作,唯一有正值的動作是射門,結果只是另一個射門模型。
控球回合: 剛好。ASA 之前已大量使用 possession chain,定義是同一隊連續的持球動作序列,中間對手沒有做出持球動作。對手的干擾動作不一定終止回合,除非該動作隨後有傳球、盤球、射門或博得犯規。原文的例子:A 隊截得 B 隊傳球後嘗試傳球,A 隊的回合便開始,B 隊的回合終止;A 隊球員帶球推進、傳中、隊友頭槌攻門;B 隊門將接住後把足球交給隊友,B 隊新回合開始。
以下動作會結束一隊的回合,同時開始對手的回合:傳球嘗試;盤球嘗試(持球球員嘗試過人,成功是擺脫防守者並保住控球,失敗是被搶截);帶球(由數據推導:接到傳球或解圍後,在至少 5 米以外失去足球或作出另一動作);博得犯規;射門;門將接球;跟在其他持球動作之後的解圍;跟在其他持球動作之後的失誤觸球。原文補充,多數解圍屬防守性「干擾」動作,不算持球動作。
用回合作單位的好處,是可以在射門前的幾個動作,觀察每個非射門動作如何改變入球機率。每個情境的細節,會與該回合實際賺到的 xG(減去對手下一回合的 xG)建立關聯。
三、兩回合淨值:解圍為何不能全記負值
原文用一整節解釋為何要同時追蹤「本回合入球機率」與「對手下一回合入球機率」。理由直觀:足球是連續流動的,控球權不斷轉換,而足球的位置同時影響兩個方向的機率。當足球推近對方球門,本回合入球機率上升,對手下一回合入球機率同時下降。所以每個情境都同時記錄兩個機率,動作改變了哪一個,功勞或責任便記在動作上。
解圍是最清楚的例子。若只用單回合模型,所有情境的價值都非負,因為一隊不可能在一個回合內賺到負的 xG;解圍前的回合價值是正數,而絕大多數解圍會把足球交給對手,對手的新回合價值對解圍一方而言是負數。結果是所有解圍都會被記負值。這明顯不合理,至少有一部分解圍是必要且有價值的。改用兩回合模型後,原文指約 50% 的解圍對解圍一方為正值,因為它相對改善了球隊的處境。
四、由情境價值到動作價值
原文以一次直塞到攻擊三分之一作例子。接球的球員多半身處危險位置,模型的工作是估算「這種情境之後,餘下回合平均賺到多少 xG」。做法是在數據中找出所有類似情境:足球在攻擊三分之一中路,剛經過一次快速的縱向推進,再取全聯賽在這些回合餘下部分的平均 xG。原文稱之為「動作前」價值,即球員未對足球做任何事之前,餘下回合值多少。它同時也是上一個動作的「動作後」價值。
有了每個時點的情境價值,動作價值就是相減。若球員在價值 0.02 的區域接球,然後直塞到價值 0.05 的區域,這次傳球增加了 0.03,即使之後從未有射門。原文形容這是最直接的應用:球員可以因為好的動作得到功勞,即使隊友其後把回合浪費掉。
防守動作用同一套算法。原文的兩個例子:
搶截: A 隊球員在邊路接近攻擊三分之一處接球,隨即被搶截,B 隊回收足球。模型估算被搶前 A 隊的控球價值約為 +0.005,不算危險,但比 B 隊當時的處境好。B 隊回收後的淨價值約為 0.000。A 隊球員因失去控球而被扣 0.005,搶截者得到 0.005;若有其他球員回收足球,功勞會分攤。原文的歸納是:防守動作所得,等於失敗的進攻動作所失。
解圍: 攻方由邊路禁區線附近傳中,模型估算該情境約為 +0.015;防守球員解圍後,攻方退回距離球門約 50 碼處,價值降至 +0.005。傳中者失去 0.010,解圍者得到 0.010。這個例子的重點是,解圍沒有導致控球權轉換,模型仍能為它定價。
五、模型如何估算情境價值
原文把數學細節放在附錄,但這部分對理解方法的取捨很有幫助。作者列出三種估算「餘下回合 xG」的方式。
直接分組平均: 找出所有落點相近、來源相似的直塞,取這些回合餘下部分的平均 xG。在動作頻繁的區域可行,但有些區域只剩幾個樣本,估值會很不可靠。
線性迴歸: 為每個特徵校準一個係數,例如「與球門的距離」得到負係數。好處是不需要找到幾呎內的相同傳球,但線性形式有明顯缺點:在底線附近、禁區側面持球,與在禁區弧頂正面持球,距離球門可能相近,價值卻明顯不同。
部分子集加權: 把分組與迴歸結合。若同時滿足四個條件的樣本太少,可以分別取任意三個條件的子集,計算四個平均 xG,再加權合成。原文指這正是決策樹森林做的事:每棵樹在特徵上找一個分割點,令兩邊的平均 xG 差異最大,然後繼續找下一個分割。原文舉例,第一刀可能切在禁區線(115 碼球場上 x 大於 97),第二刀切在距離中線 20 碼內(80 碼寬球場上 |y − 40| 小於 20),四個子集便同時結合了縱向與橫向位置。每棵樹有 5 至 10 個分割,數千棵樹組合起來,就能為任何情境估值。
ASA 採用 xGBoost,即梯度提升的決策樹森林。原文提醒讀者,這個名字與 Expected Goals 無關,只是巧合。輸入模型的特徵包括:
情境的 (x, y) 位置,另加禁區指示變數;
動作序號:回合至此為止的動作數目;
前一個動作類型:失誤、傳球、盤球、帶球、射門、博得犯規、回收、防守動作;
前一次傳球是否長傳、傳中、直塞;
當前動作是否頭槌(原文指數據沒有明確的「足球在空中」欄位,而空中球會大幅降低回合價值,尤其在球門附近,所以借用頭槌指示變數);
是否角球、界外球、自由球、龍門球,以及距離上一次該類定位球已過多少個動作;
回合的縱向速度:最近四個動作(回合初期為兩至三個)覆蓋的縱向距離除以時間;
回合的橫向速度:最近兩個動作覆蓋的橫向距離除以時間。
第一節提過,模型不用實際入球而用射門 xG 作訓練目標,理由是射門樣本遠多於入球,模型可以更快鎖定真正提高入球機率的情境細節。原文同時強調,這是在數據不足下的務實選擇;模型輸出的每一個數字,仍然是「這個動作令球隊入球機率(減去對手下一回合入球機率)改變了多少」。
六、三處人手調整:接球、射門、十二碼
上述方法給出了基礎的動作價值模型,但作者在檢驗結果後認為有幾處需要調整。

完成傳球的分配: 幾乎所有動作都是多名球員合作的結果,但數據只把動作掛在一個人身上。完成傳球是最明顯需要分配的個案:每次成功傳球都需要一個接球者,也要有人跑出空位並控好足球。原文引用 Tiotal Football 的觀點:若模型把前鋒視為生產線末端的機器,只負責把機會轉成入球或射門,那麼模型描述的便不是足球;進攻球員本身就是機會的創造者。
ASA 已有 xPass 模型估算每次傳球的完成機率。他們決定按這個機率分配:傳球者得到 xPass% 的份額,接球者得到餘下的 100% − xPass%。這個分配有一個內在邏輯:越容易完成的傳球,動作價值本身越低;越難完成的傳球(直塞、傳中),完成後價值越高,同時需要接球者付出更多。禁區內的傳球大多會被防守一方破壞,價值便較平均地分給傳球者與找到空位的接球者。
回傳的情況剛好相反。中場回傳給中堅通常會降低回合入球機率,但這類傳球的 xPass% 接近 100%,負值幾乎全數歸傳球者,接球者不會因為「在後方接應」而被扣分。原文的理由是,球員整季有大量由安全到危險的傳球選擇,最好的球員會完成更多危險傳球,同時更常在不必要冒險時選擇安全傳球。
傳球失敗時同理。既然完成傳球只給傳球者一部分功勞,失敗時也只讓他承擔一部分責任。原文的數字:禁區傳中的完成率約 30%,完成後價值約 0.15;完成時傳球者得 0.30 × 0.15 = 0.045,接球者得 0.105。失敗時接球者那一份「暫時歸於虛無」。
射門: 前鋒常在價值 10% 至 20% 的區域接球。若他入球,很容易便想把餘下功勞全數給他,直至 100%(嚴格來說是 99%,因為開球時對手已有 1% 的入球期望)。按設計,射門者的 g+ 平均會是零,但排行榜會被當年把握力最好的球員佔據;而把握力年復一年大幅回歸聯賽平均。原文認為這會動搖整個指標的基礎。
於是 ASA 的做法是:射門者記射門的 xG,不論結果;同時扣減射門前的控球價值,即射門的機會成本。平均而言兩者相抵。原文明言,與多年來分析界依賴的純 xG 模型不同,在 g+ 之下射門幾乎沒有淨價值。然後再用新的 xRebound 模型補回落點的功勞:射中目標(或中柱)的射門會帶來明顯更多的二次機會,例如補射與角球。平均而言,完全射失的射門值 −0.005,中目標的射門值 +0.015。
原文預期讀者會擔心前鋒得不到足夠功勞,回應是前鋒在接球分配上已獲大量功勞:在球門前危險位置接應、爭頂成功,本身就是高價值動作。作者承認這是方法上的一個立場:費力的部分是把足球送到危險位置,射門只是最後一步。2019 年接球價值榜可以佐證:Carlos Vela 9.23、Zlatan Ibrahimovic 9.03、Alberth Elis 4.34、Sebastian Blanco 4.24、Josef Martinez 3.86,之後是 Jack Elliott、Eduard Atuesta、Carles Gil、Mark-Anthony Kaye、Anton Tinnerholm。
十二碼: MLS 十二碼命中率接近 80%,博得十二碼在機率上與入球相近。原文因此同時調低博得與主射十二碼的原始價值。主射者一律記 0.00,不論結果;理由是判罰前的情境價值很少達到 0.80,作者不想在射失時扣 0.80、射入時給 0.20,而且很難分辨誰是真正出色的十二碼手。博得十二碼則值得獎勵,但基礎方法會給出約 0.60(判罰前情境價值多在 15% 至 20%,十二碼命中率 75% 至 80%)。ASA 改為給 0.10,理由是多數十二碼帶有偶然性,博得的球員多半只是在正確時間出現在正確位置;0.10 的依據是把未實現的流動進攻機會視作在禁區中央、小禁區寬度以內成功盤球開出空位,這類盤球的平均價值約為 10%。
其他定位球不作調整。原文列出各類動作的平均 g+:射門 0.008(62,391 次)、角球 0.006(36,763 次)、自由球射門 0.004(2,353 次)、自由球傳球 0.002(112,099 次)、其他動作 0.001(2,423,480 次)、傳球 0.001(2,163,989 次)、界外球 0.001(203,348 次)。定位球的動作價值與一般傳球和射門處於同一水平,傳球者與射門者有較均衡的選項分佈,不像十二碼那樣單一。
七、模型輸出:2019 年球員榜與球隊驗證
原文給出 2019 年 g+ 前十名,用的是「高於平均的價值」版本:ASA 按每名球員在各位置的上陣時間分佈,計算一個專屬的位置平均值作比較基準。榜首是 Carlos Vela(9)與 Zlatan Ibrahimovic(8.8),之後是 Alberth Elis 4.2、Sebastian Blanco 4、Jack Elliott 3.8、Josef Martinez 3.8、Eduard Atuesta 3.8、Carles Gil 3.5、Mark-Anthony Kaye 3.5、Anton Tinnerholm 3.3。作者指位居前列的是兩個預期中的名字,令人放心;同時有三名球員(Elis、Blanco、Gil)來自 xG 差為負的球隊。
球隊層面的驗證,是把動作價值加總到球隊,與實際入球差(GD)和射門 xG 差(xGD)比較。

因為 g+ 以 xG 為訓練目標,跨球隊球季的相關係數高達 0.93。原文強調這不是把 xG 重新計算一遍:xG 功勞現在分配到球隊每一名球員,而不只是射門者;也分配到全場每個區域,而不只是攻擊三分之一。例如要量度一隊對中場的控制,只需把中場三分之一內的 g+ for 減去 g+ against。
原文做了這個計算:取每隊球季前 17 場在中場三分之一的 g+ 差,對照同季後 17 場的入球差。跨 147 個球隊球季,相關係數為 0.39;同期以過往球隊 xG 預測未來 GD 的相關係數為 0.33。作者明言差距在統計上不顯著,而且這只是數據的一個切面。重點是 g+ 提供了新的靈活性:可以按位置、按動作類型描述比賽如何進行,而所有切面都以入球為單位。
原文亦列出可能的延伸:評估門將與中堅的傳球分佈、對某位球員的盤球嘗試作成本效益分析、量化失誤造成的損失、比較不同位置的傳中,或比較短角球與長角球。
八、對球隊評估與賽果預測的啟示
原文有兩個判斷值得從預測系統的角度看。第一,射門本身幾乎沒有淨價值,價值集中在把足球送到危險位置的過程;第二,把中場三分之一的 g+ 差用作預測未來入球差,表現與 xG 相若甚至略好。兩者合起來的含意是,球隊實力的訊號散佈在整條進攻鏈與防守鏈上,只看比數或射門 xG 會漏掉其中大部分。
AIP 系統 在建立球隊評估時採用相同方向:除 xG 這類射門質素指標外,也會把控球推進、攻勢威脅與攻防轉換等動作層面的訊號納入特徵,再與市場隱含機率對照;差距不足或關鍵數據缺失時不出推介。原文以兩回合淨值同時計算入球與失球機率,這種攻守一併計算的做法,與 AIP 同時評估球隊創造機會與限制對手的思路一致。
原文對十二碼與射門把握力的處理,對預測系統亦是一個提醒。把握力年復一年大幅回歸平均,若讓它主導球員或球隊評估,模型會追逐雜訊。AIP 在特徵設計上同樣把高變異、低持續性的成分(例如短期入球轉換率)與較穩定的過程指標分開處理,並以時間切分的樣本外驗證確認估值不是被少數幸運球季拉動。
總結:把 xG 分配到每個人、每個區域
g+ 把比賽切成控球回合,用 xGBoost 為每個情境估算「本回合餘下 xG 減對手下一回合 xG」,再把動作前後的差額記在動作上。兩回合設計令解圍與搶截可以得到正值;xPass 分配令接球者分享傳球功勞;射門記 xG 減機會成本,平均相抵;十二碼主射者記零,博得者記 0.10。在球隊層面,它與 xG 高度相關,但可以按區域與動作類型切分,並在預測未來入球差時不遜於 xG。
主題 | 原文要點 | 章節 |
目標 | 每個有球動作以入球為單位定價,類似棒球 WAR | 一 |
分析單位 | 控球回合:整場太大,單一動作太小 | 二 |
兩回合淨值 | 本回合 xG 減對手下一回合 xG;約 50% 解圍為正值 | 三 |
動作價值 | 動作後情境價值減動作前情境價值;防守所得等於進攻所失 | 四 |
模型 | xGBoost;位置、動作序號、前一動作類型、定位球、回合速度 | 五 |
接球分配 | 傳球者得 xPass%,接球者得餘下;傳中 0.045 對 0.105 | 六 |
射門 | 記 xG 減射門前價值,平均約 0;中目標 +0.015,射失 −0.005 | 六 |
十二碼 | 主射 0.00;博得 0.10(模型原值約 0.60) | 六 |
球隊驗證 | 與 xG 相關 0.93;中場 g+ 差預測未來 GD 相關 0.39,xG 為 0.33 | 七 |
原文提到,這是 g+ 的第一個版本,之後會有文章交代它與其他非射門動作估值方法的關係,以及視覺化的做法。本文所有數字與結論均以這篇方法論文章(含附錄)為限。
Reference
M. Kullowatz. Goals Added: Deep Dive Methodology. American Soccer Analysis, 4 May 2020. https://www.americansocceranalysis.com/home/2020/5/4/goals-added-deep-dive-methodology
J. Muller. Goals Added: Introducing A New Way To Measure Soccer. American Soccer Analysis, 4 May 2020. https://www.americansocceranalysis.com/home/2020/4/22/37ucr0d5urxxtryn2cfhzormdziphq
American Soccer Analysis. What are Goals Added (g+)? https://www.americansocceranalysis.com/what-are-goals-added
T. Decroos, L. Bransen, J. Van Haaren, J. Davis. Actions Speak Louder than Goals: Valuing Player Actions in Soccer. KDD 2019. https://arxiv.org/abs/1802.07127
K. Singh. Introducing Expected Threat (xT). karun.in, 2018. https://karun.in/blog/expected-threat.html



