Introducing Expected Threat 為球場每一格標上威脅值
2018 年 12 月,阿仙奴主場 3 比 1 擊敗般尼。第一個入球的過程是:右路一輪短傳之後,Özil 一記直線傳球撕開般尼防線,Kolašinac 接應後回傳,Aubameyang 射入。官方紀錄上,助攻屬於 Kolašinac。任何看過這球的人都會問:Özil 那一腳算甚麼?
這條問題正是 Karun Singh 在 Introducing Expected Threat (xT) 一文的起點。文章提出一個簡單而可解釋的框架,把球場切成網格,為每一格估計「由這裡開始,這次控球最終入球的機率」,再用動作前後的差值衡量每一次傳球與盤球的貢獻。今日 xT 已經是公開足球數據分析中引用最多的模型之一,socceraction 等開源套件亦內建作者公開的網格數值。
本文按原文脈絡導讀:先說明現有指標為何不足,再一步步建立 xT 的公式、迭代方法、結果與應用,最後交代它的限制。

本文重點
原文想解決的問題只有一個:在只有事件數據(event data)而沒有球員追蹤數據的情況下,如何為組織進攻中的每一次傳球、每一次盤球,給出一個不依賴最終結果、又能反映「威脅」而非只反映「射門好壞」的分數。
作者的答案是把控球過程視為 Markov 過程:持球者在任何位置都只有兩個選擇,射門或移動足球。由歷史數據統計每格的射門機率、入球機率與移動去向,就能反覆迭代算出每格的 xT。動作的價值等於終點 xT 減起點 xT。這個設計令 xT 有一個自然解釋:迭代 n 次後的 xT,就是「在接下來 n 個動作內入球的機率」。
一、現有指標為何不夠用
原文先檢視三種常見做法,逐一指出缺口。
助攻: 只記最後一傳,Özil 的貢獻在數字上完全消失。
xGChain 與 xGBuildup: xGChain 把最後射門的 xG(此例為 0.13)平均分給所有參與該次控球的球員。Kolašinac、Özil、Aubameyang、Maitland-Niles、Lacazette 五人得到相同份額,與實際貢獻不符。xGBuildup 只把 xG 分給助攻之前的參與者,但仍是平均分,問題相同。
動作前後的 xG 差值: 這個方向較合理,但有一個盲點:一記有威脅的傳球,未必把足球送到好的射門位置。Özil 那一傳把防線切開,可是 Kolašinac 接球的位置本身並不適合射門。這一傳的價值在於它令 Kolašinac 可以輕易創造下一個高質素機會。純以 xG 差值計算,會低估這類「鋪路」的傳球。
二、四項設計要求
針對上述缺口,作者列出理想框架應滿足的四點:
為組織進攻中的個別動作(傳球、盤球)給分。
只依賴事件數據。作者沒有追蹤數據,只有一串按時間排列的事件,每個事件帶有持球者、時間、起點與終點等基本屬性。
分數不受該次控球的最終結果影響。Özil 的分數不應取決於 Aubameyang 最後有沒有射入。
除了獎勵把足球送入高 xG 射門位置,也要獎勵送入「有威脅」的位置,即那些很容易再轉化成高 xG 位置的區域。
第三點有一個直接後果:若動作分數要與前後事件無關,能用的輸入就只剩起點與終點。於是問題變成:能否為球場上每一個位置賦予一個數值,再以「終點值減起點值」作為動作分數?
第四點則說明這個數值不能只是 xG。xG 假設下一個動作就是射門;要衡量威脅,必須考慮連續多個動作的可能性。
三、簡化的控球模型
作者把組織進攻簡化成以下過程:球隊在某個位置持球,可以射門(以某個機率入球),或者透過傳球或盤球把足球移到另一個位置。過程持續到球隊失去控球或入球為止。
球場切成 16 × 12 網格,共 192 格。以 2017/18 球季英超全季事件數據統計,每一格 (x, y) 都有四項屬性:
移動機率 m: 持球者在此格時,下一個動作是傳球或盤球的比例。
射門機率 s: 下一個動作是射門的比例。在這個簡化世界裡只有兩種選擇,所以 m + s = 100%。
移動轉移矩陣 T: 若持球者選擇移動,足球轉移到其餘各格的機率分佈。
入球機率 g: 若在此格射門,入球的比例。作者指出這其實就是一個非常簡單的 xG 模型。
原文另有兩點說明。第一,模型只計算「成功」的移動,即沒有失去控球的傳球與盤球;把失敗嘗試也納入是可行的,但會令模型更複雜。第二,有量化背景的讀者會認出這是一個 Markov 模型:每一格是一個狀態,傳球與盤球是狀態轉移。
四、看穿「將死」之前的一步
作者引用 Cervone 等人在籃球分析中的一段話:大部分進階指標仍然建基於控球結束時的結果,像「只看導致將死的那一步來分析整局棋,卻不理會關鍵一步可能在幾回合之前」。這句話搬到足球同樣成立。
有了上面的記號,問題可以這樣表述。持球於 (x, y) 時有兩個選擇:射門,期望回報是入球機率 g;或者移動足球,期望回報是各個目的地格子的價值,按轉移機率 T 加權後的總和。再以射門機率 s 與移動機率 m 為兩條路線加權,就得到該格的價值。

