VolverLa cuenta final: lo simple es mejor
Calling Card

La cuenta final: lo simple es mejor

ProyectoWC 2026 · ML Predictor
CategoríaMachine Learning
Fecha20 Jul 2026
Lectura16 min
PythonXGBoostDixon-ColesPoissonData ScienceBacktesting
Reality Check No Hype
Dev Log · Machine Learning

El Mundial terminó, los 104 partidos ya tienen resultado, y por fin puedo hacer lo que prometí al cierre de la primera parte: medir mis tres modelos con la misma crudeza con la que los construí.

En la primera parte conté cómo casi me engaño a mí mismo intentando meterle Inteligencia Artificial a un predictor de resultados del Mundial 2026, y cómo terminé apagando esa capa de IA para quedarme con un modelo estadístico más simple, pero mucho más honesto. Prometí que cuando terminara el torneo iba a compartir los resultados, sin maquillaje. Bueno: el Mundial ya tiene campeón, los 104 partidos —72 de la fase de grupos más 32 de eliminación directa— ya tienen resultado, y la tabla del concurso de pronósticos de Mercado Pago dejó de moverse. Es hora de abrir la caja y mirar los números.

Spoiler de arranque, porque en este blog no vendo suspenso falso: el sistema más simple le ganó al más sofisticado. Y la razón por la que terminé en el puesto 15° de 10,97 millones de participantes —y no bastante más arriba— no fue un error del modelo. Fue mío.

01

El marcador final: tres modelos, 104 partidos, un solo ganador inesperado

Para esta segunda parte corrí, en paralelo, tres versiones distintas del sistema durante todo el torneo:

  • Tradicional: la versión estática de la Parte 1. Se entrena una sola vez antes de cada fase del torneo y después no se toca hasta la fase siguiente.
  • Cualitativa: la misma base, pero con la capa de análisis asistido por IA que ya describí — esa que solo interviene cuando encuentra un hecho concreto y verificable, y que en todo el torneo terminó ajustando apenas 2 de los 104 partidos.
  • Progresiva: el mismo modelo de base, pero reentrenado por completo cada vez que había resultados nuevos disponibles — no una vez por fase, sino prácticamente partido a partido.

Las tres compiten bajo la misma regla del concurso: 6 puntos si acertás el resultado exacto, 3 si acertás quién gana (o si es empate) sin acertar el marcador, y 0 si te equivocás de lado. En cualquiera de sus tres versiones, el sistema no elige el resultado que más chances tiene de darse — elige el que más puntos te deja en promedio si lo jugás muchas veces. A veces esas dos cosas no son el mismo marcador, y ahí es donde empieza a notarse la diferencia entre "jugar para no perder" y "jugar para acertar".

Con los 104 resultados reales ya cargados, así quedó la tabla:

VariantePartidosExactos (6 pts)Dirección (3 pts)Fallos (0 pts)Puntos totalesPromedio/partido
Tradicional (estático)1042053312792.68
Cualitativa (+ IA con hechos)1042052322762.65
Progresiva (reentreno continuo)1041650382462.37

No es lo que esperaba escribir. La variante más cara de mantener —la que se reentrenaba con cada resultado nuevo, la que en teoría tenía más información al momento de cada pronóstico— terminó 33 puntos por debajo de la versión que armé una vez y dejé quieta. La capa cualitativa, con apenas dos intervenciones de IA en todo el torneo, quedó prácticamente empatada con la estática.

02

El reentrenamiento progresivo: enseñarle al modelo a cambiar de opinión

Lo que hace la variante progresiva es actualizar los datos cada vez que hay resultados nuevos —un amistoso, una fecha del Mundial, lo que sea— el modelo estadístico completo se vuelve a entrenar desde cero con toda la información disponible hasta ese momento, en vez de esperar a la fase siguiente.

Esto tiene una consecuencia que no es obvia hasta que la ves en acción: un modelo bien calibrado es sensible. No hace falta que juegue el equipo que estás mirando para que su pronóstico cambie — alcanza con que se jueguen otros 30 partidos en cualquier parte del mundo, porque esos resultados mueven los parámetros generales del modelo (qué tan fuerte pesa, en promedio, jugar de local; qué tan seguido se dan los empates, etc), y esos parámetros afectan a todos los partidos pendientes al mismo tiempo.

03

Ecuador vs. Alemania: autopsia de un giro de 180°

Este partido es el mejor ejemplo de lo que gana —y de lo que pierde— un sistema que se reentrena en vivo. Lo seguí a través de 9 ajustes del modelo entre el 9 y el 18 de junio:

