**<p style="font-size: 35px; text-align: center">Ejercicios distribuciones de Probabilidad</p>**



***<center>Miguel Ángel Vélez Guerra</center>***

<hr/>








<hr/>
<hr/>

**<p id="tocheading">Tabla de contenido</p>**
<br/>
<div id="toc"></div>
<hr/>
<hr/>

Empezaremos importando las librerías que nos ayudarán en el desarrollo del taller.
- numpy para los cálculos complejos necesarios
- scipy.stats para el uso de las funciones estadísticas y distribuciones que necesitamos
- matplotlib.pyplot para graficar las funciones
- **mstats** que es mi librería que cree con algunos métodos y funciones para graficar y hacer cálculos más específicos


```python
#-------Importing from other folder------#

import sys
sys.path.insert(0, "../resources/")

import mstats

#-----------Miguel's statistics----------#
```


```python
import numpy as np
import scipy.stats as ss
import matplotlib.pyplot as plt
```


```javascript
%%javascript
// Script to generate the table of contents
$.getScript('../resources/table_of_contents.js')
```


    <IPython.core.display.Javascript object>


<hr/>
<hr/>

## 1. Distribución binomial
Un fabricante en California le suministra un diseño prototipo para
una pieza de aeronave que requiere su negocio. Este nuevo producto, que es enviado en
lotes de n= 12, sufre una tasa de defectos del 40%.
a. Si usted no desea un riesgo mayor al 10% en la probabilidad de que 5 de los 12 sean
defectuosos, ¿Debería comprarle a ese distribuidor?
b. Si usted no desea enfrentar un riesgo mayor del 20% de probabilidad de que más de 5
salgan defectuosos, ¿Debería comprarle a ese distribuidor?



```python
n_lotes = 12 # Número de lotes de prototipos de aeronave tomados como muestra
pi_lotes = 0.4 # Porcentaje en la tasa de defectos de los lotes
```

Podemos notar con los datos que nos da el ejercicio, que la distribución que siguen los valores es una distribución *binomial*; pues nos dan una muestra (n) y una probabilidad de exito (pi) de que ocurra un evento.



```python
distr_bin_lotes = ss.binom(n_lotes,pi_lotes)
```


```python
mstats.graficar_discreta(distr_bin_lotes, "Distribución Binomial")
```

Aquí estamos declarando toda la distribución binomial que va seguir nuestro ejercicio, según el número de la muestra (15), y nuestra probabilidad de que un prototipo esté defectuoso (0.4). Esto lo haremos usando la función *.binom (distribución binomial)* de la librería *scipy.stats*

**a) Si usted no desea un riesgo mayor al 10% en la probabilidad de que 5 de los 12 sean defectuosos, ¿Debería comprarle a ese distribuidor?**


```python
x_lotes_a = 5 # Número de lotes defectuosos a evaluar
```

Ahora usaremos la función *.pmf (función de masa de probabilidad)* de la librería *scipy.stats.binom* que nos determina la probabilidad en un punto dado.

Nos arroja la probabilidad de que de los 12 lotes con una tasa de defectos del 40%, hayan **exactamente** 5 lotes defectuosos.


```python
prob_lotes_a = distr_bin_lotes.pmf(x_lotes_a)
mstats.graficar_discreta_cdf(distr_bin_lotes, x_lotes_a, x_lotes_a)
prob_lotes_a
```

Como vemos, según el resultado que nos arroja la función, tenemos que hay un **22.7%** de probabilidad de que hayan 5 de 12 lotes defectuosos.



**R/ a)** Como nosotros no queremos tener un riesgo mayor del **10%** en 5 de 12 unidades, entonces rechazaremos a ese distribuidor y no le compraremos sus prototipos, pues éste distribuidor tiene un riesgo del **22.7%**

<hr/>

**b) Si usted no desea enfrentar un riesgo mayor del 20% de probabilidad de que más de 5 salgan defectuosos, ¿Debería comprarle a ese distribuidor?**


```python
x_lotes_b = 5 # Número de lotes defectuosos a evaluar
```

