Práctica 2 - Ruleta

Descripción

Para simular la ruleta, se procede del siguiente modo: se hallan las probabilidades de cada resultado, proporcionales al ángulo de cada sector y se apuntan en la segunda columna, la suma total debe de dar la unidad. En la tercera columna, se escriben las probabilidades acumuladas.

Resultado Probabilidad P. acumulada

0 0.25 0.25

1 0.5 0.75

2 0.125 0.875

3 0.125 1

Código

from scipy.stats import rv_discrete
import numpy as np
 
x = [0,1,2,3]
P_x = [0.25,0.5,0.125,0.125]
X = rv_discrete(name='X', values=(x, P_x))
frame(X.rvs(size=n)).plot(kind='bar');

Usando scipy creamos una variable aleatoria discreta con distribución no uniforme y con rvs generamos una secuencia de experimentos siguiendo la función de probabilidad.

Otra posibilidad pero menos flexible es transformar la salida de una función random (una distribución uniforme) a la función de probabilidad, tal que, los valores entre 0 y 0.25 corresponde a 1, del 0.25 al 0.75 corresponde al 1, y así sucesivamente. Por ejemplo:

def p(random_number):
   if 0 <= random_number <= 0.25:
       return 0
   if 0.25 < random_number <= 0.75:
       return 1
   if 0.75 < random_number <= 0.875:
       return 2
   if 0.875 < random_number <= 1:
       return 3

Resultados

Realizamos distintas simulaciones de una ruleta, donde nn el número de veces que realizamos un experimento (girar una ruleta y apuntar el número del sector que coincide con la flecha).

Para n=4n=4

Para n=16n=16

Para n=64n=64

Para n=412n=4^{12}

Como podemos observar las probabilidades (el eje de las ordenadas) tienden a los valores de la función de probabilidad dada al inicio (Ley de los grandes números).

Conclusiones

Sea la variable aleatoria XX el resultado posible, la tabla siguiente define la función de probabilidad p(X=x)p(X=x).

xxp(X=x)p(X=x)
01/4
11/2
21/8
31/8

Esta variable aleatoria NO es uniforme, esto es, que para todos los valores del espacio muestra la función de probabilidad no es igual, pero la función acumulada sigue siendo uno.

Por lo que podemos esperar, que en al repetir un gran número de veces este experimento, el valor que más se repita es 1, seguido de 0 e indistintamente 2 y 3. Como se esperaría, así paso con n=412n=4^{12} .

Referencias

Python, Real. "Generating Random Data in Python (Guide)." Real Python, 20 May. 2022, realpython.com/python-random.

Kumar, Ajitesh. "Statistics - Random Variables, Types & Python Examples - Data Analytics." Data Analytics, 24 Sept. 2022, vitalflux.com/statistics-random-variables-types-python-examples.