寫成公式:
xT(x, y) = s(x, y) × g(x, y) + m(x, y) × Σ T(x,y → z,w) × xT(z, w)
第一項是「即時射門威脅」,第二項是「移動後在下游產生危險的潛力」。這個量並非只看將死那一步,所以作者稱之為 Expected Threat。
五、循環依賴與迭代求解
公式有一個明顯問題:計算某一格的 xT,需要先知道其他所有格的 xT;而其他格亦然。這是一個循環依賴。
解法是把所有格的 xT 初始化為 0,然後反覆套用公式,每一輪都用上一輪的 xT 值。作者的經驗是 4 至 5 次迭代 已足以大致收斂,實際次數視數據而定。
這個做法還帶來可解釋性:
迭代 1: 右邊的移動項全部乘 0,xT = s × g。這相當於只容許射門,結果就是一個 xG 模型。
迭代 2: 移動項開始有值,模型開始考慮「移動一次,然後射門」。
迭代 3: 考慮「移動兩次,然後射門」,如此類推。
所以迭代 n 次後的 xT(x, y),就是在接下來 n 個動作內入球的機率。xT 因此有明確的單位:它與 xG 同樣是一個機率,可以直接比較。

圖 3 以一組簡化的 s、g、T 建構的合成模型示範上述邏輯,並非原文的英超結果。原文以互動圖展示 2017/18 英超全季數據的迭代過程,觀察到的現象一致:迭代 0 是一片平坦;迭代 1 等同 xG;每多一次迭代,xT 就向遠離球門的區域多推一步;4 至 5 次後數值大致穩定。
六、xT 曲面實際是甚麼樣子
作者後來公開了一份 12 × 8 版本的 xT 網格(open_xt_12x8_v1.json),現已成為多個開源套件的預設值。圖 4 把這份數據畫出來。

