Cómo está hecho

Método

Cada número de esta web sale de un archivo público o de un cálculo que se puede repetir. Esto es lo que hay detrás.

Datos

  • Partidos y cuotas. 235.796 partidos de 38 ligas (2000–2026) con resultado, cuotas 1X2 de la casa de referencia, cuota máxima entre unas 17 casas y rating Elo previo al partido. Proceden de Football-Data.co.uk y ClubElo, recopilados por Adam Gábor (2026), Club Football Match Data, con licencia MIT. El archivo original (unos 45 MB) no se guarda en este repositorio: el script lo descarga y solo se publican los resultados agregados.
  • Mercado español. Informes anuales de la Dirección General de Ordenación del Juego (DGOJ) y recopilación de la Revista Española de Drogodependencias. Cada cifra está enlazada a su fuente en spain.json.
  • Prevalencia. Encuestas ESTUDES y EDADES del Observatorio Español de las Drogas y las Adicciones (Ministerio de Sanidad).

Técnicas

  • Simulación Monte Carlo con generador pseudoaleatorio con semilla (mulberry32), ejecutada en un Web Worker.
  • Kaplan–Meier para la curva de supervivencia, tratando como censurados a quienes se retiran por alcanzar su objetivo.
  • Eliminación del margen por tres métodos: proporcional, potencia y Shin (1993), resueltos numéricamente.
  • Calibración con intervalos de Wilson del 95 % y comparación por log-loss y Brier score.
  • Intervalos bootstrap (percentiles) para el retorno medio de cada tramo de cuotas y de cada estrategia.
  • Regresión logística ordinal sobre la diferencia de Elo, ajustada por máxima verosimilitud con partición temporal: entrenamiento hasta 2015/16, evaluación desde 2016/17.
  • Machine learning: regresión logística multinomial y gradient boosting (scikit-learn) sobre variables de forma calculadas sin fuga de información, con validación walk-forward por temporada, hiperparámetros elegidos en un hold-out temporal, importancia por permutación agrupada y comparación con el mercado por bootstrap pareado.

Código

La web está hecha con Astro, React y TypeScript. Los gráficos son SVG propios construidos con escalas de d3, con tooltip, versión en tabla y modo oscuro. La matemática vive en src/lib, separada de la interfaz y cubierta por tests (Vitest): ventaja exacta de cada juego, fórmula de la ruina del jugador, Kaplan–Meier y métodos de margen. El análisis de cuotas y los modelos son scripts de Python (pandas, NumPy, SciPy y scikit-learn) en analysis/ que genera los JSON que lee la web.

npm install && npm test && npm run build
pip install -r analysis/requirements.txt
python analysis/odds/pipeline.py ruta/a/Matches.csv
python -m unittest analysis/odds/test_features.py
python analysis/odds/ml.py ruta/a/Matches.csv
python analysis/navidad/prizes.py

Límites

  • Los modelos de juego del laboratorio son simplificaciones: las tragaperras reales tienen tablas de premios más complejas, aunque la ventaja funciona igual.
  • El análisis de cuotas cubre solo el mercado 1X2 prepartido, que es de los más baratos para el apostador.
  • Los datos del mercado español son agregados anuales. Algunas cifras de años anteriores se revisan en informes posteriores.

Autoría

Proyecto de Ángel Zamora Martínez, doctor en Psicología y analista de datos. Código publicado con licencia MIT. Si encuentras un error, abre una incidencia.

← Volver al inicio