El precio del mercado es la hipótesis nula. Un modelo solo tiene edge si le gana al Brier del mercado fuera de muestra.
Recalibrar el precio de apertura (tradeable), walk-forward por día. Isotónico le gana al mercado: BSS +0.011 (Brier mkt 0.2308 → modelo 0.2282, n=1818). Favorite-longshot a=0.82.
El cierre es más nítido que la apertura (Brier 0.030 vs 0.230) — pero el cierre está casi resuelto. Sesgo por cubeta de apertura (gap = realizado − precio apertura):
| apertura | n | precio | realiz. | gap |
|---|---|---|---|---|
| [0.0,0.2) | 157 | 0.08 | 0.10 | +2.6pp |
| [0.2,0.4) | 127 | 0.30 | 0.26 | -3.6pp |
| [0.4,0.6) | 1486 | 0.50 | 0.42 | -7.5pp |
| [0.6,0.8) | 122 | 0.71 | 0.57 | -13.2pp |
| [0.8,1.0) | 65 | 0.89 | 0.86 | -2.8pp |
λ=2.82 goles/partido (n=17 liquidados, alta anotación) → P(O2.5)=0.54; realizado 0.53. El mercado O/U-2.5 (n=201) abrió en 0.46 pero solo 0.29 se cumplió → Over sobrevalorado ~+18pp. Mismo fade, otro ángulo.
Media global 1.41 goles/equipo/partido; 34 equipos con ~1 partido c/u. Las tasas se colapsan hacia la media (no podemos distinguir fuerza de equipo a esta n). Dixon-Coles por-equipo queda no-identificable hasta ampliar datos.
Cómo ampliar más allá del Mundial: node backfill-history.mjs <serie1,serie2,…>
(con LINE_TYPES=all para otros deportes). Los modelos price-only (1 y 2) corren sin cambios en cualquier serie;
los de fútbol (3 y 4) se vuelven fiables al haber varios partidos por equipo.