#### Distribución Uniforme

##### Distribución Uniforme Discreta

Decimos que una variable aleatoria X tiene una distribución uniforme discreta sobre el conjunto de n números {x1, x2, ..., xn} si **la probabilidad de que X tome cualquiera de estos valores es constante 1/n**. 

Esta distribución surge en espacios de probabilidad **equiprobables**, esto es, en situaciones en donde tenemos n resultados diferentes y todos ellos tienen la misma probabilidad de ocurrir.

Se escribe 

$X \sim \text{unif}\{x_1, x_2, ..., x_n\} $

en donde el símbolo "$\sim$" se lee "se distribuye como" o "tiene una distribución".

La distribución de probabilidad de esa variable aleatoria es:

\begin{equation}
  f(x)=\begin{cases}
    1/n, & \text{si x = $x_1, x_2, ..., x_n$}\\
    0, & \text{en otro caso}.
  \end{cases}
\end{equation}


<!---->


\begin{equation}
n = 5  \text{    donde    } n = b − a + 1
\end{equation}

**Ejemplos**:

* X: puntuación en el lanzamiento de un dado regular

* X: resultado del lanzamiento de una moneda

* X: resultado de un juego de lotería


#### Distribución Uniforme Continua

Decimos que una variable aleatoria X tiene una distribución uniforme continua en el intervalo (a,b), donde a y b son números reales, si su función de densidad es 

\begin{equation}
  f_X(x)=\begin{cases}
    \frac{1}{b-a}, & \text{si $a \lt x \lt b$} \\
    0, & \text{en otro caso}.
  \end{cases}
\end{equation}

a y b son los parámetros de la distribución uniforme continua.

La distribución uniforme asigna probabilidad positiva constante y mayor a cero sólo a valores de la variable aleatoria en determinado rango.

\begin{equation}
  F_X(x)=\begin{cases}
    0, & \text{si $x \lt a$} \\
    \frac{x - a}{b - a}, & \text{si $a \le x \lt b$} \\
    1, & \text{si $x \ge b$}
  \end{cases}
\end{equation}




**Ejemplos**:

* Una llamada telefónica llegó a in conmutador en un tiempo, al azar, dentro de un período de 1 minuto. El conmutador estuvo ocupado durante 15 segundos en ese minuto. ¿Cuál es la probabilidad de que la llamada haya llegado mientras el conmutador no estuvo ocupado?

* Dos amigos deben encontrarse en una parada de colectivo entre las 9:00 y las 10:00. Cada uno esperará un máximo de 10 minutos. ¿Cuál es la probabilidad de que no se encuentren si el amigo1 llegará a las 9:30?

---

Vamos a ver ahora cómo generar datos con estas distibuciones de probabilidad.

Necesitamos un generador de números aleatorios, que expone métodos para generar números aleatorios con alguna distribución de probabilidad especificada. Construimos este generador de este modo `np.random.default_rng()`

https://docs.scipy.org/doc/numpy/reference/random/generator.html

Estas son las distribuciones de probabilidad disponibles:
https://docs.scipy.org/doc/numpy/reference/random/generator.html#distributions

Para generar datos con distribución **uniforme discreta** emplearemos el método `choice`

https://docs.scipy.org/doc/numpy/reference/random/generated/numpy.random.Generator.choice.html

Para generar datos con distribución **uniforme continua** emplearemos el método `uniform`

https://docs.scipy.org/doc/numpy/reference/random/generated/numpy.random.Generator.uniform.html#numpy.random.Generator.uniform



```python
import numpy as np
random_generator = np.random.default_rng()
random_uniform_cont_data = random_generator.uniform(low = 3, high = 17, size = 30)

possible_values = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
random_uniform_disc_data = random_generator.choice(possible_values, size = 30)
```

Usando la función `distribution_plotter` vamos a graficar los valores generados


```python
import seaborn as sns
def distribution_plotter(data, label, bins=None):    
    sns.set(rc={"figure.figsize": (10, 7)})
    sns.set_style("white")    
    dist = sns.distplot(data, bins= bins, hist_kws={'alpha':0.2}, kde_kws={'linewidth':5})
    dist.set_title('Distribucion de ' + label + '\n', fontsize=16)
```


```python
print(random_uniform_cont_data)
distribution_plotter(random_uniform_cont_data, "uniforme continua")
```


```python
print(random_uniform_disc_data)

distribution_plotter(random_uniform_disc_data, "uniforme discreta", bins=possible_values)
```

<div id="caja1" style="float:left;width: 100%;">
  <div style="float:left;width: 15%;"> </div>
  <div style="float:left;width: 85%;"><label>¿Estas distribuciones se parecen?</label></div>
</div>

<div id="caja2" style="float:left;width: 100%;">
  <div style="float:left;width: 15%;"> </div>
  <div style="float:left;width: 85%;"><label>Prueben ahora generando, 100, 1000, 10000 y 100000 datos y comparen los gráficos. ¿Qué pueden concluir?</label></div>
</div>




```python
# modificar este valor:
size_sample = 30

random_uniform_cont_data = random_generator.uniform(low = 3, high = 17, size = size_sample)

possible_values = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
random_uniform_disc_data = random_generator.choice(possible_values, size = size_sample)

distribution_plotter(random_uniform_disc_data, "uniforme discreta")
distribution_plotter(random_uniform_cont_data, "uniforme continua")
```

#### Referencias

Gráficos: https://en.wikipedia.org/wiki/List_of_probability_distributions

935eb645439d38c9638fe542b2636a47ad09063e
ipynb
Jupyter Notebook
Code/3-numpy/probabilidad/4.1_uniforme.ipynb
Flor91/Data-Science
f67ec537341e8b2d8213a56ef8ee63028e46e1b2
MIT
2020-10-06T12:59:39.000Z
2021-11-08T10:58:14.000Z
Code/3-numpy/probabilidad/4.1_uniforme.ipynb
Flor91/Data-Science
f67ec537341e8b2d8213a56ef8ee63028e46e1b2
MIT
Code/3-numpy/probabilidad/4.1_uniforme.ipynb
Flor91/Data-Science
f67ec537341e8b2d8213a56ef8ee63028e46e1b2
MIT
Qwen/Qwen-72B
1. YES
2. YES