#### Distribución Bernoulli

La distribución Bernoulli es una **distribución de probabilidad discreta**.

Un ensayo Bernoulli se define como un experimento aleatorio con sólo dos resultados posibles: éxito o fracaso.

La probabilidad de éxito es $p$ y la probabilidad de fracaso es $1-p$

Definimos la variable aleatoria X como la función de mapea el resultado éxito al número 1, y fracaso al número 0. Entonces X tiene distribución Bernoulli con parámetro $p \in (0,1) \hspace{0.5cm} X \sim Be(p)$

La función de probabilidad es

\begin{equation}
  f_X(x)=\begin{cases}
    1-p, & \text{si $x = 0$} \\
    p, & \text{si $x = 1$} \\
    0, & \text{en otro caso}
  \end{cases}
\end{equation}

Que también puede escribirse como

\begin{equation}
  f_X(x)=\begin{cases}
    p^{x}(1-p)^{1-x}, & \text{si $x \in \{0, 1\}$} \\    
    0, & \text{en otro caso}
  \end{cases}
\end{equation}

**Ejemplos**:

* X: un tratamiento médico es efectivo

* X: al lanzar una moneda sale cara

* X: al lanzar un dado sale 3

---

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

Recordemos que la distribución de Bernoulli es un caso particular de la distribucón Binomial con una única repetición. Por eso vamos a generar datos con distribución empleando el método `binomial` con `n=1` https://docs.scipy.org/doc/numpy/reference/random/generated/numpy.random.Generator.binomial.html#numpy.random.Generator.binomial



```python
import numpy as np
random_generator = np.random.default_rng()
sample_size = 1000
random_bernoulli_data = random_generator.binomial(n=1, p = 0.7, size = sample_size)
```

Usamos la misma función `distribution_plotter` para graficar los datos 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_bernoulli_data)
distribution_plotter(random_bernoulli_data, "bernoulli", bins=[0,.1,.9,1])
```

#### Referencias

https://www.statisticshowto.datasciencecentral.com/bernoulli-distribution/

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

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