由準確率轉向增量資訊:足球預測應如何重新評估模型價值 的複本
足球預測文獻有一種常見的報告方式:模型三向準確率做到五成三,旁邊放一個博彩公司的準確率,然後說「與市場相若」。這句話表面上有意思,實際上迴避了唯一重要的問題:模型有沒有帶來市場尚未計入的資訊。
論文中把這個問題形式化成一個可以直接估計的數字:在對數意見池(logarithmic opinion pool)裏面,結構模型相對去除抽水後的收盤價,獲得的權重是多少。他用19季意甲數據跑出來,而且穩定。
本文重點
論文做兩件事。前半部是一個徹底的否定結果:一個規格良好的 Dixon-Coles 模型,無論以入球還是射門中門作為建模目標,相對 Pinnacle 收盤價的增量資訊都無法與零區分。作者刻意把否定結果做到不能推卸給「方法不夠好」或「目標太嘈吵」。
後半部是建設性的:既然機率預測本身贏不了市場,價值就要建在校準良好的機率之上。作者定義 match leverage,量度一場比賽的勝負對球隊全季目標的影響幅度,並且證明可以用單次模擬的事後條件化來估計。
一、準確率為何回答錯了問題
準確率有兩個參照點經常被忽略。下限不是隨機猜測的 33%,因為主場優勢本身已經把眾數類別推高:這批語料裏主勝佔 44.1%,和局 26.2%,客勝 29.8%,所以「永遠揀主勝」已經有 44.1%。作者採用的 walk-forward base rate 預測器在測試期得 40.6%。
上限則是去除抽水後的市場價格。真正的問題不是模型能否接近這條線,而是模型有沒有帶來這條線未包含的東西。
更嚴重的設計錯誤是把博彩賠率當成特徵餵給分類器,然後拿結果的準確率同博彩公司比較。這種流程消耗了市場的預測,再因為接近市場而獲得肯定;正確的讀法是流程在丟棄資訊,而不是在增加資訊。
二、勘誤:作者對自己舊文的清算
這篇論文起初是作者對 Pitcan(2018)的修正。舊文報告十季意甲三向準確率 53.0%,並與博彩市場的 55.3% 作比較。作者逐項列出當中的問題,態度相當坦白。
框架上,舊文以 33% 作為基準,而眾數規則已有 44.1%,所以報告的優勢有約七個百分點根本不是優勢。舊文同時把 Bet365 賠率餵入分類器,又註明「賠率對預測影響不大」,並歸因於賠率本身沒有資訊。
算術上的問題更具體。兩張混淆矩陣都標示為 Linear SVM,而其中一張的對角線其實對應 AdaBoost 的數字。客勝只佔測試集 60/218,即 27.5%,所以「永不預測客勝」已有 72.5%;舊文報告的四個客勝準確率沒有一個實質超過這條常數規則,其中三個更低於它。主勝方面,Linear SVM 報 57.8%,恰好等於「永不預測主勝」的 126/218,意味模型從未預測過任何一場主勝。
n = 218 時,準確率接近一半的標準誤約 0.034,而舊文報告的多類準確率由 47.2% 至 53.0%,首尾相距不足兩個標準誤,不足以支持任何排名。至於時間加權的近況特徵,舊文以 1/n 而非 Σwᵢ 作分母,n = 5 時 Σe⁻ⁱ = 0.578,加權特徵的尺度只有未加權版本的約 1/8.7。衰減本身亦相當劇烈:63.6% 的權重落在最近一場,Kish 有效樣本量只有 2.1 場,名義上五場的窗口實際只帶約兩場的資訊,而且衰減率是斷言出來,不是估計出來。
三、對照組要做對:Shin de-vig 與擬合衰減率
去除抽水的方法會影響結論。按比例歸一化會留下 favourite-longshot bias,所以作者採用 Shin(1993)的模型,把報價視為莊家面對比例為 z 的內幕交易者所形成。隱含機率滿足
pᵢ(z) = [√(z² + 4(1−z)πᵢ²/Π) − z] / [2(1−z)],其中 πᵢ = 1/oᵢ,Π = Σπⱼ
由於 ∂pᵢ/∂z < 0,行和對 z 嚴格遞減,根可以用二分法定位。語料內 17,479 個完整賠率盤的擬合 z 中位數為 0.017,最大值 0.061。
結構模型方面,Dixon-Coles 的設定是標準的:log λ = γ + αₕ − δₐ,log μ = αₐ − δₕ,加上四格低比數修正 τρ。作者順帶指出一個容易寫錯的細節:(0,1) 與 (1,0) 兩格的修正項不能對調,對調之後總機率不再守恆,殘差為 ρe^(−λ−μ)(λ−μ)²。
識別性方面,(α, δ, γ) → (α + c1, δ + c1, γ) 令兩個 rate 都不變,所以要施加 Σαⱼ = 0。訓練窗口內未出現的球隊取曝光加權的聯賽平均,而不是取零:sum-to-zero 只施加於攻擊而非防守,兩者同時設零會令升班馬獲得優於平均的防守評級。
衰減率 ξ 在驗證期以格點搜尋選出,得到內點最優 ξ = 0.002/日,半衰期 347 日,明顯慢過 Dixon-Coles(1997)在九十年代末英格蘭數據上報告的 0.0065。這個差異有數據支持:主場優勢在樣本期內大幅侵蝕,主勝率由 2007–13 的 47.5% 跌至 2023–26 的 40.2%,主客入球比由 1.38 跌至 1.14。不做時間加權的模型會錯誤陳述目前主場優勢的幅度。
四、主結果:市場在七個測試季全勝
驗證期為 2013–14 至 2018–19(n = 2,280),測試期 2019–20 至 2025–26(n = 2,660),只評分一次。主要指標是 Ranked Probability Score,因為結果有序,而準確率與 Brier 都無法區分「主勝預測遇上客勝」與「主勝預測遇上和局」的差別。
模型 | RPS | 95% CI | Log loss | Brier | 準確率 |
Market(Shin de-vigged) | 0.1905 | [0.1856, 0.1957] | 0.9620 | 0.5717 | 54.8% |
Market + model pool | 0.1905 | [0.1856, 0.1957] | 0.9620 | 0.5717 | 54.8% |
Dixon-Coles(已校準) | 0.1972 | [0.1921, 0.2024] | 0.9858 | 0.5862 | 53.4% |
射門中門變體 | 0.2001 | [0.1959, 0.2042] | 0.9959 | — | 52.9% |
Base rate(walk-forward) | 0.2318 | [0.2292, 0.2344] | 1.0846 | 0.6574 | 40.6% |
Uniform | 0.2340 | [0.2312, 0.2367] | 1.0986 | 0.6667 | 40.6% |
配對 bootstrap 給出的差距是 +0.0067,95% 區間 [0.0046, 0.0088],相對自身抽樣誤差而言差距明顯。逐季看亦沒有反轉:市場在七個測試季全部 RPS 較低,差距介乎 0.0044 至 0.0101。
值得單獨一提的是重建模型的 53.4% 對舊文的 53.0%。多九個球季、一個有原則的 likelihood、一個擬合出來的衰減率、無洩漏的驗證流程,換來 0.4 個準確率百分點,遠在雜訊之內。作者的解讀是三向比賽準確率已接近天花板,投放在這個指標上的努力,對應的是一個已經停止反應的量。
五、意見池權重 0.000:確認它不是最優化的假象
設 pᴹ 為去抽水後的市場預測,pˢ 為結構模型的預測,對數意見池為
p⁽ʷ⁾ᵢ ∝ (pᴹᵢ)^(1−w) · (pˢᵢ)^w,i ∈ {H, D, A},歸一化後求和為 1
w 在驗證期以最小化樣本外 log loss 擬合,結果是 0.000。由於這個值落在可行區間的邊界,單靠擬合值無法區分「真的沒有貢獻」與「最優化器停在邊界」。作者因此描出整條 log loss 剖面:在 w ∈ [0, 1] 上,驗證期與測試期的 log loss 都單調遞增,兩者的 argmin 都是 w = 0。這代表結果不依賴驗證/測試的切分,即使有人不當地直接在測試集上擬合權重,答案仍然是零。
再進一步,把剖面延伸到 w ∈ [−1, 1] 可以檢查無約束最小值是否落在負區。驗證期的無約束最小值確實是內點,ŵ = −0.225。凍結這個權重帶到測試期,平均 log loss 改善 0.00062(95% CI [−0.00105, 0.00231]),平均 RPS 改善 0.00021(95% CI [−0.00029, 0.00071]),兩個區間都包含零。
作者只讀符號,不讀幅度。負權重的作用是用結構模型去除市場預測,效果是把它變得更銳利,而下一節會顯示結構模型正是兩者之中較平坦的一個。所以無約束最優解扮演的是價格的溫度修正,而不是模型輸入資訊的通道。
六、射門中門的反證
最自然的反駁是模型失敗源於入球本身太稀疏,而不是方法不足。作者用同一套機器改配射門中門重跑一次。Expected goals 是標準的補救,但屬專有數據,而且沒有免費授權來源覆蓋意甲至 2007 年,所以取 pre-xG 的射門中門作為創造機會的代理。
轉換方式是單一的聯賽層面終結係數,以同一窗口、同一衰減權重估計:λ̂ = κ_H λ_S,μ̂ = κ_A μ_S,擬合值 κ_H = 0.309,κ_A = 0.317。係數刻意不做球隊層面,因為球隊間的終結差異正是這個替換想要移除的雜訊。低比數修正不予沿用,因為它的參數會變成針對射門數估計,所以這個變體是轉換後 rate 上的獨立 Poisson。
意見池 | Market | 入球模型 | 射門中門模型 |
Market + shots | 1.00 | — | 0.00 |
入球 + shots | — | 0.65 | 0.35 |
Market + 入球 + shots | 1.00 | 0.00 | 0.00 |
單獨對入球模型,射門中門變體拿到 0.35 的權重,證明它確實帶有入球模型欠缺的資訊。對市場則是 0.00,而在三方意見池中兩個結構模型同時歸零。兩個建基於不同目標的模型家族,各自持有對方沒有的資訊,而收盤價已經吸收了兩者。作者認為這是在沒有授權事件數據的條件下,能夠取得的最強否定結果形式,並指出 xG 作為同一過程化思路的精細版本,最可能是令射門變體更銳利,而不是扭轉它與市場的關係。
七、校準與銳利度:準確率掩蓋了兩件事
把主勝指示變數對預測 log-odds 做 logistic regression,結構模型的校準斜率是 0.995,市場是 1.103,兩者的期望校準誤差大致相同。
模型 | ECE(H) | ECE(D) | ECE(A) | 斜率(H) | 截距(H) |
Dixon-Coles | 0.0208 | 0.0151 | 0.0270 | 0.995 | −0.054 |
Market(Shin de-vigged) | 0.0285 | 0.0095 | 0.0253 | 1.103 | −0.090 |
Base rate | 0.0164 | 0.0102 | 0.0062 | 0.191 | −0.321 |
斜率接近 1 代表模型報出的機率可以按面值使用,市場斜率高於 1 則代表在這個邊際上略為欠缺自信。市場的優勢明顯來自銳利度,那才是 RPS 差距的來源。結構模型的重校準溫度擬合為 0.99,即幾乎不需要修正。
實務上的分別是:「市場贏過模型」與「模型的機率不可信」是兩句不同的話,這裏只有前者成立。base rate 那一行示範了相反的病態,它的校準幾乎完美,斜率卻只有 0.191,反映根本沒有可供校準的訊號。
八、Match leverage:建在校準機率之上的產品
如果結構模型無法在比賽結果上贏過收盤價,值得建的產品就不是比賽結果預測,因為球會可以免費取得。市場不提供的,是主宰球會決策的那個量:某一場比賽對全季目標有多重要。
設 Ω 為以最終聯賽名次集合表達的球季目標,例如護級、歐洲賽資格或爭標。對餘下賽程中的一場比賽 m:
L_m = P(Ω | 球隊贏 m) − P(Ω | 球隊輸 m)
估計方法有一項條件需要說清楚。設 S 為 m 的比數,R 為其餘所有餘下比賽的比數,目標指示變數是確定性函數 f(S, R)。若模擬器抽樣時 S ⊥ R,則對任何結果集 W:
P(f(S, R) = 1 | S ∈ W) = Σ_{s∈W} P(S = s | S ∈ W) · P(f(s, R) = 1)
右邊正是「強制 m 取某結果並重抽其餘比賽」所得的干預量。條件化於 S 不會對 R 造成選擇偏誤,原因就是兩者獨立;對手在 m 取得的分數屬於 S 的一部分,是被條件化而非被邊際化。因此單次模擬就足以同時估計所有比賽的 L_m,用事後條件化即可。
作者以兩種方式驗證這個等價關係:對一個四隊縮小聯賽窮舉全部 59,049 種聯合結果,事後條件化與強制結果的計算在機器精度上一致;以及在下述應用案例上以 10⁶ 次重複直接比較強制結果模擬,十二場比賽中沒有一場超出 Monte Carlo 誤差,最大 |z| 為 1.17。
實際操作是模擬餘下球季 20,000 次,由每場的聯合分布抽取完整比數,令得失球差自然產生,再按分數、得失球差、入球數排序。
應用:Fiorentina 的護級槓桿
模擬起點為 2026 年 3 月 1 日,球隊排第 16 位、24 分、餘下十二場,目標為最終位置十七名或以上。
對手 | 主客 | P(Ω\ | 勝) | P(Ω\ | 和) | P(Ω\ | 負) | L_m |
Lecce | 客 | 0.987 | 0.959 | 0.914 | 0.073 | |||
Cremonese | 客 | 0.986 | 0.957 | 0.922 | 0.063 | |||
Verona | 客 | 0.982 | 0.952 | 0.927 | 0.055 | |||
Genoa | 主 | 0.984 | 0.962 | 0.932 | 0.053 | |||
Udinese | 客 | 0.985 | 0.961 | 0.933 | 0.052 | |||
Sassuolo | 主 | 0.982 | 0.956 | 0.932 | 0.050 | |||
Lazio | 主 | 0.988 | 0.960 | 0.942 | 0.046 | |||
Parma | 主 | 0.981 | 0.955 | 0.936 | 0.045 | |||
Atalanta | 主 | 0.990 | 0.966 | 0.949 | 0.041 | |||
Juventus | 客 | 0.988 | 0.971 | 0.951 | 0.037 | |||
Roma | 客 | 0.988 | 0.968 | 0.952 | 0.036 | |||
Inter | 主 | 0.988 | 0.971 | 0.955 | 0.033 |
排序與直覺相反。移動護級機率最多的是對護級直接對手的比賽,對強隊的比賽移動最少,因為兩個分支之下都預期會輸,這件事早已計入球季分布。主場輸給最終冠軍 Inter,護級機率只損失 3.3 個百分點;作客輸給 Lecce 則損失 7.3 個。客場一戰的槓桿是主場一戰的 2.25 倍,差距約為八個 Monte Carlo 標準誤,不是模擬雜訊。
這是一句用機率表達的輪換與負荷管理陳述:Inter 那場是讓疲勞的主力休息成本最低的地方,Lecce 作客則是成本最高的地方。任何比賽結果預測都傳達不到這一點。
作為連貫性檢查而非預測成功的宣稱,模擬給出期望最終得分 41.4 分,實際 42 分,護級機率 96.4%,而 Fiorentina 最終排第 15。單一實現屬弱證據,但足以顯示球季層面的聚合沒有嚴重失準,而這是採用槓桿排序的最低前提。
九、可重現性與作者做過的自我攻擊
否定結果是那種很容易由編碼錯誤製造出來的結論,所以作者交代了排除這種可能的做法。全部結果來自公開數據與一個有 126 個測試的版本化 Python 套件。除單元測試之外,四個部件——抽水移除求解器、likelihood 及其識別性、walk-forward 框架、槓桿估計器——交由未曾參與撰寫的第三方作對抗式審計。
審計以陽性對照確認沒有前視偏誤:注入一個一行的邊界錯誤,測試期 RPS 改善 0.0123 並且反轉市場比較的符號,而所報告的流程並不呈現這個特徵。審計另發現四項缺陷,全部在產生本文結果之前修正,其中兩項是「甚麼都沒有斷言」的測試,一項在刻意洩漏的框架下仍然通過,另一項只驗證了機率總和為一。
平台敏感度亦有交代。同一台機器上兩次完整流程逐位元一致,但跨機器不一致。擬合不涉及隨機種子,唯一的變異來源是浮點歸約次序在不同線性代數版本之間的差別。換機器重跑令收斂參數在第五位小數移動,傳到校準溫度是 0.99011 對 0.99009,在測試期令 2,660 場之中的一場由錯變對。主要表格在所印精度下全部維持,兩項期望校準誤差移動 0.0003。重現者應預期三位小數的一致,而非完全相同。
十、限制
作者列出的限制,大部分都指向同一個方向。
沒有球員層面資訊。 傷停、掛牌、休息日、轉會都沒有進入模型,這是相對球會內部資訊集的最大缺口,亦是剩餘優勢最可能存在的位置。
沒有 expected goals。 射門中門把補射與遠射視為等價。授權事件數據會令過程化變體更銳利,但第六節的結果傾向精細化而非反轉。
基準內含後期資訊。 收盤價包含模型從未見過的臨場消息,所以 0.0067 的 RPS 差距有一部分屬資訊不對稱,而非建模缺陷。這一點對模型不利,對本文的結論有利。
單一聯賽、單一時期。 市場效率未必轉移到博彩市場較薄的聯賽,而主場優勢的侵蝕本身已顯示數據生成過程並不平穩。
槓桿只有單一目標。 L_m 的定義條件化於一個名次區間。球會若要在護級與盃賽之間取捨,需要的是結果上的效用函數,而不是一個機率差。
總結:報告習慣要改的兩件事
作者建議的改動很具體。第一,以 base rate 而非隨機猜測作為下限,因為眾數類別佔 44% 的結果,uniform 不是有意義的基準。第二,在有市場價格可用時,報告相對它擬合出來的意見池權重。這是一個數字,計算成本低,而且直接回答讀者真正想問的問題;準確率並排一個市場準確率做不到這件事,因為兩個預測的相關程度未知。
至於「校準良好但不夠銳利」這個發現,它的建設性讀法在於:球會不能靠這個模型交易,但可以聚合它。第七節的球季模擬直接消耗機率,而聚合所要求的是機率名副其實,不是機率盡量極端。
技術概念 | 實務作用 | 章節位置 |
Shin de-vig | 移除抽水並修正 favourite-longshot bias | 第三節 |
擬合衰減率 ξ | 反映主場優勢的長期侵蝕,半衰期 347 日 | 第三節 |
Ranked Probability Score | 有序結果下較準確率與 Brier 恰當的評分 | 第四節 |
對數意見池權重 ŵ | 量度模型相對市場的增量資訊,建議作為頭條指標 | 第五節 |
Log loss 剖面 | 區分真正的邊界解與最優化假象 | 第五節 |
射門中門變體 | 排除「目標太嘈吵」這個解釋 | 第六節 |
校準斜率 vs 銳利度 | 拆開準確率所混同的兩種性質 | 第七節 |
Match leverage L_m | 把賽程重要性表達成護級機率差,可用於輪換決策 | 第八節 |
S ⊥ R 獨立條件 | 令單次模擬的事後條件化等價於干預重抽 | 第八節 |
Reference
Y. Pitcan. Does a Structural Model Add Anything to the Closing Price? Calibrated forecasting, incremental information, and match leverage in the Italian Serie A. arXiv:2608.11505v1 [stat.AP], 11 Aug 2026.
M. J. Dixon, S. G. Coles. Modelling association football scores and inefficiencies in the football betting market. JRSS Series C, 46(2), 1997.
M. J. Maher. Modelling association football scores. Statistica Neerlandica, 36(3), 1982.
H. S. Shin. Measuring the incidence of insider trading in a market for state-contingent claims. The Economic Journal, 103(420), 1993.
E. Štrumbelj. On determining probability forecasts from betting odds. International Journal of Forecasting, 30(4), 2014.
C. Genest, J. V. Zidek. Combining probability distributions: A critique and an annotated bibliography. Statistical Science, 1(1), 1986.
E. S. Epstein. A scoring system for probability forecasts of ranked categories. Journal of Applied Meteorology, 8(6), 1969.
A. Constantinou, N. Fenton. Solving the problem of inadequate scoring rules for assessing probabilistic football forecast models. Journal of Quantitative Analysis in Sports, 8(1), 2012.
T. Gneiting, A. E. Raftery. Strictly proper scoring rules, prediction, and estimation. JASA, 102(477), 2007.
D. Forrest, J. Goddard, R. Simmons. Odds-setters as forecasters: The case of English football. International Journal of Forecasting, 21(3), 2005.
代碼與數據流程:github.com/pitcany/seriea-leverage
原文 Paper




