• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Herramientas
    • Método D’Hondt – Atribución de escaños
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • Python
  • Pandas
  • NumPy
  • Matlab
  • Julia
  • Excel
  • IA Generativa

Predecir el premio en la Lotería de Navidad con series temporales

diciembre 18, 2021 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 5 minutos

El Sorteo Extraordinario de Navidad de la Lotería Nacional es una tradición que se celebra en España desde hace más de dos siglos. Un sorteo que se celebra todos los años el 22 de diciembre y, para mucha gente, representa el comienzo de las celebraciones de Navidad. Al acercarse las fechas de Navidad, un amigo me preguntó si sería posible predecir el premio en la Lotería de Navidad mediante alguno de esos modelos que se usan para predecir cosas. Obviamente la respuesta fue no. Aunque ante su insistencia me he visto obligado a crear un modelo para confirmar que no es posible.

Tabla de contenidos

  • 1 Analizando el histórico de premios
  • 2 Análisis de la terminación
  • 3 Simulado los resultados obtenidos a lo largo de los años
  • 4 Predicción para 2021
  • 5 Conclusiones
  • 6 Apéndice
  • 7 Descargo de responsabilidad

Analizando el histórico de premios

Para predecir el valor de una serie de números lo primero es conseguir los valores históricos. Algo que en el caso de los premios de la lotería es algo fácil. Una vez hecho esto se puede ver la forma que tiene la serie a lo largo de la historia.

Evolución del premio de la Lotería de Navidad
Evolución del premio de la Lotería de Navidad

En la gráfica se puede ver que con el tiempo cada vez tocan premios más altos, pero esto solo tiene que ver con la cantidad de número que se juegan en cada sorteo. No siempre se han jugado 100.000 números como en la actualidad. Algo que también indica que cada vez es más complicado ganar el premio, no es lo mismo una probabilidad entre 100.000, como sucede en la actualidad, que una entre 60.000, como sucedía a finales del siglo XX.

Consistencia en nombres y orden en TypeScript: la base de un código mantenible aplicado a tslane
En Analytics Lane
Consistencia en nombres y orden en TypeScript: la base de un código mantenible aplicado a tslane

Antes de continuar se puede comprobar si existe autocorrelación entre los valores de la serie. Algo que se puede ver con una gráfica de autocorrelación.

Grafica de autocorrelación para el premio de la Lotería de Navidad
Grafica de autocorrelación para el premio de la Lotería de Navidad

En este caso se puede apreciar la existencia de una tendencia, pero es debido a los cambios en cantidad de número jugados. Lo que se puede confirmar analizando la evolución de la terminación.

Publicidad


Análisis de la terminación

A diferencia de los números la probabilidad de la terminación siempre se ha mantenido constante. Algo que se puede ver en la siguiente gráfica

Evolución de la terminación en el sorteo de la Lotería de Navidad
Evolución de la terminación en el sorteo de la Lotería de Navidad

Lo que parece una señal alegatoria. Pudiéndose confirmar con la siguiente gráfica que no existe autocorrelación en este caso.

Grafica de autocorrelación para la terminación en el sorteo de la Lotería de Navidad
Grafica de autocorrelación para la terminación en el sorteo de la Lotería de Navidad

Simulado los resultados obtenidos a lo largo de los años

Una vez analizados los datos se puede crear un modelo basado en series temporales para intentar predecir el número premiado y la terminación. Por ejemplo, un modelo ARIMA(12, 1, 0). La mejor manera de comprobar su validez es comprobar cómo hubiese funcionado de usarlo con los datos históricos. Como es de esperar, el modelo nunca predice el premio en los últimos 179 sorteos. Mientras que en el caso de la terminación si que aceptaría en 23 ocasiones, un valor que se encuentra ligeramente por encima de las 18 ocasiones que se esperaría simplemente por azar.

La mejora frente al azar no se debe considerar como un indicador que el modelo es válido, ya que la probabilidad de obtener 23 reintegros en 179 ocasiones es de 4.2%. Por lo que el resultado es posible que se deba únicamente al azar.

Publicidad


Predicción para 2021

El modelo que se ha implementado predice que en el año 2021 el premio recaerá en el 72.850 y el reintegro en 0. Aunque lo más probable es que no sea así, como se ha visto en el análisis anterior.

Conclusiones

En esta ocasión se ha visto que no es posible predecir una serie de números aleatorios, como los premios de un sorteo, mediante el uso de una serie temporal. Algo que no debería sorprendernos. No es posible predecir el premio en la Lotería de Navidad con series temporales, ni con cualquier otro método ya que es una serie de número aleatoria sin ningún patrón.

