Ejercicio de cálculo de probabilidades con la distribución normal

Una de las cuestiones a trabajar dentro del cálculo de probabilidades en bachillerato es el de aprender a tipificar variables y a usar la tabla de la distribución normal. El ejercicio que se propone tiene ese objetivo. De las posibles alternativas existentes con librerías de python (por ejemplo se podría haber usado scipy.stats) he optado por usar solo sympy y para hacer los gráficos se hace uso de matplotlib. Modificando el fichero LyX/pythontex propuesto podemos cambiar el enunciado o los apartados resueltos para resolver problemas en los que se pida calcular probabilidades de forma directa o manejar de forma inversa la tabla de la normal estándar.

Un enunciado posible del problema que vamos a resolver es:

Ejercicio

Sabemos que el peso del alumnado de este centro escolar siguen una distribución normal de media \(60\) kg y de desviación típica \(8\) kg.

  1. ¿Cuál es la probabilidad de que una persona, elegida al azar, pese menos de \(64.3\) kg?
  2. ¿Cuál es la probabilidad de que una persona, elegida al azar, pese más de \(64.3\) kg?
  3. ¿Cuál es la probabilidad de que una persona, elegida al azar, pese menos de \(58.5\) kg?
  4. ¿Cuál es la probabilidad de que una persona, elegida al azar, pese más de \(58.5\) kg?
  5. ¿Y de que tenga un peso comprendido entre \(58.5\) y \(64.3\) kg?
  6. Determinar el peso de forma que el \(23.81\%\) del alumnado tenga un peso superior a ese.
  7. Determinar el peso de forma que el \(71.31\%\) del alumnado tenga un peso inferior a ese.
  8. Determinar el peso de forma que el \(24.98\%\) del alumnado tenga un peso inferior a ese.
  9. Determinar el peso de forma que el \(65.54\%\) del alumnado tenga un peso superior a ese.
  10. Si el centro tiene unos \(500\) alumnos, ¿qué número de alumnos cabe esperar que tengan un peso inferior a \(64.3\) kg?

Los datos de entrada para construir el ejercicio anterior y su solución se obtienen a partir de:

#redondeo
r=4
#Media y desviación típica de la normal
me=60
dt=8

#Valores de la primera parte: cálculos de probabilidades
#debe ser un valor menor que la media
x1=58.5
#debe ser un valor mayor que la media
x2=64.3

#porcentaje de alumnado con peso superior a
#debe ser un valor mayor que la media
x3=65.7

#porcentaje de alumnado con peso inferior a
#debe ser un valor mayor que la media
x4=64.5

#porcentaje de alumnado con peso inferior a
#debe ser un valor menor que la media
x5=54.6

#porcentaje de alumnado con peso superior a
#debe ser un valor menor que la media
x6=56.8

#Tamaño de la población
n=500

Los gráficos creados para representar las campanas de Gauss se realizan con dos funciones, solo pondré aquí el código de la primera ya que el código de la segunda es muy parecido a este y se puede consultar en el fichero fuente:

#Función que dibuja el área en una normal 0,1,
# es fácil cambiarla para cualquier tipo de normal
def dibuja_normal(x, cond, titulo, nombre):
    Z = Normal('Z', 0, 1)
    y = [N(density(Z)(i)) for i in x]
    z = x[cond]
    zf= np.array([density(Z)(i) for i in z],dtype=float)
    fig, ax = plt.subplots(figsize=(2.25,1.5))
    # Mueve los ejes izquierdo y de abajo a x = 0 e y = 0 respectivamente.
    ax.spines["left"].set_position(("data", 0))
    ax.spines["bottom"].set_position(("data", 0))
    # Oculta los ejes de arriba y de la derecha.
    ax.spines["top"].set_visible(False)
    ax.spines["right"].set_visible(False)
    #Quito las marcas del eje y
    ax.set_yticks([])
    #Dibujamos la normal
    ax.plot(x, y)
    #Dibujamos el área
    ax.fill_between(z, 0, zf)
    #Se pone el título
    ax.set_title(titulo)
    #Se guarda la imagen
    fig.savefig(nombre)
    plt.close()

A partir de los valores de entrada anteriores, la solución del problema que se obtiene es:

Solución