CorridaFechaP(gana Ecuador)P(empate)P(gana Alemania)Pick
v19 jun38.9%39.4%21.7%0-0
v212 jun45.9%36.4%17.7%1-0
v413 jun40.6%38.4%21.0%0-0
v514 jun44.6%37.6%17.9%1-0
v616 jun27.1%32.4%40.5%0-1
v817 jun29.6%32.3%38.2%0-1
v918 jun29.0%33.3%37.7%1-1

Entre el 14 y el 16 de junio, Ecuador pasó de ser favorito claro (44.6% de ganar) a ser candidato a perder (27.1%). ¿Qué cambió en esos dos días? Ningún partido de Ecuador ni de Alemania. Lo que pasó fue que se jugaron 30 amistosos internacionales en distintas partes del mundo el 9 y 10 de junio, y esos resultados movieron un parámetro que el modelo comparte entre las 218 selecciones que tiene cargadas: cuánto pesa, en promedio, jugar de local. Un ajuste chico en ese número global alcanzó para invertir por completo la lectura de un partido puntual. Así de sensible es un modelo bien calibrado frente a datos frescos — y así de rápido puede cambiar de opinión un sistema que se reentrena todo el tiempo, en vez de una vez por fase.

Evolución del pronóstico de Ecuador vs. Alemania a lo largo de 9 reentrenamientos

El resultado real, jugado el 25 de junio, fue Ecuador 2-1 Alemania. Ganó el equipo al que el modelo le había bajado el pulgar dos semanas antes. Ni la versión tradicional (que se había quedado congelada en un empate 0-0 desde la primera corrida) ni la progresiva (que llegó al partido con Alemania como favorita) acertaron el resultado. Las tres variantes —tradicional, cualitativa y progresiva— sacaron 0 puntos en este partido. El giro de opinión del modelo estaba técnicamente bien fundamentado: había datos nuevos, el ajuste tenía lógica. Y aun así, el fútbol hizo lo que quiso. Me quedo con este partido como el mejor recordatorio de que "estar mejor informado" no es lo mismo que "tener razón".

04

Aciertos, errores y una moneda al aire: lo que separó a las tres versiones

Ecuador-Alemania es un caso, pero no es el patrón general. De los 104 partidos, hubo 38 donde la versión tradicional y la progresiva no coincidieron en su pronóstico. El reentreno constante ganó esa apuesta en 6 casos, la perdió en 13, y en 19 no cambió el puntaje final aunque el pronóstico fuera distinto. Un ejemplo de cada tipo:

Cuando la progresiva acertó — en Jordania vs. Argelia (22 de junio), la versión tradicional se había quedado en un pronóstico que acertaba quién ganaba pero no el marcador (3 puntos); la progresiva, con información más reciente de la zona, ajustó hasta el marcador exacto y sumó el máximo posible. Con Curazao vs. Costa de Marfil (25 de junio) pasó lo mismo: la tradicional acertó el ganador, la progresiva afinó hasta el resultado justo.

Cuando la progresiva se equivocó — Ghana vs. Panamá (17 de junio) es el ejemplo más claro, porque mezcla un error con una duda real del propio modelo: al principio el sistema tenía a Ghana como ganador; el reentreno cambió el pronóstico a favor de Panamá justo en el momento en que el modelo mismo reconocía que el partido estaba prácticamente parejo —28% de que gane Ghana, 30% empate, 42% Panamá, una diferencia mínima entre esas tres opciones—. Terminó ganando Ghana. La versión tradicional, que nunca se enteró de esa duda porque estaba congelada desde antes, se llevó el puntaje completo; la progresiva, más informada pero también más indecisa, no sumó nada. Escocia vs. Marruecos y Turquía vs. Paraguay, los dos jugados el 19 de junio, repiten el mismo patrón: la tradicional clavó el resultado exacto en ambos, la progresiva cambió de opinión en los dos y falló los dos.

La capa cualitativa, la más prudente de las tres, intervino apenas dos veces en todo el torneo — y en las dos, el ajuste sugerido por la IA terminó peor que el pronóstico estadístico que reemplazaba. En Bélgica vs. RI de Irán, ambas versiones fallaron por igual. En Bélgica vs. Estados Unidos, la versión estadística original acertaba quién ganaba (Bélgica) y el ajuste de la IA lo había cambiado a favor del equipo que terminó perdiendo. Setenta partidos sin tocar, y las dos únicas veces que la IA intervino, sin premio: el mismo comportamiento defensivo de la Parte 1, funcionando exactamente como debía —casi nunca actuar—, solo que esta vez tampoco le tocó ganar cuando actuó.