Publicidad


Apéndice

A continuación se incluye el código con el que se ha implementado el modelo

import pandas as pd
import numpy as np
from matplotlib import pyplot
from statsmodels.tsa.arima.model import ARIMA
from scipy.stats import binom

navidad = pd.read_excel('LoteriaNavidad.xlsx', parse_dates=[0], index_col=0)
navidad.index = navidad.index.to_period('Y')

# Serie temporal
navidad.plot()
pyplot.show()

# Grafica de autocorrelación
pd.plotting.autocorrelation_plot(navidad)
pyplot.show()

# Serie temporal con la terminación
terminacion = pd.DataFrame(navidad.premio.values % 10, index=navidad.index)
terminacion.plot()
pyplot.show()

# Grafica de autocorrelación para la terminación
pd.plotting.autocorrelation_plot(terminacion)
pyplot.show()

# Simulación de resultados con un modelo AR
premio = list()
reintegro = list()

for i in range(30, navidad.premio.shape[0]):
    model_premio = ARIMA(navidad[0:i], order=(12, 1, 0)).fit()
    premio.append(round(model_premio.forecast()[0]) == navidad.premio[i])
    
    model_reintegro = ARIMA(terminacion[0:i], order=(12, 1, 0)).fit()
    reintegro.append(round(model_reintegro.forecast()[0]) == terminacion[0][i])
    
print(f'Premios: {np.sum(premio)} de {len(premio)} ({np.mean(premio) * 100 :.2f})%')
print(f'Reintegros: {np.sum(reintegro)} de {len(reintegro)} ({np.mean(reintegro) * 100 :.2f})%')

# Probabilidad de conseguir reintegros de forma aleatoria
print(f'Probabilidad de conseguir reintegros de forma aleatoria: {binom.pmf(np.sum(reintegro), len(reintegro), 0.1) * 100:.2f}%')

# Predicción para el año actual
print(f'Premio: {round(ARIMA(navidad, order=(12, 1, 0)).fit().forecast()[0]):.0f}')
print(f'Reintegro: {round(ARIMA(reintegro, order=(12, 1, 0)).fit().forecast()[0]):.0f}')

Descargo de responsabilidad

El objetivo detrás de esta publicación es únicamente divulgativo para intentar explicar la imposibilidad de predecir el resultado de un sorteo aleatorio como es el de la Lotería de Navidad. Realizándose con la convicción de que el número predicho no será el ganador del sorteo (dicho con una certeza de 99.999 entre 100.000). Por lo que los resultados no deberían considerarse como una recomendación para comprar el número predicho, más bien todo lo contrario.

Imagen de Carabo Spain en Pixabay

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicidad


Publicaciones relacionadas

  • Consistencia en nombres y orden en TypeScript: la base de un código mantenible aplicado a tslane
  • Análisis de Redes con Python
  • Nuevo calendario de publicaciones: más calidad, mejor ritmo
  • Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Publicaciones de verano 2025: los trucos más populares, ahora en vídeo
  • Cómo enviar correos desde PowerShell utilizando Brevo: Guía paso a paso para automatizar tus notificaciones
  • Nueva herramienta disponible: Calculadora del Método D’Hondt para la atribución de escaños
  • Cómo enviar correos desde Python utilizando Brevo: Automatiza tus notificaciones con scripts eficientes

Publicado en: Opinión Etiquetado como: Juegos de azar

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

¡Nuevo video! Gráficos de barras en Matplotlib sin complicarte

julio 17, 2025 Por Daniel Rodríguez

¡Nuevo video! Iterar filas en Pandas sin romperte la cabeza

julio 15, 2025 Por Daniel Rodríguez

¡Nuevo video! Encuentra la posición en listas como un PRO

julio 10, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Obtención de valores únicos de una columna con Pandas publicado el mayo 8, 2019 | en Python
  • Cómo encontrar la posición de elementos en una lista de Python publicado el abril 12, 2021 | en Python
  • Combinar varios archivos Jupyter Notebook en uno publicado el noviembre 21, 2022 | en Python
  • Gráficos de barras en Matplotlib publicado el julio 5, 2022 | en Python
  • pandas Pandas: Cómo iterar sobre las filas de un DataFrame en Pandas publicado el septiembre 13, 2021 | en Python

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • Piera en Ecuaciones multilínea en Markdown
  • Daniel Rodríguez en Tutorial de Mypy para Principiantes
  • Javier en Tutorial de Mypy para Principiantes
  • javier en Problemas con listas mutables en Python: Cómo evitar efectos inesperados
  • soldado en Numpy básico: encontrar la posición de un elemento en un Array de Numpy

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2025 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto