Volver al simulador
VALIDACIÓN HISTÓRICA

Backtest

Aplicamos el modelo actual a los Mundiales 2014, 2018 y 2022 usando el ELO de fin del año anterior y los 192 resultados de tiempo regular. Lo que sigue es honesto, no es marketing.

Brier score
0.589
menor = mejor · random 0.667
Log loss
0.996
menor = mejor · random 1.099
Accuracy top-1
56.3%
192 partidos · random 33%

Por torneo

MundialNBrierLog lossAccuracy
2014 · Brazil640.5790.96657.8%
2018 · Russia640.5780.97656.3%
2022 · Qatar640.6101.04754.7%

Por etapa

EtapaNBrierLog lossAccuracy
Fase de grupos1440.5760.98359.0%
Octavos240.6231.02350.0%
Cuartos120.6621.07950.0%
Semis60.5460.93550.0%
Tercer puesto30.6501.06833.3%
Final30.6791.13233.3%

El modelo es más sólido en fase de grupos (más muestras, ELO gap más decisivo) y se degrada en KO tardío donde los rivales tienen ELO parecido y la varianza Poisson domina.

Calibración

Cuando el modelo dice "X% de probabilidad", ¿la frecuencia observada coincide? La diagonal punteada es la calibración perfecta - cuanto más cerca, mejor.

0%0%25%25%50%50%75%75%100%100%predichoobservado

Cada bola es un bucket. Tamaño ∝ √(n samples).

Sweep · Recent-form blend

Hipótesis: el ELO se actualiza lento porque su K-factor está calibrado para amistosos + qualifiers. Un equipo que cambió de nivel en el último año queda subvaluado. Probamos un ajuste ELO_eff = ELO + α · (ELO − ELO_X años atrás) con cap ±150, sweepeando α ∈ {0, 0.1, 0.2, 0.3, 0.5} y X ∈ {1, 2, 3, 4, 5} años.

lookback ↓ / α →0.000.100.200.300.50
1 año
0.5892
54.7%
0.5890
55.2%
0.5889
56.3%
0.5889
57.3%
0.5895
55.2%
2 años
0.5892
54.7%
0.5889
55.2%
0.5889
55.2%
0.5891
56.3%
0.5902
54.7%
3 años
0.5892
54.7%
0.5899
54.7%
0.5910
55.2%
0.5922
55.7%
0.5956
54.7%
4 años
0.5892
54.7%
0.5889
56.3%
0.5889
56.3%
0.5893
54.7%
0.5909
54.2%
5 años
0.5892
54.7%
0.5890
56.3%
0.5892
55.2%
0.5899
55.2%
0.5921
54.2%
mejorpeor★ óptimo: α=0.2, lookback=1y

Óptimo: α=0.2, lookback=1 año. Brier 0.5889 vs baseline 0.5892. Δ minúsculo en Brier (~−0.0003), pero accuracy +1.6 puntos (3 partidos más correctos de 192).

Lookback de 3 años empeora claramente - a esa distancia el equipo cambió de lineup y la "tendencia" mete ruido. Lookbacks 1, 2, 4, 5 funcionan parecido. Que el mínimo esté en 1y confirma que el ELO actual ya integra los últimos 12 meses con buen peso.

Decisión: mergeado al motor de producción con α=0.2 y lookback=1y. El cambio se aplica en match.ts vía effectiveElo(). Caveat: el efecto es chico y dentro del ruido posible con n=192. Confirmable expandiendo a WCs 1990-2010.

Tier 1 #3 · Modelo de penales

El motor antes resolvía empates 0-0 en KO con una moneda al aire (50/50). Lo reemplazamos por un modelo Bayesian Empirical shrinkage sobre 103 shootouts históricos en torneos top (Mundial, Eurocopa, Copa América, Copa Asia, AFCON):

rate(team) = (wins + k · 0.5) / (n + k)        k = 10
P(A gana) = rate(A) / (rate(A) + rate(B))
Modelo · n=13 shootouts del backtest
53.8%
Brier 0.2507
Coin flip · baseline
50.0%
Brier 0.2500
AñoEtapaLocal (n, rate)Visitante (n, rate)P(local)ModeloReal✓/✗
2014r16BRA(10, 55%)CHI(1, 45%)55%BRABRA
2014r16CRC(0, 50%)GRC(0, 50%)50%CRCCRC
2014qfNED(5, 40%)CRC(0, 50%)44%CRCNED
2014sfNED(5, 40%)ARG(9, 53%)43%ARGARG
2018r16ESP(7, 53%)RUS(0, 50%)51%ESPRUS
2018r16CRO(1, 45%)DEN(2, 50%)48%DENCRO
2018r16COL(5, 53%)ENG(7, 35%)60%COLENG
2018qfRUS(0, 50%)CRO(1, 45%)52%RUSCRO
2022r16JPN(2, 42%)CRO(3, 54%)44%CROCRO
2022r16MAR(0, 50%)ESP(10, 50%)50%MARMAR
2022qfCRO(3, 54%)BRA(13, 57%)49%BRACRO
2022qfNED(7, 41%)ARG(14, 54%)43%ARGARG
2022finalARG(14, 54%)FRA(7, 53%)51%ARGARG

