Poisson v2 – rolling evaluation
Report #1 · 22.08.2026 17:15:58 · source backtest #6
Development rows11 229
Validation rows2 279
Selected configdecay365-prior20-carry50
Holdout readNE
Development rolling test
2019/20–2023/24. Každý zápas používá jen výsledky před jeho časem. Kalibrace je naučená na těchto rolling OOS predikcích; její validní kontrola je až níže na 2024/25.
| Model | Brier | Log loss | Calibration error | Počet |
|---|---|---|---|---|
| Base-rate | 0,2498 | 0,6926 | 0,00 % | 11 229 |
| Poisson v1 | 0,2511 | 0,6988 | 5,98 % | 11 229 |
| Poisson v2 raw | 0,2457 | 0,6845 | 0,78 % | 11 229 |
| Poisson v2 calibrated | 0,2456 | 0,6842 | 0,95 % | 11 229 |
| Poisson v2 Dixon–Coles calibrated | 0,2456 | 0,6842 | 0,95 % | 11 229 |
| Opening market | 0,2405 | 0,6738 | 1,18 % | 11 229 |
Validation 2024/25
Specifikace a kalibrátor jsou zde už zmrazené podle developmentu. Opening market zůstává pouze benchmarkem.
Dixon–Coles vychází pro agregovanou pravděpodobnost Over/Under 2,5 stejně jako kalibrovaný Poisson očekávaně: standardní tau korekce pouze přerozděluje nízké skóre uvnitř intervalu 0–2.
| Model | Brier | Log loss | Calibration error | Počet |
|---|---|---|---|---|
| Base-rate | 0,2499 | 0,6929 | 0,46 % | 2 279 |
| Poisson v1 | 0,2451 | 0,6843 | 4,05 % | 2 279 |
| Poisson v2 raw | 0,2432 | 0,6795 | 0,91 % | 2 279 |
| Poisson v2 calibrated | 0,2435 | 0,6800 | 1,55 % | 2 279 |
| Poisson v2 Dixon–Coles calibrated | 0,2435 | 0,6800 | 1,55 % | 2 279 |
| Opening market | 0,2395 | 0,6718 | 1,44 % | 2 279 |
Výběr hyperparametrů
Řazení je podle development Brier score, při shodě podle development log loss. ROI se do výběru nepoužívá.
| Config | Decay half-life | Shrinkage prior | Carry-over | Dev Brier | Dev log loss | Validation Brier | Validation log loss |
|---|---|---|---|---|---|---|---|
| decay365-prior20-carry50 | 365 dní | 20 zápasů | 50,00 % | 0,2457 | 0,6845 | 0,2432 | 0,6795 |
| decay180-prior20-carry50 | 180 dní | 20 zápasů | 50,00 % | 0,2459 | 0,6849 | 0,2440 | 0,6811 |
| decay90-prior20-carry50 | 90 dní | 20 zápasů | 50,00 % | 0,2462 | 0,6855 | 0,2448 | 0,6827 |
| decay365-prior10-carry50 | 365 dní | 10 zápasů | 50,00 % | 0,2466 | 0,6865 | 0,2430 | 0,6793 |
| decay180-prior10-carry50 | 180 dní | 10 zápasů | 50,00 % | 0,2468 | 0,6869 | 0,2439 | 0,6810 |
| decay90-prior10-carry50 | 90 dní | 10 zápasů | 50,00 % | 0,2470 | 0,6872 | 0,2447 | 0,6826 |
Rolling vývoj po sezonách
| Sezona | V2 raw Brier | V2 calibrated Brier | DC calibrated Brier | V2 raw log loss | V2 calibrated log loss |
|---|---|---|---|---|---|
| 1920 | 0,2461 | 0,2458 | 0,2458 | 0,6853 | 0,6847 |
| 2021 | 0,2462 | 0,2461 | 0,2461 | 0,6856 | 0,6852 |
| 2122 | 0,2463 | 0,2462 | 0,2462 | 0,6858 | 0,6855 |
| 2223 | 0,2465 | 0,2465 | 0,2465 | 0,6862 | 0,6861 |
| 2324 | 0,2434 | 0,2433 | 0,2433 | 0,6798 | 0,6796 |
| 2425 validation | 0,2432 | 0,2435 | 0,2435 | 0,6795 | 0,6800 |
Metodika a zmrazení
{
"model_variants": [
"v2-regularized",
"v2-regularized-calibrated",
"v2-dixon-coles-calibrated"
],
"rolling": "Each match uses only results earlier in chronological order; same-time matches are added after prediction.",
"regularization": "Venue-specific attack\/defence rates are shrunk to the past league baseline with an effective prior.",
"decay": "Exponential half-life decay is applied to historical goals and observation weights.",
"season_carryover": "Previous-season team state is multiplied by a fixed carry-over weight and then shrunk by the regularized prior.",
"league_baseline": "Home and away league baselines use only prior matches plus a fixed neutral prior.",
"newcomer_prior": "Teams without prior state receive the regularized neutral prior.",
"calibration": "Logistic recalibration is fitted only on rolling out-of-sample development predictions.",
"dixon_coles": "One fixed rho alternative; no rho search.",
"market": "Opening market no-vig probability is a benchmark only and is not an input to v2.",
"holdout": "The later season is not queried, read, used, or evaluated in this report.",
"model_tuning": "Hyperparameters selected by development Brier, then development log loss; never ROI."
}
{
"selected_config_id": "decay365-prior20-carry50",
"selected_config": {
"config_id": "decay365-prior20-carry50",
"decay_half_life_days": 365,
"shrinkage_matches": 20,
"league_prior_matches": 20,
"season_carryover_weight": 0.5,
"strength_floor": 0.65,
"strength_cap": 1.5,
"neutral_goal_rate": 1.35,
"dixon_coles_rho": -0.05
},
"primary_metric": "development rolling Brier score",
"secondary_metric": "development rolling log loss",
"roi_used_for_selection": false
}