La fase de grupos terminó. 72 partidos jugados, cero pendientes. Capturé todos los resultados desde football-data.org, reentrené el modelo bayesiano con esa evidencia nueva (7,845 partidos históricos + los 72 del torneo) y simulé el Mundial completo 2 millones de veces en la GPU. El cuadro de eliminatorias está fijo: 32 equipos clasificados, emparejamientos determinados por el Anexo C oficial de la FIFA.
Los cambios más grandes respecto al update del 18 de junio:
- 🇪🇸 España da el salto más grande: de 10.9% a 14.7% (+3.8 pp). Primera ronda dominante: 7 pts, 5 goles a favor, 1 en contra.
- 🇦🇷 Argentina consolida el primer lugar (16.7%) con grupo perfecto: 9 pts, 9 goles a favor.
- 🇩🇪 Alemania sube de 3.3% a 5.1% a pesar de perder ante Ecuador en J3 — ganó los otros dos con solvencia.
- 🇺🇾 Uruguay, 🇮🇷 Irán, 🇰🇷 Corea del Sur y 🇸🇦 Arabia Saudí se fueron a casa.
¿Quién levanta la copa?
Argentina y España se distancian del pelotón; detrás, seis equipos compactos entre el 5 y el 9%.
@d3
const data = [{"t":"Senegal","v":1.4},{"t":"Ecuador","v":1.7},{"t":"Suiza","v":1.8},{"t":"México","v":1.9},{"t":"P. Bajos","v":2.6},{"t":"Japón","v":3.0},{"t":"Bélgica","v":3.0},{"t":"Marruecos","v":3.6},{"t":"Alemania","v":5.1},{"t":"Portugal","v":6.0},{"t":"Colombia","v":6.1},{"t":"Inglaterra","v":6.7},{"t":"Francia","v":7.3},{"t":"Brasil","v":8.4},{"t":"España","v":14.7},{"t":"Argentina","v":16.7}];
const W = container.clientWidth || 1000;
const m = {top:8,right:64,left:120,bottom:28};
const rowH = 30, H = data.length*rowH + m.top + m.bottom;
const svg = d3.select(container).append('svg').attr('width',W).attr('height',H)
.attr('font-family','JetBrains Mono, system-ui, sans-serif');
const x = d3.scaleLinear().domain([0, d3.max(data,d=>d.v)*1.08]).range([m.left, W-m.right]);
const y = d3.scaleBand().domain(data.map(d=>d.t)).range([m.top, H-m.bottom]).padding(0.45);
const color = d3.scaleSequential(d3.interpolateTurbo).domain([d3.max(data,d=>d.v)*1.25, 0]);
svg.append('g').attr('transform',`translate(0,${H-m.bottom})`)
.call(d3.axisBottom(x).ticks(6).tickFormat(d=>d+'%'))
.call(g=>g.select('.domain').remove())
.call(g=>g.selectAll('.tick line').attr('stroke','#33332e'))
.attr('color','#9a9a8e').attr('font-size','11px');
const row = svg.selectAll('g.row').data(data).join('g');
row.append('line').attr('x1',x(0)).attr('x2',d=>x(d.v))
.attr('y1',d=>y(d.t)+y.bandwidth()/2).attr('y2',d=>y(d.t)+y.bandwidth()/2)
.attr('stroke',d=>color(d.v)).attr('stroke-width',3).attr('opacity',0.5);
row.append('circle').attr('cx',d=>x(d.v)).attr('cy',d=>y(d.t)+y.bandwidth()/2)
.attr('r',7).attr('fill',d=>color(d.v));
row.append('text').attr('x',m.left-10).attr('y',d=>y(d.t)+y.bandwidth()/2)
.attr('dy','0.35em').attr('text-anchor','end').attr('font-size','13px')
.attr('fill','#d4d4c8').text(d=>d.t);
row.append('text').attr('x',d=>x(d.v)+12).attr('y',d=>y(d.t)+y.bandwidth()/2)
.attr('dy','0.35em').attr('font-size','12px').attr('font-weight','600')
.attr('fill',d=>color(d.v)).text(d=>d.v.toFixed(1)+'%');
Los 8 mejores terceros: el margen fue mínimo
Con 12 grupos y solo 8 plazas para los mejores terceros, la última plaza se decidió por goles. Senegal entró como octavo y último clasificado con apenas 3 puntos — pero 8 goles a favor (el mejor saldo de goles entre todos los terceros) lo puso por delante de Irán (3 pts, 0 GD, 3 GF). Los grupos A, C, G y H no aportaron tercero.
| Pos | Grupo | Selección | Pts | DG | GF | Estado |
|---|---|---|---|---|---|---|
| 1 | K | RD Congo | 4 | +1 | 4 | ✅ R32 |
| 2 | F | Suecia | 4 | 0 | 7 | ✅ R32 |
| 3 | E | Ecuador | 4 | 0 | 2 | ✅ R32 |
| 4 | L | Ghana | 4 | 0 | 2 | ✅ R32 |
| 5 | B | Bosnia | 4 | -1 | 5 | ✅ R32 |
| 6 | J | Argelia | 4 | -2 | 5 | ✅ R32 |
| 7 | D | Paraguay | 4 | -2 | 2 | ✅ R32 |
| 8 | I | Senegal | 3 | +2 | 8 | ✅ R32 |
| — | G | Irán | 3 | 0 | 3 | ❌ Eliminado |
| — | A | Corea del Sur | 3 | -1 | 2 | ❌ Eliminado |
| — | C | Escocia | 3 | -3 | 1 | ❌ Eliminado |
| — | H | Uruguay | 2 | -1 | 3 | ❌ Eliminado |
El bracket R32 y el camino a cuartos
Los 32 equipos divididos en cuatro zonas. Cada zona alimenta un partido de cuartos. El porcentaje junto a cada nombre es la probabilidad de superar la ronda de 32.
⚽ Zona A → Cuartos 97
| Partido | Equipo A | % avanza | Equipo B | % avanza |
|---|---|---|---|---|
| 73 | Canadá | 65% | Sudáfrica | 35% |
| 75 | Alemania | 70% | Paraguay | 30% |
| 74 | Brasil | 60% | Japón | 40% |
| 77 | Noruega | 56% | Costa de Marfil | 44% |
→ Octavos: W73 vs W75 · W74 vs W77 → Cuartos más probable: Alemania vs Brasil
Alemania (48% de llegar a cuartos) y Brasil (41%) son los favoritos de sus respectivos lados. El partido 74 es competitivo: Japón (40%) tiene opciones reales contra Brasil. Costa de Marfil y Noruega están muy parejos (44% vs 56%).
⚽ Zona B → Cuartos 98
| Partido | Equipo A | % avanza | Equipo B | % avanza |
|---|---|---|---|---|
| 83 | España | 79% | Austria | 21% |
| 84 | Portugal | 66% | Croacia | 34% |
| 81 | Bélgica | 56% | Senegal | 44% |
| 82 | EE.UU. | 72% | Bosnia | 28% |
→ Octavos: W83 vs W84 · W81 vs W82 → Cuartos más probable: España vs Bélgica
La zona más cargada del torneo. España (51% de llegar a cuartos) domina su lado, pero del otro lado conviven Bélgica (37%), EE.UU. (30%) y Senegal (27%) extremadamente juntos. El modelo da a Senegal un 44% de superar a Bélgica — nada descabellado para el equipo que goleó 5-0 a Iraq.
⚽ Zona C → Cuartos 99
| Partido | Equipo A | % avanza | Equipo B | % avanza |
|---|---|---|---|---|
| 76 | Marruecos | 53% | P. Bajos | 47% |
| 78 | Francia | 78% | Suecia | 22% |
| 79 | México ⛰️ | 51% | Ecuador | 49% |
| 80 | Inglaterra | 70% | RD Congo | 30% |
→ Octavos: W76 vs W78 · W79 vs W80 → Cuartos más probable: Francia vs Inglaterra
El dato más llamativo de todo el bracket: el partido 79 (México vs Ecuador) se juega en Ciudad de México a 2,240 metros de altitud. Sin altitud, el modelo los tendría prácticamente empatados. El partido 76 es el más parejo del R32 entero: Marruecos-P. Bajos, 53-47.
⚽ Zona D → Cuartos 100
| Partido | Equipo A | % avanza | Equipo B | % avanza |
|---|---|---|---|---|
| 86 | Australia | 53% | Egipto | 47% |
| 88 | Colombia | 75% | Ghana | 25% |
| 85 | Suiza | 63% | Argelia | 37% |
| 87 | Argentina | 83% | Cabo Verde | 17% |
→ Octavos: W86 vs W88 · W85 vs W87 → Cuartos más probable: Argentina vs Colombia
Argentina (63% de llegar a cuartos) tiene el camino más despejado de los cuatro favoritos. Colombia (48%) es seria candidata a esperarle en cuartos. Si se da el encuentro, sería el duelo sudamericano del torneo.
Los cuartos más probables — resumen
| Cuartos | Partido más probable | Prob. Lado A | Prob. Lado B |
|---|---|---|---|
| QF 97 | 🇩🇪 Alemania vs Brasil 🇧🇷 | 48% | 41% |
| QF 98 | 🇪🇸 España vs Bélgica 🇧🇪 | 51% | 37% |
| QF 99 | 🇫🇷 Francia vs Inglaterra 🏴 | 44% | 40% |
| QF 100 | 🇦🇷 Argentina vs Colombia 🇨🇴 | 63% | 48% |
El camino a la gloria
Probabilidad de alcanzar cada ronda para los 16 favoritos. Se lee de izquierda a derecha: del R16 hasta el título. Pasa el cursor sobre cada celda para el valor exacto.
@plotly
{"data": [{"type": "heatmap", "z": [[44.3,27.0,9.1,3.9,1.4],[48.6,22.9,9.6,4.1,1.7],[62.6,21.8,10.8,4.5,1.8],[51.4,24.7,10.5,4.5,1.9],[47.0,22.8,11.7,5.5,2.6],[40.4,24.3,14.0,6.6,3.0],[55.7,36.7,14.4,7.0,3.0],[53.0,27.2,14.5,7.2,3.6],[70.3,48.2,24.1,11.3,5.1],[66.1,31.0,20.4,11.8,6.0],[74.6,47.8,23.3,12.0,6.1],[69.7,40.2,22.2,12.0,6.7],[78.3,43.9,25.2,13.4,7.3],[59.6,41.3,27.6,15.5,8.4],[78.7,50.7,37.5,24.9,14.7],[82.8,62.6,42.7,26.6,16.7]], "x": ["Octavos","Cuartos","Semis","Final","Campeón"], "y": ["Senegal","Ecuador","Suiza","México","P. Bajos","Japón","Bélgica","Marruecos","Alemania","Portugal","Colombia","Inglaterra","Francia","Brasil","España","Argentina"], "colorscale": "YlGnBu", "reversescale": false, "zmin": 0, "zmax": 85, "xgap": 2, "ygap": 2, "hovertemplate": "%{y} — %{x}: %{z:.1f}%<extra></extra>", "colorbar": {"ticksuffix": "%", "outlinewidth": 0, "tickfont": {"color": "#d4d4c8"}, "thickness": 14}}], "layout": {"height": 520, "margin": {"l": 110, "r": 20, "t": 30, "b": 30}, "paper_bgcolor": "rgba(0,0,0,0)", "plot_bgcolor": "rgba(0,0,0,0)", "font": {"family": "JetBrains Mono, system-ui, sans-serif", "size": 12, "color": "#d4d4c8"}, "xaxis": {"side": "top", "tickfont": {"color": "#d4d4c8"}, "fixedrange": true}, "yaxis": {"tickfont": {"color": "#d4d4c8"}, "fixedrange": true}}}
Tabla completa (top 24)
| # | Selección | Gr | Octavos | Cuartos | Semis | Final | Campeón |
|---|---|---|---|---|---|---|---|
| 1 | Argentina | J | 83% | 63% | 43% | 27% | 16.7% |
| 2 | España | H | 79% | 51% | 38% | 25% | 14.7% |
| 3 | Brasil | C | 60% | 41% | 28% | 16% | 8.4% |
| 4 | Francia | I | 78% | 44% | 25% | 13% | 7.3% |
| 5 | Inglaterra | L | 70% | 40% | 22% | 12% | 6.7% |
| 6 | Colombia | K | 75% | 48% | 23% | 12% | 6.1% |
| 7 | Portugal | K | 66% | 31% | 20% | 12% | 6.0% |
| 8 | Alemania | E | 70% | 48% | 24% | 11% | 5.1% |
| 9 | Marruecos | C | 53% | 27% | 15% | 7% | 3.6% |
| 10 | Japón | F | 40% | 24% | 14% | 7% | 3.0% |
| 11 | Bélgica | G | 56% | 37% | 14% | 7% | 3.0% |
| 12 | P. Bajos | F | 47% | 23% | 12% | 6% | 2.6% |
| 13 | México | A | 51% | 25% | 11% | 5% | 1.9% |
| 14 | Suiza | B | 63% | 22% | 11% | 5% | 1.8% |
| 15 | Ecuador | E | 49% | 23% | 10% | 4% | 1.7% |
| 16 | Senegal | I | 44% | 27% | 9% | 4% | 1.4% |
| 17 | Canadá | B | 65% | 28% | 11% | 4% | 1.4% |
| 18 | Noruega | I | 56% | 19% | 10% | 4% | 1.3% |
| 19 | Australia | D | 53% | 23% | 9% | 3% | 1.3% |
| 20 | EE.UU. | D | 72% | 30% | 9% | 3% | 1.1% |
| 21 | Croacia | L | 34% | 11% | 6% | 2% | 0.9% |
| 22 | Costa de Marfil | E | 44% | 15% | 7% | 2% | 0.9% |
| 23 | Egipto | G | 47% | 19% | 6% | 2% | 0.8% |
| 24 | RD Congo | K | 30% | 12% | 4% | 1% | 0.5% |
Cómo se hizo
Mismo pipeline del update anterior: captura automática de resultados (football-data.org), reentrenamiento del posterior bayesiano jerárquico (numpyro/NUTS, ~26 s sobre CPU, 0 divergencias) y simulación del torneo completo en PyTorch/CUDA sobre una RTX 4080 (2 millones de torneos en ~3 s).
El modelo ve ahora los 72 resultados reales del torneo con recencia de 730 días. Parámetros globales tras el refit: home_adv = +0.23, beta_alt = +0.081/km, intercept = +0.08. El cuadro usa la tabla oficial de 495 combinaciones del Anexo C; los empates en KO se resuelven por penales (50/50).
Disclaimer
Esto es un ejercicio de modelado estadístico, no consejo de apuestas. Las probabilidades reflejan el modelo y los resultados ya ocurridos, no certezas. El fútbol, afortunadamente, se juega.