<jupyter_start><jupyter_text>Distribución BernoulliLa 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.htmlEstas son las distribuciones de probabilidad disponibles:https://docs.scipy.org/doc/numpy/reference/random/generator.htmldistributionsRecordemos 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.htmlnumpy.random.Generator.binomial<jupyter_code>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)<jupyter_output><empty_output><jupyter_text>Usamos la misma función `distribution_plotter` para graficar los datos generados<jupyter_code>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)
#print(random_bernoulli_data)
distribution_plotter(random_bernoulli_data, "bernoulli", bins=[0,.1,.9,1])<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11352189074002325, 'fraction_numerical': 0.014335528864781092, 'mean_word_length': 5.359605911330049, 'pattern_counts': {'":': 1, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '386342', 'license': 'MIT', 'n_tokens_mistral': 935, 'n_tokens_neox': 898, 'n_words': 249, 'path': 'Code/3-numpy/probabilidad/4.2_bernoulli.ipynb', 'repo_name': 'Flor91/Data-Science', 'size': '2581'}