Comparativa de las tres variantes: puntos totales y composición de aciertos y fallos

05

Estadística contra el azar: por qué el segundo lugar no se compra con matemática

Acá está la parte que más me costó aceptar. Mi propio backtest, corrido 100.000 veces en simulación Monte Carlo sobre los 72 partidos de grupos con el motor Dixon-Coles puro, da un puntaje esperado de 150.7 ± 17.7 puntos (p10=129, p50=150, p90=174) para esa fase. Es una franja razonable si tu objetivo es maximizar el valor esperado de tu cartera de pronósticos, que es exactamente lo que el sistema está diseñado para hacer.

El problema es que ese no es el objetivo del concurso. El concurso no paga por valor esperado, paga por posición en un ranking de 10,97 millones de personas. Escalando esa misma simulación de forma proporcional a los 104 partidos del torneo completo (grupos + eliminatorias), el percentil 90 de mi propio modelo ronda apenas los ~245-250 puntos — casi calcado a los 246 que efectivamente sacó mi variante progresiva. El líder real de la tabla sacó 294. Para llegar ahí no alcanza con estar en la cola derecha de mi propia distribución de resultados esperados: hay que estar en una cola todavía más extrema, la que la simulación —que juega contra sí misma, no contra 11 millones de estrategias ajenas— ni siquiera contempla como escenario plausible. Ninguna mejora incremental de modelo cierra esa distancia. No es que mi Dixon-Coles esté mal calibrado: es que calibración y valor esperado óptimo no son la estrategia que gana un concurso de suma fija con millones de participantes.

La razón es casi de manual de teoría de juegos aplicada a torneos: cuando compites contra un promedio (el clima de mañana, tu propio backtest histórico), maximizar E[puntos] es la jugada correcta. Cuando compites por rango relativo contra millones de estrategias distintas —muchas de ellas caóticas, a contramano del consenso o directamente aleatorias—, lo que te separa del resto no es acertar más veces en promedio, es acertar en los partidos donde casi nadie más acertó. Con 6 puntos por exacto y un pool de 11 millones de personas, alguien va a clavar 15-20 marcadores exactos por pura variancia combinatoria, sin que eso implique que su proceso de decisión fue mejor que el mío. Mi modelo optimiza para no equivocarse en promedio; ganar el primer puesto exige, en cambio, equivocarse poco y acertar exactos en los partidos de mayor incertidumbre —justo los que el propio modelo, correctamente, trata como monedas al aire.

Optimizar el valor esperado te saca del fondo de la tabla. No te lleva a la cima. Para eso hace falta que la varianza juegue a tu favor, y la varianza no se pronostica: se sufre o se disfruta.

Dicho de otra forma: mi sistema hizo exactamente lo que le pedí. El error no estuvo en el diseño, estuvo en pedirle lo que un modelo de expectativa nunca puede prometer.

06

España, Argentina y el precio de dudar de uno mismo

El 19 de julio, en Nueva York/Nueva Jersey, se jugó la final: España vs. Argentina. El modelo —ya reajustado con todo el torneo jugado hasta ese día, 218 selecciones, ρ recalculado— la vio venir con una claridad que no me gustó nada: 60.6% de probabilidad de victoria de España, 27.1% empate, 12.4% Argentina. El pick de mayor valor esperado fue España 1-0.

Como hincha, quería que el modelo se equivocara. Como ingeniero, sabía exactamente por qué no se iba a equivocar: España venía de un margen de gol y una regularidad que el Dixon-Coles había capturado partido a partido durante todo el torneo, sin ningún sesgo emocional que corregir. El resultado real fue España 1-0 Argentina. Marcador exacto. Seis puntos, los máximos posibles, en el partido que más me hubiese gustado perder como pronosticador.

La objetividad implacable del algoritmo y el dolor de ver perder a la Selección en la cancha no son cosas que se cancelen entre sí. Conviven. El modelo tuvo razón y a mí me dolió igual, y esa contradicción —tener la matemática de tu lado y que no te alcance para consuelo— terminó siendo, sin buscarlo, el resumen emocional de todo el proyecto.

Aunque hubo un consuelo. Cuatro días antes de esa final, el 15 de julio en Atlanta, Argentina se había cruzado con Inglaterra en semifinales — y ese cruce no es uno más del fixture para ningún hincha argentino. Es Wembley 66 y Rattín expulsado. Es México 86, la Mano de Dios y el Gol del Siglo en el mismo partido, contra el mismo rival. Es Saint-Étienne 98, Owen y Beckham, penales ganados bajo la lluvia. El modelo, frío como siempre, vio este cruce tan parejo como Ecuador-Alemania o Ghana-Panamá: 37.4% Argentina, 35.5% Inglaterra, 27.1% empate — otra moneda al aire. Esta vez la moneda cayó de nuestro lado, y el sistema no solo acertó el ganador: clavó el marcador exacto, 2-1, en el partido con más historia detrás de todo el torneo.

