```python
# initial setup
try:
    # settings colab:
    import google.colab
except ModuleNotFoundError:    
    # settings local:
    %run "../../../common/0_notebooks_base_setup.py"
```

---




#### Distribución Poisson

La distribución Poisson cuenta **cantidad de eventos en un período de tiempo dado**.

Podemos pensar esta distribución como la probabilidad de que ocurra un determinado número de eventos durante cierto período de tiempo.

Sea la variable aleatoria discreta X el número de veces que determinado evento ocurre en un intervalo de tiempo o espacio.

Entonces X puede ser una variable Poisson que toma valores $x=0,1,2,…$ si cumple con las siguientes condiciones: 

1. El número de eventos que ocurren en períodos de tiempo, sin superposición entre períodos, es independiente.

2. La probabilidad de exactamente un evento en un intervalo de tiempo corto de duración h=1/n es aproximadamente h*λ donde n es la cantidad de intervalos dentro del período considerado.  

3. La probabilidad de exactamente dos o más eventos en un intervalo de tiempo corto es esencialmente cero.

Si se cumplen esas condiciones X es una variable aleatoria que sigue un proceso de Poisson aproximado con parámetro $\lambda > 0$ por lo que  su función de probabilidad puntual es 

\begin{equation}
    P(X = k) = \frac{\lambda^k . e^{-\lambda}}{k!} \\
    \lambda > 0, \hspace{0.2cm} k = 0, 1, 2, ...
\end{equation}

Se puede mostrar que $\lambda$ es la media y la varianza de una variable Poisson. 

<div>
<div>Función de densidad de probabilidad:</div><div>
</div>
</div>




**Ejemplos**:

* X: Cantidad de pacientes que ingresan en la guardia de un hospital en una hora

* X: Cantidad de autos que pasan por una cabina de peaje

* X: Cantidad de llamados que llegan a un operador en un call center en la mañana.

---


Vamos a ver ahora cómo generar datos con esta distibución 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

Vamos a generar datos con distribución empleando el método `poisson` 
https://docs.scipy.org/doc/numpy/reference/random/generated/numpy.random.Generator.poisson.html#numpy.random.Generator.poisson


```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
import numpy as np
random_generator = np.random.default_rng()
lambda_value = 10
sample_size = 10000
random_poisson_data = random_generator.poisson(lam=lambda_value, size = sample_size)

distribution_plotter(random_poisson_data, "Poisson")
```

#### Referencias

Gráficos: https://es.wikipedia.org/wiki/Distribuci%C3%B3n_de_Poisson

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