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.