Cuarenta años después de la Mano de Dios, Argentina volvió a cruzarse con Inglaterra donde más duele: a un partido de la final del mundo. No hizo falta ningún milagro esta vez. Hizo falta lo de siempre — aguantar, correr el partido de más, y meter cuando había que meter. Dos a uno, en semis, con el país entero de pie. Esa Argentina no le debe explicaciones a nadie, gane o pierda lo que venga después.

La final se perdió con la matemática de mi lado. La semifinal se ganó con la historia de nuestro lado, predicha y clavada, marcador exacto incluido. Esa la tengo guardada aparte, y ningún resultado del domingo siguiente me la saca.

Ahora, los números finales. Este es el ranking general del concurso de Mercado Pago al cierre del torneo:

PuestoUsuarios en ese puestoPuntos
3294
4291
5288
~6° (estimado, ver abajo)279
15° (yo)6.958252
98°680.0003

Terminé 15°, empatando puesto con otras 6.958 personas de 10,97 millones de participantes — top 0.07%, nada de qué avergonzarse. Pero esos 252 puntos no salen de haber corrido una sola variante de punta a punta: arranqué el torneo cargando los picks de la variante progresiva, porque en el momento me pareció la decisión más "inteligente" —más datos, reentreno constante, ¿qué podía salir mal?—. A mitad de la fase de grupos empecé a notar que estaba perdiendo picks contra mi propia versión estática, dudé del sistema que yo mismo había diseñado y auditado, y a partir de ahí terminé cargando los picks de la variante tradicional para el resto del torneo.

La variante tradicional, corrida sola de punta a punta, hubiese sacado 279 puntos — 27 más que los 252 reales. No tengo el mapeo completo puesto-por-puesto de la tabla de Mercado Pago, así que la posición exacta que eso hubiera significado es una interpolación, no un dato duro: entre el 3er puesto (288 pts, 5 usuarios) y el 15° (252 pts, 6.958 usuarios) hay 12 escalones de puesto y una caída de 36 puntos, un promedio de 3 puntos por escalón. Con 279 puntos, eso ubica el puesto estimado alrededor del , dentro de un rango razonable de 5° a 7°. Sin cambiar una sola línea del modelo. Solo confiando en él.

No sé si hubiese llegado a ese puesto con certeza —la tabla real puede no ser lineal entre esos escalones—, pero la dirección del argumento no depende de la precisión del número: la variante más simple, la que menos intervención tuvo, fue la que mejor se sostuvo en el tiempo, y dudar de ella a mitad de camino me costó, en el peor de los casos, unos nueve puestos en un ranking de once millones de personas.

07

Cierre

Empecé este proyecto queriendo "romper el concurso" con Machine Learning. Terminé aprendiendo que la disciplina más difícil no fue construir el modelo más sofisticado, sino confiar en el más simple cuando ya había demostrado, con evidencia y no con intuición, que era el más honesto. Reentrenar en vivo, sumar una capa de IA, comparar contra XGBoost otra vez con un backtest mejor hecho: cada capa adicional pasó la misma prueba que le apliqué al ML en la Parte 1, y cada vez la matemática simple volvió a ganar. La única variable que no logré mantener estática fui yo mismo, a mitad de la fase de grupos, dudando de un sistema que ya había demostrado que no hacía falta tocar.

El torneo terminó, España es campeón, y Argentina —bicampeona de america, defensora del mundial— llegó a su segunda final consecutiva y se quedó con el subcampeonato. Dicho así, en frío, no le hace justicia al número: en casi un siglo de Mundiales, apenas un puñado de selecciones llegó a dos finales seguidas —Italia en 1934-1938, Brasil en 1958-1962 y de nuevo en 1994-1998, Países Bajos en 1974-1978, Alemania en 1982-1986-1990—, y Argentina ya lo había logrado una vez, en 1986-1990. Repetirlo en 2026, defendiendo el título de Qatar, la deja en un lugar que ninguna tabla de Mercado Pago puede opacar. Mi propia tabla dice 15° de 10,97 millones. No gané el premio. Pero cierro este proyecto con algo que vale más que 50.000 dólares para mi trabajo del día a día: la certeza, medida y no supuesta, de que la parte más difícil de construir un sistema no es hacerlo inteligente. Es tener la disciplina de no meter mano cuando ya sabés que no hace falta.