Simulando apuestas con numpy
Veamos como simular una apuesta usando numpy
. Simularemos una apuesta con las siguiente características:
- 🪙 Tenemos una moneda con
cara
ycruz
. - 💰 Se empieza con un
dinero_inicial
. - 🎲 Se apuesta un número de veces
num_apuestas
. - 👆🏼 Existe una probabilidad de ganar
prob_ganar
. Si se gana obtenemosretorno_ganar
. - 👇🏼 Existe una probabilidad de perder
1-prob_ganar
. Si se pierde perdemosretorno_perder
.
import numpy as np
def apuesta(dinero_inicial, prob_ganar,
retorno_ganar, retorno_perder, num_apuestas):
dinero = [dinero_inicial]
p = [prob_ganar, 1 - prob_ganar]
for _ in range(num_apuestas):
if np.random.choice(['cara', 'cruz'], p=p) == 'cara':
dinero.append(dinero[-1] * (1 + retorno_ganar))
else:
dinero.append(dinero[-1] * (1 + retorno_perder))
return dinero
Como puedes ver si la probabilidad de ganar es prob_ganar
, la de perder es 1-prob_ganar
. Esto es así porque ambas tienen que sumar 1
.
Por otro lado, usamos choice
para generar el evento aleatorio de tirar la moneda. En una moneda normal no sesgada, p=0.5
. Es decir, misma probabilidad de cara que de cruz.
Ahora podemos usar la función con los siguientes parámetros. El resultado de la simulación es la evolución del dinero a lo largo de todas las jugadas. Mostramos el dinero tras las 20
apuestas. Dado que se trata de un proceso aleatorio, no obtendrás el mismo valor.
simulacion = apuesta(
dinero_inicial=1000,
prob_ganar=0.5, # 50% probabilidad ganar
retorno_ganar=0.8, # +80% si ganas
retorno_perder=-0.5, # -50% si pierdes
num_apuestas=20)
print(f"Dinero final (€): {simulacion[-1]:.0f}")
# Dinero final (€): 349
✏️ Ejercicios:
- Representa gráficamente (eje-y dinero, eje-x número de apuesta) la evolución de la apuesta.
- Representa gráficamente (eje-y dinero, eje-x número de apuesta) la evolución de
1000
personas realizando la misma apuesta. Una línea de cada color por persona. - Modifica la función
apuesta
para cambiar la estrategia. En vez de apostar todo cada vez, añade un parámetrono_apostar
que indica el porcentaje que no se apuesta. Observa como cambia y explora la relación con el criterio de Kelly.