有幾個特徵值得留意。最高值出現在小禁區前的兩格,均為 0.257;緊接的一格為 0.108;禁區兩側的肋位約 0.055 至 0.064。己方半場絕大部分格子在 0.006 至 0.011 之間,中線附近約 0.012 至 0.015。整體而言,攻方半場的平均 xT 約為己方半場的四倍。
這個形狀解釋了 xT 為何能捕捉「鋪路」的傳球:由己方半場推進至對方禁區外圍,xT 可以由約 0.01 升至 0.03 至 0.06,這段增值在純 xG 差值下幾乎是 0。
原文示範用的是 16 × 12 網格;公開版本改為 12 × 8,數值尺度略有不同,但形狀一致。網格應切多細,牽涉樣本量與估計誤差的取捨,原文只簡單提到「視乎數據量而定」,此處不展開。
七、應用一:為每一個動作定價
有了整個球場的 xT,一個動作把足球由 (x, y) 移到 (z, w),其價值就是 xT(z, w) − xT(x, y)。以 5 次迭代的 xT 為例,這個差值的意思是:這個動作令球隊在接下來 5 個動作內入球的機率改變了多少個百分點。
回到阿仙奴那球:
Özil 的傳球把 xT 由 0.077 推高至 0.158,差值 0.081。
Kolašinac 的傳球把 xT 由 0.158 推高至 0.171,差值 0.013。
Özil 佔淨增值的 0.081 / (0.081 + 0.013) = 86%,Kolašinac 佔 14%。與助攻計法的 0% 對 100%、xGChain 的五人平分相比,這個分配更接近觀感。
作者補充一個實務細節:例子中把起點與終點歸入所屬格子。若分析對精確度要求高,可以用固定網格算出 xT 曲面,再對事件的精確座標進行雙線性插值(bilinear interpolation),得到更細緻的估計。
全季 xT 創造榜: 作為合理性檢查,作者列出 2017/18 英超 xT 創造總量最高的 15 名球員。榜單用的是原始總和而非每次動作平均,目的是同時反映「懂得製造危險」與「持續高量輸出」兩點。作者特別提到屈福特左閘 Holebas 排第三,這個排名可能令人意外,但他確實是該隊最穩定、最具威脅的創造者。
八、應用二:按球隊計算 xT
上述結果把全英超 20 隊的數據混在一起,等於假設所有球隊在控球時行為一致。實際上並非如此。作者改為逐隊計算 xT,發現曲面的形狀與高度都有明顯差異。
一個例子是曼城與熱刺。兩隊的 xT 曲面形狀相近,代表兩隊重視球場上相似的區域;但曼城的數值整體高出一截。同一個位置持球,曼城製造的威脅較大,原因是他們把控球轉化為入球的比率較高。
逐隊 xT 圖本身觀賞價值高於實用價值,但背後的數據可以回答賽前分析的一條實際問題:對手通常在球場哪些位置製造最多危險?
做法是用對手自己的 xT 曲面為他們過去比賽的所有動作定價,再按動作的起點位置匯總。每一格的累計值反映由該區域發起的動作合共製造了多少威脅。再標示這些動作常見的終點,就能看到對手最危險的進攻路線;加上球員維度,就知道這些路線由誰主導。原文以互動圖呈現這個分析,可切換任何一支英超球隊。
九、限制與後續方向
原文對自身假設相當坦白,值得整理。
路徑無關: 作者以物理學的位勢場作比喻。把動作價值定義為終點值減起點值,等於假設盤球的實際路線不重要,而且把足球繞一圈回到原點的價值是 0。現實中,盤球路線可以很重要,繞圈亦可能把防守球員引離位置。這是為了簡化以及沒有追蹤數據而接受的誤差。
只計成功動作: 模型不考慮失去控球的風險,因此一名經常嘗試高風險傳球的球員,只會因成功的那些動作得分,不會因失敗的那些扣分。
只用位置: 狀態只由足球位置定義,不含比數、時間、防守壓力等情境。
只計進攻: 防守動作與射門本身不在 xT 的估值範圍之內。
作者在結尾列出幾個後續方向:觀察 xT 在一次控球過程中的變化,用以辨識反擊等進攻模式;把球員的選擇與所屬球隊的 xT 曲面對照,評估他的決策質素;以及球探應用,例如判斷一名從未效力本隊的球員,過去是否經常做出在本隊體系下會帶來高 xT 增值的動作。
這幾項限制其後分別由其他框架處理。KU Leuven 的 VAEP 以機器學習納入比賽情境,並同時估計入球與失球機率;StatsBomb 的 On-Ball Value 與 American Soccer Analysis 的 Goals Added 亦沿同一思路加入風險與防守動作。這些模型較準確,但 xT 至今仍是最容易向教練與球探解釋的一個,這是它持續被使用的主因。
總結:一條公式,一個可解釋的機率
xT 的數學並不複雜。它用事件數據加一個 Markov 假設,把「這個位置有多危險」變成一個有明確意義的機率,並令每一次傳球與盤球都可以被定價。它回答了 Özil 那一傳值多少,也為之後的 possession value 模型定下了基本語言。
概念 | 原文定義 | 實務作用 | 章節 |
網格與四項屬性 m、s、T、g | 16 × 12 共 192 格,由事件數據統計 | 建立 Markov 模型的基礎 | 三 |
xT 公式 | s × g + m × Σ T × xT | 同時計及即時射門與未來威脅 | 四 |
迭代求解 | 由 0 開始迭代 4 至 5 次 | 迭代 n 次即「n 個動作內入球機率」 | 五 |
動作價值 | xT(終點) − xT(起點) | 為每次傳球、盤球定價 | 七 |
逐隊 xT | 以單一球隊數據重新估計 | 對手分析:從哪裡、由誰製造危險 | 八 |
主要限制 | 路徑無關、只計成功動作、只用位置 | 後續模型(VAEP、OBV、g+)的改進方向 | 九 |
Reference
K. Singh. Introducing Expected Threat (xT). karun.in, 2018. https://karun.in/blog/expected-threat.html
K. Singh. Open xT grid, 12 × 8 (open_xt_12x8_v1.json). https://karun.in/blog/data/open_xt_12x8_v1.json
D. Cervone, A. D'Amour, L. Bornn, K. Goldsberry. A Multiresolution Stochastic Process Model for Predicting Basketball Possession Outcomes. Journal of the American Statistical Association, 2016.
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
M. Van Roy, P. Robberechts, T. Decroos, J. Davis. Valuing On-the-Ball Actions in Soccer: A Critical Comparison of xT and VAEP. AAAI Workshop on AI in Team Sports, 2020.
K. W. van Arem, J. Söhl, M. Bruinsma, G. Jongbloed. The trade-off between model flexibility and accuracy of the Expected Threat model in football. arXiv:2511.09457, 2025.