Ahora utilizaremos la función *.cdf (función acumulativa de la distribución)* de la librería *scipy.stats.binom* que nos dará el valor acumulado de la función hasta el punto que le pasamos como parámetro.

Nos arrojará la probabilidad de que de los 12 lotes con una tasa de defectos del 40%, hayan **menos de 5** lotes defectuosos. Entonces, como necesitamos evaluar la probabilidad de que hayan **más de 5** lotes defectuosos, tendremos que restarle a 1 el valor que hemos obtenido (1 - valor)


```python
prob_lotes_b = 1 - distr_bin_lotes.cdf(x_lotes_b)
mstats.graficar_discreta_cdf(distr_bin_lotes, 1, x_lotes_b)
prob_lotes_b
```

Como vemos, según el resultado que nos arroja la función, tenemos que hay un **33.47%** de probabilidad de que hayan más de 5 lotes defectuosos en la muestra de 12 lotes.

**R/ b)** Como nosotros no deseamos enfrentar un riesgo mayor del **20%** de probabilidad de que más de 5 lotes salgan defectuosos. Entonces debemos rechazar la oferta de este distribuidor, que nos ofrece un riesgo del **33.47%**

<hr/>
<hr/>



## 2. Distribución hipergeométrica
Una tienda de productos deportivos tiene en existencia N=
20 pares de botas para esquiar de las cuales r=8 son de su talla. Si usted selecciona n = 3
pares que usted desea, ¿Cuál es la probabilidad de que X = 1 le quede bien?


```python
N_botas = 20 # Población total de pares de botas para esquiar
r_botas = 8 # Número de botas de nuestra talla
n_botas = 3 # Número de pares de botas seleccionado para la muestra
```

Si analizamos la información y los datos que nos brinda el ejercicio, notamos que los valores están distribuidos en una distribución *hipergeométrica*; pues nos dicen el tamaño de la población a analizar (N), una proporción de la población con una condición especial (r), y una muestra para analizar con respecto a la condición especial (n).




```python
distr_hyper_botas = ss.hypergeom(N_botas, r_botas, n_botas)
```


```python
mstats.graficar_discreta(distr_hyper_botas, "Distribución Hipergeométrica")
```

Declaramos la función hipergeométrica que va a seguir nuestro ejercicio, utilizando la función *.hypergeom (distribución hipergeométrica)* de la librería *scipy.stats*.

Esta función recibe como parámetros el tamaño de la población (N), el número de éxitos de la población (r), y el tamaño de la muestra tomada (n)

**¿Cuál es la probabilidad de que X = 1 le quede bien?**


```python
x_botas = 1 # Número de pares de botas seleccionado para la evaluación
```

Vamos a determinar la probabilidad de que **x_botas = 1 botas** seleccionadas sean de nuestra talla **r_botas = 8** de una muestra de **n_botas = 3** tomadas del total de los **N_botas = 20** pares de botas que hay en total

Para eso usaremos la función *.pmf (función de masa de probabilidad)* de la librería *scipy.stats.hypergeom*, que nos dice la probabilidad en un punto dado.


```python
prob_botas = distr_hyper_botas.pmf(x_botas)
mstats.graficar_discreta_cdf(distr_hyper_botas, x_botas, x_botas)
prob_botas
```