\(X\hookrightarrow N(60,8)\)

  1. \(P(X<64.3)=P\left(\dfrac{X-60}{8}<\dfrac{64.3-60}{8}\right)=P\left(Z<0.5375\right)\) \(=0.7045\)

    image0

  2. \(P(X>64.3)=P\left(\dfrac{X-60}{8}>\dfrac{64.3-60}{8}\right)=P\left(Z>0.5375\right)\) \(=1-P\left(Z\leq0.5375\right)=1-0.7045=0.2955\)

    image1image2

  3. \(P(X<58.5)=P\left(\dfrac{X-60}{8}<\dfrac{58.5-60}{8}\right)=P\left(Z<-0.1875\right)\) \(=P\left(Z\geq0.1875\right)=1-P\left(Z<0.1875\right)=1-0.5744=0.4256\)

    image3image4image5

  4. \(P(X>58.5)=P\left(\dfrac{X-60}{8}>\dfrac{58.5-60}{8}\right)=P\left(Z>-0.1875\right)\) \(=P\left(Z<0.1875\right)=0.5744\)

    image6image7

  5. Usaremos los valores obtenidos anteriormente

    \begin{equation*} P(58.5<X<64.3)=P\left(\dfrac{58.5-60}{8}<\dfrac{X-60}{8}<\dfrac{64.3-60}{8}\right) \end{equation*}
    \begin{equation*} =P(-0.1875<Z<0.5375)=P\left(Z<0.5375\right)-P\left(Z<-0.1875\right) \end{equation*}
    \begin{equation*} =0.7045-0.4256=0.2789 \end{equation*}

    image8image9image10

  6. Nos piden el valor de \(x_{0}\) de manera que \(P\left(X>x_{0}\right)=0.2381\). Si tipificamos obtenemos que:

    \(P\left(X>x_{0}\right)=P\left(\dfrac{X-60}{8}>\dfrac{x_{0}-60}{8}\right)=P\left(Z>z_{0}\right)=0.2381\) donde \(z_{0}=\dfrac{x_{0}-60}{8}\)

    image11image12

    \(P\left(Z>z_{0}\right)=0.2381\,\Leftrightarrow\,P\left(Z\leq z_{0}\right)=1-P\left(Z>z_{0}\right)\) \(=1-0.2381=0.7619\) mirando en la tabla:

    \(z_{0}=0.7125\) y de la ecuación \(z_{0}=\dfrac{x_{0}-60}{8}=0.7125\,\Rightarrow\,x_{0}=65.7\)

  7. Nos piden el valor de \(x_{0}\) de manera que \(P\left(X<x_{0}\right)=0.7131\). Si tipificamos obtenemos que:

    \(P\left(X<x_{0}\right)=P\left(\dfrac{X-60}{8}<\dfrac{x_{0}-60}{8}\right)=P\left(Z<z_{0}\right)=0.7131\) donde \(z_{0}=\dfrac{x_{0}-60}{8}\)

    image13

    \(P\left(Z<z_{0}\right)=0.7131\,\) mirando en la tabla:

    \(z_{0}=0.5625\) y de la ecuación \(z_{0}=\dfrac{x_{0}-60}{8}=0.5625\,\Rightarrow\,x_{0}=64.5\)

  8. Nos piden el valor de \(x_{0}\) de manera que \(P\left(X<x_{0}\right)=0.2498\). Si tipificamos obtenemos que:

    \(P\left(X<x_{0}\right)=P\left(\dfrac{X-60}{8}<\dfrac{x_{0}-60}{8}\right)=P\left(Z<z_{0}\right)=0.2498\) donde \(z_{0}=\dfrac{x_{0}-60}{8}\)

    image14image15image16

    \(P\left(Z<z_{0}\right)=0.2498\Rightarrow\) \(z_{0}<0\) (al ser esa probabilidad menor que \(0.5\)) \(\Rightarrow-z_{0}>0\)

    \(P\left(Z\leq-z_{0}\right)=P(Z>z_{0})=1-P\left(Z\leq z_{0}\right)=1-0.2498\) \(=0.7502\) mirando en la tabla:

    \(-z_{0}=0.675\Rightarrow z_{0}=-0.675\) y de la ecuación \(z_{0}=\dfrac{x_{0}-60}{8}=-0.675\,\Rightarrow\,x_{0}=54.6\)

  9. Nos piden el valor de \(x_{0}\) de manera que \(P\left(X>x_{0}\right)=0.6554\). Si tipificamos obtenemos que:

    \(P\left(X>x_{0}\right)=P\left(\dfrac{X-60}{8}>\dfrac{x_{0}-60}{8}\right)=P\left(Z>z_{0}\right)=0.6554\) donde \(z_{0}=\dfrac{x_{0}-60}{8}\)

    image17image18

    \(P\left(Z>z_{0}\right)=0.6554\Rightarrow\) \(z_{0}<0\) (al ser esa probabilidad mayor que \(0.5\)) \(\Rightarrow-z_{0}>0\)

    \(P\left(Z\leq-z_{0}\right)=P\left(Z>z_{0}\right)=0.6554\) mirando en la tabla:

    \(-z_{0}=0.4\Rightarrow z_{0}=-0.4\) y de la ecuación \(z_{0}=\dfrac{x_{0}-60}{8}=-0.4\,\Rightarrow\,x_{0}=56.8\)

  10. Usaremos la probabilidad que ya hemos obtenido anteriormente, ya sabemos que \(P\left(X<64.3\right)=0.7045.\) Por tanto, el número de personas es \(0.7045\cdot500=352.3\) que redondeado sale \(352.0\)

Fichero fuente y el pdf final de una posible compilación.