Honesto: con n=13 shootouts el IC 95% de la accuracy es [26%, 81%]. El +3.8pp del modelo vs coin flip no es estadísticamente significativo. Brier es esencialmente igual.

2018 fue devastador (0/4): Inglaterra rompió la curse, Rusia ganó como anfitrión, Croacia ganó dos seguidos. El modelo no podía saber. 2014 y 2022 fueron sólidos (3/4 y 4/5).

Mergeado de todos modos. Razones: (1) filosóficamente más correcto que un coin flip ciego, (2) no empeora Brier de forma significativa, (3) en el video se vende mejor que "moneda al aire", (4) cuando expandamos el backtest a 1990-2010 tendremos n≥40 shootouts y veremos si la señal es real. Si en ese punto Brier sube, retiramos.

Sweep · Host bonus

El modelo actual le da +100 ELO al equipo anfitrión solo en fase de grupos. Probamos varios valores (0 a 220) y dos políticas (solo grupos vs grupos + KO) para ver cuál minimiza Brier. Los 28 partidos donde uno de los equipos es anfitrión son los que cambian - el resto del dataset se mueve solo por efecto de redondeo.

050801001201501802200.5900.5980.6060.6140.622host bonus (ELO points)Brier (host-only, n=28)actual (100)
solo gruposgrupos + KO

Counter-intuición: aumentar el bonus empeora marginalmente el Brier en cada paso (0.595 → 0.608 al saltar de 0 a 220). Aplicarlo también en KO empeora aún más.

Pero con n=28 partidos el error estándar de Brier es ~0.09 - todos los valores del sweep están dentro del ruido. Direccionalmente sugiere "menos bonus" pero no es estadísticamente decisivo. Los 3 hosts del set (BRA-2014, RUS-2018, QAT-2022) eran o ya-favoritos o demasiado débiles para que el bonus genérico ayudara.

Próximo paso para concluir: expandir el backtest a Mundiales 1990-2010 (+6 torneos = +36 partidos de host). Ahí sí va a haber poder estadístico para confirmar o descartar el bonus actual.

Peores predicciones - el modelo no vio venir

MundialEtapaPartidoPredichaP(resultado real)
2022groupCMR1 - 0BRAgana CMRBRA (82%)3.9%
2022groupARG1 - 2KSAgana KSAARG (77%)6.2%
2022groupTUN1 - 0FRAgana TUNFRA (77%)6.3%
2018groupKOR2 - 0GERgana KORGER (69%)11.1%
2014r16GER0 - 0ALGempateGER (79%)15.4%
2018groupGER0 - 1MEXgana MEXGER (62%)15.6%
2022groupBEL0 - 2MARgana MARBEL (62%)15.7%
2022groupJPN2 - 1ESPgana JPNESP (60%)16.7%

Estos son los batacazos históricos. El modelo les asignó probabilidad muy baja y igual ocurrieron. La frecuencia con la que pasan vs lo que predijimos es donde está la mayor deuda - el Tier 1 (peso al último año, lesiones, host bonus reforzado) ataca exactamente esto.

Mejores predicciones - donde el ELO se impone

MundialEtapaPartidoPredichaP(resultado real)
2014groupCMR1 - 4BRAgana BRABRA (85%)85.1%
2022groupESP7 - 0CRCgana ESPESP (73%)72.8%
2014groupBRA3 - 1CROgana BRABRA (71%)71.3%
2018groupBRA2 - 0CRCgana BRABRA (71%)71.0%
2022r16ARG2 - 1AUSgana ARGARG (70%)70.0%
2022groupFRA4 - 1AUSgana FRAFRA (70%)69.7%
2014groupAUS0 - 3ESPgana ESPESP (69%)69.3%
2022groupPOL0 - 2ARGgana ARGARG (68%)68.3%

Cómo leer esto

  • Brier score mide el error cuadrático medio del vector de probabilidades. 0 = predicción perfecta, 0.667 = predicción uniforme (random). Nuestro 0.59 significa que el modelo aporta señal real, pero deja plata sobre la mesa.
  • Log loss penaliza más las predicciones confiadas y equivocadas. Es la métrica estándar en competencias de prediction markets. 1.00 ubica al modelo entre "pick favorite" y "modelo serio bien calibrado".
  • Accuracy top-1 = en qué % de partidos la clase con más probabilidad fue la que ocurrió. 56% no parece mucho pero hay que recordar que "draw" es difícil de pronosticar (3 outcomes, no 2) y que en 192 partidos el sesgo del torneo (presión, contraataques) le da chance al underdog.
  • Por qué backtest sobre el regulation-time: nuestro modelo Poisson predice goles en 90 minutos. Los partidos definidos en alargue/penales se cuentan como empate al final del tiempo regular - que es exactamente lo que el modelo predice.
  • Lo que NO incluye este backtest: predicciones a nivel torneo (probabilidad de campeón) - requiere correr el bracket de 32 equipos. Lo agregamos en Tier 1.5 cuando esté implementado el formato viejo del Mundial.
Datos · ELO de eloratings.net (snapshot fin de año previo) · Resultados de openfootball/worldcup.json