Cómo funciona
Partidos, resultados, estadísticas, alineaciones y lesiones provienen de API-Football; las cuotas de varias casas, de The Odds API (y opcionalmente odds-api.io). TheSportsDB solo aporta escudos y metadatos. Cada entidad externa se mapea a un identificador interno; nunca se deduplica solo por nombre. Si un proveedor no entrega un dato, el campo queda vacío: no se rellena con valores inventados.
La combinación es un pooling log-lineal ponderado. Córners, tarjetas y mitades solo se calculan con historial suficiente; el marcador correcto solo con soporte de datos alto.
Cada predicción registra su fecha de corte: el motor rechaza cualquier partido o cuota posterior a ese instante. Las cuotas de cierre nunca se usan para una predicción hecha horas antes.
Validación walk-forward temporal: se predice cada partido terminado usando solo datos previos. La calibración (Platt con 150+ muestras, isotónica con 1.000+) se ajusta en la parte antigua de la muestra y se evalúa en la reciente. Un mercado solo se publica si tiene muestra suficiente, error de calibración (ECE) bajo y mejor Brier que la frecuencia base.
Probabilidad implícita = 1/cuota. Quitamos el margen de la casa (método de potencia por defecto; también proporcional y Shin). Edge = probabilidad del modelo − probabilidad de mercado sin margen. EV = probabilidad × cuota − 1. La puntuación de calidad (0-100) penaliza cuotas vencidas, poca cobertura, mala calibración, alineaciones desconocidas, mercados poco líquidos, incertidumbre alta y movimientos adversos. Una selección muy probable puede no tener valor si la cuota no compensa el riesgo.
| Mercado | Muestras | Brier | Log loss | ECE | Accuracy (secundaria) | Publicado | Calculado |
|---|---|---|---|---|---|---|---|
| Resultado final (1X2) | 1500 | 0.2130 | 0.6430 | 0.0328 | 68.0% | Sí | 14/10/26 |
| 1X2 primera mitad | 1140 | 0.2031 | 0.5955 | 0.0539 | 67.8% | No | 14/10/26 |
| Hándicap asiático | 6308 | 0.1809 | 0.5652 | 0.0215 | 73.6% | Sí | 14/10/26 |
| Ambos equipos marcan | 1000 | 0.2504 | 0.6939 | 0.1248 | 37.7% | No | 14/10/26 |
| Marcador correcto | 2720 | 0.0688 | 0.2702 | 0.0068 | 92.4% | Sí | 14/10/26 |
| Doble oportunidad | 1500 | 0.2126 | 0.6422 | 0.0363 | 68.0% | Sí | 14/10/26 |
| Empate no válido | 740 | 0.2376 | 0.6680 | 0.0212 | 57.7% | Sí | 14/10/26 |
| Hándicap europeo | 3000 | 0.1791 | 0.5638 | 0.0237 | 74.8% | Sí | 14/10/26 |
| Más/Menos tarjetas | 2520 | 0.2184 | 0.6273 | 0.0202 | 65.6% | Sí | 14/10/26 |
| Más/Menos córners | 2520 | 0.1844 | 0.5481 | 0.0245 | 73.5% | Sí | 14/10/26 |
| Más/Menos goles | 3000 | 0.2041 | 0.5975 | 0.0683 | 70.7% | No | 14/10/26 |
| Más/Menos goles primera mitad | 1520 | 0.1862 | 0.5990 | 0.0428 | 69.5% | Sí | 14/10/26 |