比分模型最容易錯估邊啲比分?
波膽模型唔係只睇「第一名有冇估中」。 真正做模型 QA,要逐格比較實際頻率(Observed)同 模型概率(Expected), 睇 0:0、1:0、1:1、2:1 呢啲比分係咪長期高估或者低估。 呢啲差值就係比分矩陣殘差(Residual)。 目前 Pack 未重新輸出完整逐場比分矩陣,所以本文唔製造實際 residual 排名, 而係先鎖定可以重複使用嘅檢驗方法。
直接答案:最容易錯嘅唔一定係最高概率比分,而係長期殘差最大嘅格
某個比分出現得多,唔代表模型一定錯得多。 真正要睇係: 模型原本預期幾多,同實際出現幾多。
Residual(h,a) = Observed(h,a) − Expected(h,a)
如果 0:0 實際比模型長期高, residual 就係正; 如果 1:0 實際比模型低, residual 就係負。 想睇模型概率本身有冇長期校準,可以配合 波膽模型的比分概率準確嗎?。
最簡單殘差:Observed − Expected
假設一批比賽入面,模型平均認為 1:1 有 9% 概率, 實際就出現 11%:
Residual(1:1) = 11% − 9% = +2pp
+2pp 代表模型低估 1:1; -2pp 就代表模型高估。 呢個做法直觀,但未考慮「細概率格本身波動會較大」, 所以正式 QA 仲要睇標準化殘差。
點解唔可以只睇百分點差?要考慮 expected count
假設兩格都差 2 個百分點, 一格模型原本預期 20%,另一格只預期 2%, 統計意義完全唔一樣。
一個簡單 Pearson residual 可以寫成:
r = (O − E) / √E
其中 O、E 應該用 count。 |r| 愈大,代表實際同模型嘅偏差相對 expected count 愈明顯。 但實際使用時仍要小心多重比較,因為比分矩陣有好多格。
數學例子:同一個百分點差,標準化之後重要性可以唔同
以下係純示範數字,假設有 1,000 場比賽, 唔代表 HKBetNet 現有回測結果。
| 比分 | Observed | Expected | Residual | Pearson r |
|---|---|---|---|---|
| 0:0 | 8.2% | 6.4% | +1.8pp | +2.25 |
| 1:0 | 11.8% | 13.2% | -1.4pp | -1.22 |
| 0:1 | 7.1% | 8.3% | -1.2pp | -1.32 |
| 1:1 | 10.9% | 9.4% | +1.5pp | +1.55 |
| 2:1 | 8.7% | 8.1% | +0.6pp | +0.67 |
| 1:2 | 5.9% | 6.1% | -0.2pp | -0.26 |
呢個例子可以睇到: 唔係所有 +1pp/-1pp 都同樣重要。 如果 expected count 本身細,少量差距都可能令 standardized residual 明顯放大。
真正有用嘅做法:將整張比分矩陣殘差畫成 heatmap
對每個比分格 (h,a) 計:
R(h,a) = Observed(h,a) − Expected(h,a)
然後就可以睇偏差係集中喺:
- 0:0、1:0、0:1、1:1 呢類低比分格;
- 主隊方向,例如 2:0、2:1;
- 客隊方向,例如 0:2、1:2;
- 高比分尾部,例如 3:2、4:1;
- 某個聯賽或者某個賽季。
如果偏差集中喺四個低比分格,就可以同 Dixon-Coles 低比分修正 對照; 如果整條主隊方向都偏高/偏低,就可能要睇 主場優勢點樣改變比分矩陣。
殘差只話你「邊度錯」,唔會自動話你「點解錯」
例如 0:0 長期正殘差,可能有幾個原因: 獨立泊松低估低比分相關、聯賽 λ 太高、主客 λ 收縮不足, 或者某些比賽類型喺樣本入面比例過高。
2:1 長期負殘差亦唔代表「2:1 天生被高估」。 可能係主場係數、球隊攻守、聯賽基準或者 dependence structure 一齊造成。
見到殘差之後,點先知道修正真係有用?
最容易 overfit 嘅做法, 就係見到邊格高就直接手動加,邊格低就直接減。 正確做法係分訓練/驗證時間段:
| 步驟 | 做法 |
|---|---|
| 1 | 用歷史訓練資料找 systematic residual |
| 2 | 提出修正,例如 Dixon-Coles、主場係數、聯賽分層 |
| 3 | 喺未見比賽重新輸出完整矩陣 |
| 4 | 比較 Log Loss、Brier、calibration 同 residual heatmap |
保留修正 ⇔ Out-of-sample Error(new) < Error(baseline)
如果訓練期 residual 變靚,但未見比賽冇改善, 就係追住 noise。
編輯研究經驗:最容易誤判嘅係「某個比分錯好多,所以模型要改」
HKBetNet 做比分矩陣 QA 時, 唔會因為某段樣本 0:0 或 2:1 偏差大,就即刻改凍結參數。 先會睇偏差係咪連續幾個時間窗都同方向, 再拆聯賽、主客場同賽季。
第二個實際問題係尾部比分。 3:3、4:2、4:3 呢類格本身 expected count 細, 一兩場就可以令百分比殘差睇落好誇張。 所以尾部一定要配 standardized residual 同樣本量, 唔可以淨係睇 pp 差。
賽事情境例如紅牌、早段入球同補時可以解釋異常場, 但人工經驗只用嚟幫手找原因, 唔會直接取代未見樣本驗證。
學術上點解 residual diagnosis 係模型更新核心?
Maher(1982)建立足球比分泊松模型, 本身就要求用實際比分資料去檢查分布假設。 Dixon & Coles(1997)之所以加入低比分修正, 正正係因為普通獨立泊松喺 0:0、1:0、0:1、1:1 呢啲位置有系統性偏差。
Gneiting & Raftery(2007)進一步強調, 概率模型唔應只靠單一命中率評價, 而要用 proper scoring rules 檢查整個預測分布。 所以 residual heatmap 最好同 Log Loss、Brier 同 calibration 一齊睇。
- Maher (1982):Modelling association football scores
- Dixon & Coles (1997):Modelling association football scores and inefficiencies in the football betting market
- Gneiting & Raftery (2007):Strictly Proper Scoring Rules, Prediction, and Estimation
HKBetNet 自己嘅資料、模型凍結、回測同更新方法,可以再睇 編輯與研究方法。
限制與不能推出的結論
- 目前 Pack 未重新輸出完整逐場比分矩陣,因此本文唔發布實際 residual 排名。
- 示範 residual 數字只係方法例子,唔係 HKBetNet 目前模型實測。
- Observed−Expected 只係第一層診斷;尾部比分尤其要配 expected count 同 standardized residual。
- Correlation、residual 同 dependence 都唔等於因果。
- 單一小樣本偏差唔足以支持永久改模型;要先確認跨時間、跨聯賽是否重複。
- 修正模型是否值得保留,應以未見比賽 Log Loss、Brier、calibration 同 residual 是否一齊改善為準。
- 模型概率唔係投注建議,更加唔係保證盈利。