**R/** La probabilidad de que 1 de los pares de botas nos sirva es de **46.31%**

<hr/>
<hr/>

## 3. Distribución de Poisson
El cable utilizado para asegurar las estructuras de los puentes
tiene un promedio de 3 defectos por cada 100 yardas. Si usted necesita 50 yardas, ¿Cuál
es la probabilidad de que haya una defectuosa?


```python
mu_yardas = (3/100) # Número promedio de defectos por cada unidad de yardas
n_yardas = 50 # Número de yardas del cable a tener en cuenta
```

Podemos afirmar que los valores del ejercicio siguen una distribución de *Poisson*, pues tenemos una proporción de ocurrencias de un evento por unidad de espacio que siempre es constante.



```python
mu_yardas_cable = (mu_yardas * n_yardas)
```

Nos dicen que según ese promedio de 3 defectos por cada 100 yardas, tenemos que determinar el promedio de defectos que hay en 50 yardas, que son las yardas que tenemos de cable


```python
distr_poi_yardas = ss.poisson(mu_yardas_cable)
```


```python
mstats.graficar_discreta(distr_poi_yardas, "Distribución Poisson")
```

Entonces, según estos datos, ya podemos construir la distribución *poisson* que tienen los datos.

Para esto usaremos la función *.poisson (distribución poisson)* de la librería *scipy.stats*, la cuál la recibe como parámetro el 'mu' del ejercicio que tengamos.

**¿Cuál es la probabilidad de que haya una defectuosa?**


```python
n_yardas = 50 # Número de yardas del cable a tener en cuenta
x_cables = 1 # Número de cables tomados para evaluar si están defetuosos
```

Ahora vamos a determinar la probabilidad de que **x_cables = 1** cables seleccionados estén defectuosos según las condiciones que nos dieron.

Para esto usaremos la función *.pmf (función de masa de probabilidad)* de la librería de *scipy.stats.poisson* que nos da la probabilidad en un punto dado


```python
prob_yardas = distr_poi_yardas.pmf(x_cables)
mstats.graficar_discreta_cdf(distr_poi_yardas, x_cables, x_botas)
prob_yardas
```

**R/** La probabilidad de que uno de los cables seleccionados esté defectuoso es del **33.47%**

<hr/>
<hr/>

## 4. Distribución exponencial
Como gerente de Burguer Heaven, usted observa que los
clientes entran a su establecimiento a razón de 8 por hora. ¿Cuál es la probabilidad de que
pasen más de 15 minutos entre la llegada de dos clientes?


```python
mu_exp = (8/60) # Tasa promedio de entradas de los clientes al establecimientos por minuto
```

Teniendo en cuenta la forma que siguen las distribuciones exponenciales, podemos tomar la distribución de este ejercicio como *exponencial*, pues tenemos una tasa promedio de ocurrencias en un intervalo de tiempo.




```python
##distr_exp = ss.expon(mu_exp)
distr_exp = ss.expon(mu_exp)
```


```python
mstats.distributions.graficar_continua(distr_exp, "Distribución Exponencial")
```

**¿Cuál es la probabilidad de que pasen más de 15 minutos entre la llegada de dos clientes?**




```python
x_exp = 15 # Minutos a evaluar entre la entrada de 2 clientes
```

Entonces, tenemos que con un promedio de 'mu' entradas por minutos al establecimiento. Queremos determinar la probabilidad de que pasen más de 15 minutos entre la llegada de 2 clientes.

Para esto usaremos la función que declaramos al principio del taller *cdf_exponential (función de probabilidad acumulada)* que nos permite calcular la probabilidad acumulada hasta el punto que le pasamos como parámetro junto al 'mu' de la distribución. Luego de calcular esta probabilidad, tendremos que restarle a 1 esa probabilidad, pues nos interesa la probabilidad de que pasen **más** de 15 minutos entre la llegada de 2 clientes.


```python
prob_exp = 1 - mstats.distributions.cdf_exponential(mu_exp, x_exp)
mstats.distributions.graficar_continua_cdf(distr_exp, x_exp, distr_exp.ppf(0.99))
prob_exp
```

**R/** La probabilidad de pasen más de 15 minutos entre la llegada de 2 clientes al establecimiento es de **13.53%**

<hr/>
<hr/>

## 5. Distribución uniforme
Los tiempos de terminación de un trabajo oscilan entre 10.2
minutos a 18.3 minutos y se piensan que están distribuidos uniformemente. ¿Cuál es la
probabilidad de que se requiera entre 12.7 y 14.5 minutos para realizar este trabajo?


```python
a_unif = 10.2 # Tiempo mínimo de terminación de un trabajo
b_unif = 18.3 # Tiempo máximo de terminación de un trabajo
rango_unif = b_unif - a_unif # Rango de oscilación de la terminación de los trabajos general
```

Se puede asegurar que el ejercicio sigue una distribución *uniforme*, pues tenemos un rango de ocurrencia de un evento, y nos están preguntando por la probabilidad de que otro rango esté dentro del rango de la distribución.



```python
distr_unif_trabajos = ss.uniform(a_unif, rango_unif)
```


```python
mstats.graficar_continua(distr_unif_trabajos, "Distribución Uniforme")
```

Con esta información, podemos construir la distribución *uniforme* que sigue el ejercicio, con la ayuda de la función *.uniform* de la librería *scipy.stats* la cual recibe como parámetros para su construcción, el punto mínimo de la distribución, y el rango que tiene *(tiempo máximo - tiempo mínimo)*

**¿Cuál es la probabilidad de que se requiera entre 12.7 y 14.5 minutos para realizar este trabajo?**


```python
a_trabajo = 12.7 # Tiempo mínimo a evaluar de la terminación de un trabajo
b_trabajo = 14.5 # Tiempo máximo a evaluar de la terminación de un trabajo
rango_trabajo = a_trabajo - b_trabajo # Rango de oscilación de la terminación de los trabajos a evaluar
```

Ahora vamos a determinar la probabilidad de que el tiempo necesario para terminar un trabajo esté en el rango de **rango_trabajo = 14.5 - 12.7**.

Entonces necesitamos calculcar la probabilidad acumulado hasta el valor máximo y restarla con la probabilidad acumulada hasta el valor mínimo, para así obtener la probabilidad de que ese intervalo de valores ocurra en la distribución uniforme.

Para esto utilizaremos la función *.cdf (función de probabilidad acumulada)* de la librería *scipy.stats.uniform*.




```python
prob_unif = distr_unif_trabajos.cdf(b_trabajo) - distr_unif_trabajos.cdf(a_trabajo)
mstats.graficar_continua_cdf(distr_unif_trabajos, 12.7, 14.5)
prob_unif
```

**R/** La probabilidad de que se requiera entre 12.7 y 14.5 minutos es de **22.22%**

<hr/>
<hr/>

## 6. Distribución normal
El ministerio de agricultura de estados unidos en un estudio sobre
cultivos ha detectado que las precipitaciones diarias en ciertos lugares de Hawaii parecen
estar distribuidas normalmente con una media de 2.2 pulgadas durante la estación
lluviosa. Se determinó que la desviación estándar era de 0.8 pulgadas.
a. ¿Cuál es la probabilidad de que llueva más de 3.3 pulgadas en un día durante la
estación lluviosa?
b. Halle la probabilidad de que llueva más de 1.3 pulgadas.
c. ¿Cuál es la probabilidad de que las precipitaciones estén entre 2.7 y 3.0 pulgadas?
d. ¿Cuánta precipitación debe presentarse para exceder el 10% de las precipitaciones
diarias?


```python
mu_precip = 2.2 # Valor promedio de pulgadas que se precipitan diariamente
rho_precip = 0.8 # Desviación estándar de pulgadas que se precipitan diariamente
```

Podemos afirmar que la distribución es *normal*, porque tenemos una media de la población y una desviación estándar de la población también. Asumiendo que todos los datos están relacionados con esos valores.


```python
distr_norm_precip = ss.norm(mu_precip, rho_precip)
```


```python
mstats.graficar_continua(distr_norm_precip, "Distribución Normal")
```

Hemos construido la distribución *normal* con la ayuda de la función *.norm (distribución normal)* de la librería *scipy.stats*; la cual recibe como parámetros la media de la población, y la desviación estándar de la población también.

**a) ¿Cuál es la probabilidad de que llueva más de 3.3 pulgadas en un día durante la estación lluviosa?**


```python
x_precip_a = 3.3 # Pulgadas precipitadas a evaluar
```

Vamos a determinar la probabilidad de que llueva más de 3.3 pulgadas en un día **x_precip > 3.3**, que para esto necesitaremos tomar la probabilidad acumulada hasta ese punto y restarle a 1 ese valor de probabilidad.


```python
prob_precip_a = 1 - distr_norm_precip.cdf(3.3)
mstats.graficar_continua_cdf(distr_norm_precip, 3.3, distr_norm_precip.ppf(0.99))
prob_precip_a
```

**R/ a)** La probabilidad de que llueva más de 3.3 pulgadas en un dia durante la estación lluviosa es de **8.45%**

<hr/>

**b) Halle la probabilidad de que llueva más de 1.3 pulgadas.**


```python
x_precip_b = 1.3 # Pulgadas precipitadas a evaluar
```

Vamos a determinar la probabilidad de que llueva más de 1.3 pulgadas en un día **x_precip > 1.3**, que para esto necesitaremos tomar la probabilidad acumulada hasta ese punto y restarle a 1 ese valor de probabilidad.


```python
prob_precip_a = 1 - distr_norm_precip.cdf(1.3)
mstats.graficar_continua_cdf(distr_norm_precip, 1.3, distr_norm_precip.ppf(0.99))
prob_precip_a
```

**R/ b)** Hay un **86.97%** de probabilidades de que llueva más de 1.3 pulgadas

<hr/>

**c) ¿Cuál es la probabilidad de que las precipitaciones estén entre 2.7 y 3.0 pulgadas?**


```python
x1_precip_c = 2.7 # Pulgadas mínimas precipitadas a evaluar
x2_precip_c = 3 # Pulgadas máximas precipitadas a evaluar
```

Entonces, tenemos que determinar la probabilidad de que las precipitaciones estén entre 2.7 y 3 pulgadas, para esto vamos a determinar la probabilidad acumulada hasta el punto máximo (3) y restarla con la probabilidad acumulada hasta el punto mínimo (2.7).


```python
prob_precip_c = distr_norm_precip.cdf(3) - distr_norm_precip.cdf(2.7)
mstats.graficar_continua_cdf(distr_norm_precip, 2.7, 3)
prob_precip_c
```

**R/ c)** La probabilidad de que las precipitaciones estén entre 2.7 y 3 pulgadas es de **10.73%**
<hr/>

**d) ¿Cuánta precipitación debe presentarse para exceder el 10% de las precipitaciones diarias?**


```python
prob_precip_d = 0.1 # Probabilidad de que ocurran 'x' numero de precipitaciones diarias
```

Entonces, para encontrar el valor de precipitaciones correspondiente a la probabilidad del 0.1 en la distribución normal, debemos tratarla como una función matemática, dónde el eje 'x' corresponde a los valores de las precipitaciones que toma el ejercicio, y el eje 'y' corresponde a los valores de las probabilidades respectivas a esos valores 'x', teniendo en cuenta la función que sigue la distribución normal.


\begin{align}
p(x;\mu, \sigma^2) = \frac{1}{\sigma \sqrt{2 \pi}} e^{\frac{-1}{2}\left(\frac{x - \mu}{\sigma} \right)^2}
\end{align}


Teniendo en cuenta esto, podemos encontrar el valor del punto en 'x' si conocemos el valor del punto en 'y'


```python
distr_norm_precip.ppf(0.1)
```




    1.1747587475643197



**R/ d)** Se necesitan más **1.1747** pulgadas precipitadas para exceder el 10% de las precipitaciones diarias.

<hr/>
<hr/>

## 7. Aproximación normal a la distribución binomial
El 45% de todos los empleados del centro
de capacitación gerencial en Condor Magnetics tienen títulos universitarios. ¿Cuál es la
probabilidad de que de los 150 empleados seleccionados aleatoriamente, 72 tengan título
universitario?


```python
pi_empleados = 0.45 # Porcentaje de empleados que tienen títulos universitarios
n_empleados = 150 # Número de empleados de la muestra
```

Según el enunciado y los datos que nos dan, podemos concluir que esta información se refiere a una distribución binomial, pero esta muestra es demasiado grande, y en la construcción de su distribución pueden presentarse problemas.

Entonces lo que haremos será verificar si la podemos aproximar a una distribución normal, teniendo en cuenta que si multiplicamos la muestra por el porcentaje de éxito ***(n * pi)*** y por el porcentaje de fracaso ***(n * (1 - pi))***, nos da un valor mayor o igual a 5, y si pi está próximo a 0.5.


```python
n_empleados * pi_empleados
```




    67.5




```python
n_empleados * (1 - pi_empleados)
```




    82.5




```python
pi_empleados
```




    0.45



Se cumplen las condiciones, entonces podemos aproximar esta distribución binomial a una normal; para esto, la media de la población está dada por la multiplicación de ***(n * pi)*** y la desviación estándar es  ***√(n(π)(1-π)***


```python
mu_empleados = n_empleados * pi_empleados
rho_empleados = ((n_empleados*pi_empleados) * (1 - pi_empleados))**0.5
```

Con estos datos podemos construir la función normal.


```python
distr_norm_empleados = ss.norm(mu_empleados, rho_empleados)
```


```python
mstats.graficar_continua(distr_norm_empleados, "Distribución normal")
```

**¿Cuál es la probabilidad de que de los 150 empleados seleccionados aleatoriamente, 72 tengan título universitario?**


```python
x_empleados = 72 # Número de empleados a evaluar
```

Cómo hemos adaptado una distribución discreta a una normal, no podemos calcular la probabilidad exacta de un punto dado, por lo que tenemos que usar el factor de correción de continuidad, calcularemos la probabilidad que hay entre **71.5 y 72.5**


```python
prob_empleados = distr_norm_empleados.cdf(72.5) - distr_norm_empleados.cdf(71.5)
mstats.graficar_continua_cdf(distr_norm_empleados, 71.5, 72.5)
prob_empleados
```

**R/** La probabilidad de que de los 150 empleados seleccionados aleatoriamente, 72 tengan título universitario es del **4.98%**

<hr/>
<hr/>

## 8. Distribuciones muestrales
Los registros de inversiones muestran que la tasa promedio de rendimiento para las firmas
que están en la industria de bienes de consumo es del 30%, con una desviación estándar
del 12%. Si se selecciona una muestra de 250 de tales firmas, ¿Cuál es la probabilidad de
que la media de estas firmas esté entre el 30 y el 31%?



```python
mu_firmas = 30 # Tasa promedio del rendimiento para las firmas
rho_firmas = 12 # Desviación estándar del rendimiento para las firmas
n_firmas = 250 # Tamaño de la muestra
```

Podemos identificar una distribución normal en una población, pero nos dicen que están cogiendo una muestra de esa población y hacer evaluaciones con respecto a eso, por eso tendremos que aplicar los conceptos de distribuciones muestrales. Entonces tenemos que evaluar la desviación estándar teniendo en cuenta que esta desviación será la desviación estándar de la población dividida entre la raíz cuadrada del tamaño de la muestra.

***desviación estándar / √tamaño de la muestra***


```python
rho_error = rho_firmas / (n_firmas**0.5)
```

Con esto ya definido, podemos construir la distribución normal que tendrá el ejercicio, con el promedio poblacional y ésta desviación estándar que encontramos


```python
distr_norm_firmas = ss.norm(mu_firmas, rho_error)
```


```python
mstats.graficar_continua(distr_norm_firmas, "Distribución normal")
```

**¿Cuál es la probabilidad de que la media de estas firmas esté entre el 30 y el 31%?**


```python
x1_firmas = 30 # Porcentaje promedio 1 de rendimiento para las firmas de la muestra
x2_firmas = 31 # Porcentaja promedio 2 de rendimiento para las firmas de la muestra
```

Ahora lo que tenemos que hacer es calcular la probabilidad acumulada hasta el valor de 31 y restarla con la acumulada que hay hasta 30, de este modo obtendremos la probabilidad de que la media de las firmas esté entre el 30% y el 31%.


```python
prob_firmas = distr_norm_firmas.cdf(x2_firmas) - distr_norm_firmas.cdf(x1_firmas)
mstats.graficar_continua_cdf(distr_norm_firmas, x1_firmas, x2_firmas)
prob_firmas
```

**R/** La probabilidad de que la media de estas firmas esté entre el 30% y el 31% de rendimiento es de **40.61%**

<hr/>
<hr/>

## 9. Proporciones muestrales
Sólo el 22% de todas las firmas en la industria de bienes de consumo comercializa sus
productos directamente con el consumidor final. Si una muestra de 250 firmas revela una
proporción de más del 20% que se compromete en el mercado directo, usted planea hacer
su siguiente compra a las firmas de esta industria. ¿Qué tan probable es que usted gaste
su dinero bien ganado en otra parte?


```python
p_mercado = 0.22 # Proporción del total de firmas en la industria que comercializa directamente con el cliente
n_mercado = 250 # Tamaño de la muestra de las firmas en la industria que comercializa directamente con el cliente
```

Vamos a tener en cuenta que tenemos una población, de la cuál se tiene una proporción que cumple una condición (éxito); y de la cuál se extrae una muestra grande de la cuál también se le conoce la proporción que cumple una condición en esa muestra.

Entonces, tenemos un enunciado de proporciones muestrales.


```python
p_muestra = 0.20 # Proporción de la muestra de firmas en la industria que comercializa directamente con el cliente
```

Vamos a calcular la probabilidad de que la inversión que hagamos la tomen una de esas empresas que comercializa directamente con el cliente, para esto, vamos a aproximar esta proporción muestral que tenemos a los parámetros de una distribución normal.

Antes de esto, tenemos que comprobar que se cumplan las condiciones de que la multiplicación entre el tamaño de la muestra y la proporción de éxitos y fracasos sea mayor o igual a 5 *(np >= 5 y n(1-p) >= 5)*


```python
n_mercado * p_mercado
```




    55.0




```python
n_mercado * (1 - p_mercado)
```




    195.0



Bien, podemos hacer la aproximación a la normal, teniendo en cuenta que el promedio de la distribución muestral de proporciones es igual a la proporción de la población, y la desviación estándar de la distribución muestral de proporciones es 

***desviación estándar = √(proporción de éxitos * proporción de fracasos) / (tamaño de la muestra)***


```python
mu_mercado = p_mercado # Promedio de la proporción
rho_mercado = ((p_mercado * (1 - p_mercado)) / (n_mercado))**0.5 # Desviación estándar de la proporción
```

Con esto ya definido podemos construir la distribución normal que tendrá el ejercicio, pasándole el mu y el rho.


```python
distr_norm_mercado = ss.norm(mu_mercado, rho_mercado)
mstats.graficar_continua(distr_norm_mercado, "Distribución Normal")
```


```python
prob_mercado = distr_norm_mercado.cdf(0.20)
mstats.graficar_continua_cdf(distr_norm_mercado, distr_norm_mercado.ppf(0.01), 0.20)
prob_mercado
```


```python

```

e3c1adcfbc7454ea019920df6e2c9bc043592f1a
ipynb
Jupyter Notebook
exercises/Ejercicios distribuciones de probabilidad.ipynb
mvelezg99/distribuciones-de-probabilidad-python
2a3a413e67c2ba8b36b02cf44ad4be73b40a18ab
MIT
2019-02-24T16:15:24.000Z
2020-12-10T11:43:26.000Z
exercises/Ejercicios distribuciones de probabilidad.ipynb
mvelezg99/distribuciones-de-probabilidad-python
2a3a413e67c2ba8b36b02cf44ad4be73b40a18ab
MIT
exercises/Ejercicios distribuciones de probabilidad.ipynb
mvelezg99/distribuciones-de-probabilidad-python
2a3a413e67c2ba8b36b02cf44ad4be73b40a18ab
MIT
2019-06-13T08:43:14.000Z
2021-03-27T16:09:11.000Z
Qwen/Qwen-72B
1. YES
2. YES