¶
6.1 DiSTRIBUCIÓN DE PROBABILIDAD UNIFORME
- El área como medida de la probabilidad
6.2 DiSTRIBUCIÓN DE PROBABILIDAD NORMAL
- Curva normal
- Distribución de probabilidad normal estándar
- Cálculo de probabilidades para cualquier distribución de probabilidad normal
- El problema de LLANTAXLtda
6.3 APROXIMACIÓN NORMAL DE LAS PROBABILIDADES BINOMIALES
6.4 DISTRIBUCIÓN DE PROBABILIDAD EXPONENCIAL
- Cálculo de probabilidades para la distribución exponencial
- Relación entre las distribuciones de Poisson y exponencial

La función gaussiana lleva el nombre de Carl Friedrich Gauss, un matemático, astrónomo y físico alemán que vivió en el siglo XVIII y principios del siglo XIX (1777-1855). Es utilizada en muchos campos, incluyendo el análisis de datos, el procesamiento de señales, la inteligencia artificial y otros ámbitos científicos y técnicos.
6.1 Distribución de probabilidad uniforme¶
Considere la variable aleatoria $x$ = tiempo de vuelo de un avión que viaja de La Paz a Santa Cruz. Suponga que este tiempo puede ser cualquier valor en el intervalo de 60 a 80 minutos. Dado que $x$ puede asumir cualquier valor en ese intervalo, esta es una variable aleatoria continua. Suponiendo que cada intervalo de 1 minuto es igualmente probable, se dice que la variable aleatoria $x$ tiene una probabilidad de distribución uniforme. La función de densidad de probabilidad es:
\begin{align*} f(x) =\begin{cases} \frac{1}{20} \quad \text{para} \quad 60\leq x \leq 80 \\ 0 \quad\quad \text{en cualquier otro caso} \end{cases} \end{align*}
La figura 6.1 es una gráfica de esta función de densidad de probabilidad. En general, la función de densidad de probabilidad uniforme para una variable aleatoria $x$ se define por medio de la fórmula siguiente:
Para la variable aleatoria del tiempo de vuelo, a= 80 y b =60.
Figura 6.1 Distribución de probabilidad uniforme para el tiempo de vuelo
import matplotlib.pyplot as plt
import numpy as np
# Función de densidad de probabilidad uniforme
def pdf(x):
if 60 <= x <= 80:
return 1/20 # Intervalo [60, 80], probabilidad uniforme
else:
return 0
# Crear un conjunto de valores x para la gráfica
x_values = np.linspace(55, 85, 1000) # Rango de x de 50 a 90
# Calcular los valores y correspondientes a la función de densidad de probabilidad
y_values = [pdf(x) for x in x_values]
# Crear la gráfica con un color de fondo personalizado
fig, ax = plt.subplots(figsize=(7, 2))
ax.plot(x_values, y_values, color='black')
ax.set_xlabel('Tiempo de vuelo en minutos')
ax.set_ylabel('1/20')
fig.patch.set_facecolor('#D4F8B7') # Color de fondo personalizado
ax.set_facecolor('#D4F8B7')
ax.fill_between(x_values, 0, y_values, color='#5CCB5F')
ax.set_yticks([])
ax.set_yticklabels([])
# Quitar los bordes superior y derecho
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
# Agregar texto
info_desviacion = '$f(x)$'
ax.text(-0.03, 1.1, info_desviacion, transform=ax.transAxes, fontsize=12, color='#000')
info_desviacion = 'x'
ax.text(1.03, 0, info_desviacion, transform=ax.transAxes, fontsize=12, color='#000')
plt.show()
La probabilidad sólo se considera en términos de la posibilidad de que la variable aleatoria tome un valor dentro de un intervalo determinado.
Ejemplo
¿cuál es la probabilidad de que el tiempo de vuelo se encuentre entre 60 y 70 minutos? $P$(60 $\leq x \leq$ 70) Debido a que la probabilidad se describe como uniforme a lo largo de este intervalo, es factible decir que $P$(60 $\leq x \leq$ 130) = 0.50. En la subsección siguiente se muestra que esta probabilidad se calcula como el área bajo la gráfica f(x) de 60 a 70.
El área como medida de la probabilidad¶
Como una observación, el área de un rectángulo (forma geometrica que toma el grafico 6.1) es el ancho multiplicado por la altura. Si se considera ancho = 70 - 60 = 10, y la altura es igual a f(x) = 1/20, se tiene el área = ancho $\cdot$ altura = 10(1/20) = 0.50.
Figura 6.2 El área proporciona la probabilidad de que el tiempo de vuelo esté entre 60 y 70 minutos
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm
# Función de densidad de probabilidad uniforme
def pdf(x):
if 60 <= x <= 80:
return 1/20 # Intervalo [60, 80], probabilidad uniforme
else:
return 0
# Crear un conjunto de valores x para la gráfica
x_values = np.linspace(55, 85, 1000) # Rango de x de 50 a 90
# Calcular los valores y correspondientes a la función de densidad de probabilidad
y_values = [pdf(x) for x in x_values]
# Crear la gráfica con un color de fondo personalizado
fig, ax = plt.subplots(figsize=(7, 2))
ax.plot(x_values, y_values, color='black')
ax.set_xlabel('Tiempo de vuelo en minutos')
ax.set_ylabel('1/20')
fig.patch.set_facecolor('#D4F8B7') # Color de fondo personalizado
ax.set_facecolor('#D4F8B7')
ax.fill_between(x_values, 0, y_values, where=(x_values <= 70), color='#5CCB5F')
ax.set_yticks([])
ax.set_yticklabels([])
# Quitar los bordes superior y derecho
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.axvline(x=70, color='black', linestyle='-', linewidth=2) # Agregar línea vertical en x=70
# Agregar flecha con texto
arrow_text = '$P(60 \leq x \leq 70) = área = 1/20(10) = 10/20 = 0.50$'
ax.annotate(arrow_text, xy=(65, 0.01), xytext=(55, 0.055),
arrowprops=dict(facecolor='black', arrowstyle='->'),
fontsize=10)
# Agregar texto
info1 = '$f(x)$'
ax.text(-0.03, 1.1, info1, transform=ax.transAxes, fontsize=8, color='#000')
info2 = 'x'
ax.text(1.03, 0, info2, transform=ax.transAxes, fontsize=8, color='#000')
plt.show()
Como podemos observar son idénticas. De hecho, esta observación es válida para todas las variables aleatorias continuas.
Ejemplo
¿Cuál es la probabilidad de un tiempo de vuelo entre 68 y 76 minutos? El ancho del intervalo es 76 - 68 = 8.
$$P(68 \leq x \leq 76) = 8(1/20) = 0.40.$$
Observe que $P$(120$ \leq x \leq$ 140) = 20(1/20) = 1; es decir, el área total bajo la gráfica f(x) es igual a 1.
Hay dos diferencias importantes entre el tratamiento de la variable aleatoria continua y el tratamiento de sus homólogas discretas.
1. La probabilidad de que una variable aleatoria ya no asume valor particular, sino un valor dentro de cierto intervalo.
2. La probabilidad de que una variable aleatoria continua asuma cualquier valor particular es exactamente cero; también signifi ca que la probabilidad de que asuma un valor en cualquier intervalo es la misma.
En estas fórmulas, a es el valor menor y b es el valor mayor que la variable aleatoria puede asumir.
Aplicamos las formulas al ejemplo para obtener $E(x)$ y su respectiva $Var(x)$.
\begin{align*} E(x)&=\frac{60+80}{2}=70\\\\ Var(x)&= \frac{(80-60)^2}{12}=33.3 \end{align*}
La desviación estándar se obtiene al calcular la raíz cuadrada de la varianza. Por tanto, $\sigma$= 5.77 minutos.
Ejemplo 1
El precio medio del litro de gasolina durante el próximo año se estima que puede oscilar entre 2,50 y 3,00 dólares, podría ser por lo tanto 2,55 a 2,90 dólares.
1) Calcular la función de densidad uniforme.
2) Cual es la probabilidad que se encuentre el precio de la gasolina entre 2,55 a **2,90 **.
Solución
Datos: $$a = 2.50 \quad \quad b = 3.00$$
1)
$ f(x) = \begin{cases} \frac{1}{b-a} & \text{si } a \le x < b, \\ 0 & \text{en cualquier otro caso}. \end{cases}\\ f(x) = \begin{cases} \frac{1}{3.00-2.50} & \text{si } 2.50 \le x < 3.00, \\ 0 & \text{en cualquier otro caso}. \end{cases}\\ f(x) = \begin{cases} \frac{1}{0.5} & \text{si } 2.50 \le x < 3.00, \\ 0 & \text{en cualquier otro caso}. \end{cases} $
1)
\begin{align*} P[2.55\le x\le2.90] &= \int_{2.55}^{2.90} \frac{1}{0.5} \, dx \\ &= \frac{1}{0.5}(2.90-2.55) &= 0.7\\ &= 70\% \end{align*}
Ejemplo 2
Una distribución uniforme se define en el intervalo de 6 a 10
a) Cuál es la media de esta distribución uniforme?
b) Cuál es la desviación estandar?
c) Demuestre que el área total es de 1.
d) Calcule la probabilidad de un valor entre 7 y 9.
Solución
a) $$\mu=\frac{a+b}{2}=\frac{6+10}{2}=8$$
b) \begin{align*} \sigma^2 &=\frac{(b-a)^2}{12}=\frac{(10-6)^2}{12}=\frac{4}{3}\\\\ \sigma &=\sqrt{\frac{4}{3}}=\frac{2}{\sqrt{3}} \end{align*}
c) $$ f(x) = \begin{cases} \frac{1}{4} & \text{si } 6 \le x < 10, \\ 0 & \text{en cualquier otro caso}. \end{cases} $$ $$ A=\int_{6}^{10}\frac{1}{4}dx=\frac{1}{4}\cdot x\Big|_{6}^{10}=\frac{1}{4}\cdot(4)=1 $$
d) $$P[7 < x < 9]=\frac{1}{4}\cdot (9-7)=\frac{2}{4}=0.5=50\%$$
6.2 Distribución de probabilidad normal¶
Es la mas importante para describir una variable aleatoria continua, asi tambien en la inferencia estadistica. Nos ofrece la probabilidad de los resultados de un muestreo.
Curva normal¶
También conocida como Campana de Gauss, esta se caracteriza por su forma de campana simétrica. La forma de la curva está determinada por dos parámetros: la media y la desviación estándar como se presenta en la siguiente figura.
Figura 6.3 Curva con forma de campana de la distribución normal
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Parámetros de la distribución normal
media = 0
desviacion_estandar = 1
# Generar datos de la distribución normal
x = np.linspace(media - 3 * desviacion_estandar, media + 3 * desviacion_estandar, 1000)
y = norm.pdf(x, media, desviacion_estandar)
# Crear la gráfica
fig, ax = plt.subplots()
ax.plot(x, y, color='black')
# Establecer el color de fondo
ax.set_facecolor('#d4f8b7')
ax.fill_between(x, y, color='#5CCB5F', alpha=1)
fig.patch.set_facecolor('#D4F8B7')
#Configuración de los ejes
ax.set_xlabel('Media', fontsize=12)
ax.set_ylabel('Densidad de Probabilidad', fontsize=12)
ax.set_xticks([0],['$\mu$'])
ax.set_yticks([])
# Agregar texto
info_desviacion = 'Desviación'
ax.text(0.6, 0.85, info_desviacion, transform=ax.transAxes, fontsize=12, color='#000')
info_desviacion = 'estandar $\sigma$'
ax.text(0.7, 0.8, info_desviacion, transform=ax.transAxes, fontsize=12, color='#000')
#Mostrar grafico
plt.show()
- $\mu$ = media
- $\sigma$ = desviación estándar
- $\pi$ = 3.14159
- $e$ = 2.71828
Se formulan varias observaciones acerca de sus características.
- Se diferencia por medio de dos parámetros: la media μ y la desviación estándar σ.
- El punto más alto de una campana de gauss se encuentra sobre la media, el cual coincide con la mediana.
- La media de una distribución normal puede tener cualquier valor numérico: negativo, cero o positivo.
En el siguiente grafico se muestra tres distribuciones normales con diferentes medias.
import numpy as np
import matplotlib.pyplot as plt
# Función para la densidad de probabilidad de la distribución normal
def normal_distribution(x, mean, std_dev):
return (1 / (std_dev * np.sqrt(2 * np.pi))) * np.exp(-((x - mean)**2) / (2 * std_dev**2))
# Datos de las curvas normales
params = [(0, 5), (-7, 5), (14, 5)]
# Generar datos x para el gráfico
x = np.linspace(-30, 30, 1000)
# Crear el gráfico
fig, ax = plt.subplots()
for mean, std_dev in params:
y = normal_distribution(x, mean, std_dev)
ax.plot(x, y, color='black', label=f'Media {mean}, Desviación {std_dev}')
ax.fill_between(x, y, color='#5CCB5F', alpha=1)
# Configurar color de fondo
fig.patch.set_facecolor('#D4F8B7')
ax.set_facecolor('#d4f8b7')
#Configuración de los ejes
ax.set_xticks([mean for mean, _ in params])
ax.set_xticklabels([str(mean) for mean, _ in params])
plt.subplots_adjust(bottom=0.5)
ax.set_yticks([])
# Mostrar el gráfico
plt.show()
- La distribución normal es simétrica: la forma de la curva normal a la izquierda de la media es igual a la forma de la curva a la derecha. Los extremos de la curva normal se extienden hacia el infinito en ambas direcciones.
- El valor de $\sigma$ (desviacion estandar) determina la forma de la curva normal, a mayor valor, este sera mas ancha y plana.
En el siguiente grafico se observan dos distribuciones nomales con diferentes desviaciones estandar.
import numpy as np
import matplotlib.pyplot as plt
# Parámetros de las curvas normales
params = [(0, 9, '$\sigma = 9$', (4, 0.07, 20, 0.08)),
(0, 4, '$\sigma = 4$', (12, 0.02, 20, 0.03))]
# Generar datos para los ejes x
x = np.linspace(-30, 30, 1000)
# Crear el gráfico
fig, ax = plt.subplots(figsize=(8, 5))
for mean, std_dev, label, arrow_props in params:
y = norm.pdf(x, mean, std_dev)
ax.plot(x, y, color='black', label=f'Media=0, Desviación={std_dev}')
ax.fill_between(x, y, color='#5CCB5F', alpha=1)
# Agregar texto con una flecha
ax.annotate(label, xy=arrow_props[:2], xytext=arrow_props[2:], arrowprops=dict(facecolor='black', shrink=0.05, width=0.2, headwidth=5),
fontsize=10, ha='center', va='center')
# Configurar color de fondo de la figura
fig.set_facecolor('#D4F8B7')
ax.set_facecolor('#d4f8b7')
#Configuración de los ejes
ax.set_yticks([])
ax.set_xticks([0],['$\mu$'])
plt.subplots_adjust(bottom=0.3)
# Mostrar el gráfico
plt.show()
- Las probabilidades para la variable aleatoria normal están representadas por las áreas bajo la curva. El área total bajo la curva es 1. Como es simétrica, el área bajo la curva a la izquierda como a la derecha es 0.50.
- Los porcentajes de los valores en algunos intervalos de uso común son los siguientes.
$$a.\quad 68.3%$$ $$b.\quad 95.4%$$ $$c.\quad 99.7%$$
La figura 6.4 muestra las propiedades a, b y c.
Para mas accesibilidad, tenemos Pydroid 3, esta te permite ejecutar código Python en dispositivos Android. Con un entorno de desarrollo completo, incluyendo editor y consola interactiva.
Se te ofrece un ejemplo de como se puede ejecutar la función gaussiana utilizando la aplicación: haz click aquí
Distribución de probabilidad normal estándar¶
Se dice que una variable aleatoria con una media de cero y una desviación estándar de uno tiene una distribución normal estándar. La letra $z$ se usa comúnmente para designar esta variable aleatoria normal.
La figura 6.5 muestra la gráfica general de la distribución normal estándar.
Figura 6.4 Áreas bajo la curva de cualquier distribución normal
import numpy as np
import matplotlib.pyplot as plt
# Parámetros de la curva normal
media = 0
desviacion = 10
escala_curva = 0.5
# Generar datos para el eje x
x = np.linspace(media - 4 * desviacion, media + 4 * desviacion, 1000)
# Calcular los valores de la distribución normal
y = norm.pdf(x, media, desviacion)
# Calcular los valores de la distribución normal y ajustar la escala
y = escala_curva * norm.pdf(x, media, desviacion)
# Crear el gráfico y cambiar color de fondo
fig, ax = plt.subplots(figsize=(8, 5))
ax.plot(x, y,color='black')
fig.set_facecolor('#D4F8B7')
ax.set_facecolor('#D4F8B7')
ax.fill_between(x, y, color='#5CCB5F', alpha=1)
# Añadir una línea vertical en coordenadas personalizadas
plt.axvline(x=media-3*desviacion, ymin=0, ymax=0.85, color='black', linestyle='-', linewidth=1)
plt.axvline(x=media+3*desviacion, ymin=0, ymax=0.85, color='black', linestyle='-', linewidth=1)
plt.axvline(x=media-2*desviacion, ymin=0, ymax=0.75, color='black', linestyle='-', linewidth=1)
plt.axvline(x=media+2*desviacion, ymin=0, ymax=0.75, color='black', linestyle='-', linewidth=1)
plt.axvline(x=media-1*desviacion, ymin=0, ymax=0.6, color='black', linestyle='-', linewidth=1)
plt.axvline(x=media+1*desviacion, ymin=0, ymax=0.6, color='black', linestyle='-', linewidth=1)
# Agregar flechas
ax.annotate('',
xy=(media-3*desviacion, 0.032),
xytext=(media+3*desviacion, 0.032),
arrowprops=dict(arrowstyle='<->', color='black', lw=1),
)
# Agregar texto
ax.text(media, 0.033, '99.7%', ha='center', va='center', color='black')
ax.annotate('',
xy=(media-2*desviacion, 0.028),
xytext=(media+2*desviacion, 0.028),
arrowprops=dict(arrowstyle='<->', color='black', lw=1),
)
# Agregar texto
ax.text(media, 0.029, '95.4%', ha='center', va='center', color='black')
ax.annotate('',
xy=(media-1*desviacion, 0.022),
xytext=(media+1*desviacion, 0.022),
arrowprops=dict(arrowstyle='<->', color='black', lw=1),
)
# Agregar texto
ax.text(media, 0.023, '68.3%', ha='center', va='center', color='black')
# Ajustar las marcas del eje x
marcas_x = [media - 3 * desviacion, media - 2 * desviacion, media - desviacion,
media, media + desviacion, media + 2 * desviacion, media + 3 * desviacion]
marcas_etiquetas = [r'$\mu - 3\sigma$', r'$\mu - 2\sigma$', r'$\mu - 1\sigma$', r'$\mu$',
r'$\mu + 1\sigma$', r'$\mu + 2\sigma$', r'$\mu + 3\sigma$']
#Configuración de los ejes
ax.set_xticks(marcas_x)
ax.set_yticks([])
ax.set_xticklabels(marcas_etiquetas)
plt.ylim(top=0.04)
# Mostrar el gráfico
plt.show()
Figura 6.5 Distribución normal estandar
import numpy as np
import matplotlib.pyplot as plt
# Parámetros de la curva normal
media = 0
desviacion = 1
# Generar datos para el eje x
x = np.linspace(media - 4 * desviacion, media + 4 * desviacion, 1000)
# Calcular los valores de la distribución normal
y = norm.pdf(x, media, desviacion)
# Crear el gráfico y cambiar color de fondo
fig, ax = plt.subplots(figsize=(8, 5))
ax.plot(x, y, color='black')
fig.set_facecolor('#D4F8B7')
ax.set_facecolor('#D4F8B7')
ax.fill_between(x, y, color='#5CCB5F', alpha=1)
#Configuración de los ejes
ax.text(1.3, 0.23, '$\sigma = 1$')
ax.set_xticks([media])
ax.set_yticks([])
ax.set_xticklabels(['0'])
plt.subplots_adjust(bottom=0.3)
# Mostrar el gráfico
plt.show()
como $μ=0$ y $\sigma=1$, la fórmula para la función de densidad de probabilidad normal estándar es la siguiente.
Para encontrar la probabilidad de que una variable aleatoria normal, debe calcularse el área bajo la curva normal del intervalo obtenido.
Para la distribución normal estándar, las áreas bajo la curva normal ya se han estimado y están disponibles en tablas que se utilizan para el cálculo de probabilidades.
Los tres tipos de probabilidades que se necesita calcular incluyen la probabilidad de que: ($z \leq x$), ($x_1\leq z \leq x_2$) o ($x\leq z$).
Para saber como hacer uso de la tabla de probabilidad acumulada de la distribucion normal se emplea el siguiente ejemplo:
Primero se mostrará cómo calcular la probabilidad de que $z$ sea menor o igual que 0.70, esta situada en el área bajo la curva normal a la izquierda de $z$ = 0.70 en la gráfica siguiente.
import numpy as np
import matplotlib.pyplot as plt
# Parámetros de la curva normal
media = 0
desviacion = 1
# Generar datos para el eje x
x = np.linspace(media - 4 * desviacion, media + 4 * desviacion, 1000)
# Calcular los valores de la distribución normal
y = norm.pdf(x, media, desviacion)
# Crear el gráfico y cambiar color de fondo
fig, ax = plt.subplots(figsize=(8, 5))
ax.plot(x, y, color='black')
fig.set_facecolor('#D4F8B7')
ax.set_facecolor('#D4F8B7')
# Dibujar la línea vertical
area_limite = 0.755
x_limite = norm.ppf(area_limite, media, desviacion)
ax.axvline(x_limite, ymin=0.045, ymax=area_limite, color='black', linestyle='-')
# Configuración del texto y la flecha
coordenadas_texto1 = (-0.5, 0.25)
ax.annotate('$P(z \leq 0.70)$',
xy=coordenadas_texto1,
xytext=(-1.8, 0.3),
arrowprops=dict(facecolor='#009929', shrink=0.05, width=0.2, headwidth=4),
fontsize=10,
ha='center',
va='center'
)
# Configuración general del gráfico
ax.fill_between(x, y, where=(x >= x_limite), color='#98F84A', alpha=0.7)
ax.fill_between(x, y, where=(x <= x_limite), color='#5CCB5F', alpha=1)
#Ejes
ax.set_yticks([])
ax.set_xticks([0, x_limite])
ax.set_xticklabels(['0', '0.7'])
# Mostrar la gráfica
plt.show()
La probabilidad que corresponde a ($z \leq$ 0.70) es el valor ubicado en la intersección de la fila en la columna izquierda, cuyo encabezado es 0.7 y la columna en la fila superior, cuyo encabezado es 0.00 .
Estas se intersecan en el valor 0.7580; por tanto, $P$($z \leq$ 0.70)= 0.7580.
Tabla 6.1 Distribución de probabilidad normal estandar
z | 0.00 | 0.01 | 0.02 |
---|---|---|---|
... | |||
0.6 | 0.7258 | 0.7291 | 0.7324 |
0.7 | 0.7580 | 0.7611 | 0.7642 |
0.8 | 0.7881 | 0.7910 | 0.7939 |
0.9 | 0.8159 | 0.8186 | 0.8212 |
... |
Para ilustrar el segundo tipo de cálculo de la probabilidad, suponga que se quiere determina la probabilidad de que $z$ esté en el intervalo entre -0.50 y 1.25; es decir, $P$(-0.50 $\le z \le$ 1.25). La gráfica siguiente muestra esta área, o probabilidad.
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
x = np.arange(-2.9, 2.9, 0.001)
#pintar el fondo externo del grafico
plt.figure(facecolor='#D4F8B7')
#area de sombreado rango
x_filtered = x[(x >= -0.50) & (x <= 1.25)]
#pintar la linea curva del grafico
plt.plot(x, norm.pdf(x, 0, 1), linewidth = 2, color = '#000')
#pintar el area sombreada del grafico y graficar
plt.fill_between(x_filtered, norm.pdf(x_filtered, 0, 1), color='#5CCB5F', alpha=0.5, edgecolor='black')
#añadir texto al grafico
plt.text(-2.8, 0.20, ("P(z < -0.50)"))
plt.text(3, 0, ("z"))
#bordes del grafico
ax = plt.gca()
ax.spines['top'].set_color('#009929')
ax.spines['top'].set_linewidth(2)
#ancho del borde superior
ax.spines['top'].set_bounds(-6, 6)
ax.spines['bottom'].set_color('#009929')
ax.spines['bottom'].set_linewidth(2)
#ancho del borde inferior
ax.spines['bottom'].set_bounds(-6, 6)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
#pintar el fondo interno del grafico
ax.set_facecolor('#D4F8B7')
#linea inferior del grafico
plt.plot(x, [0]*len(x), color='black', linewidth=1)
#centrar el grafico
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
#plt.arrow(0.1, 0.1, 0.2, 0.2, width=0.05, color='black')
#flecha
plt.annotate(" ", xytext = (-2, 0.2), xy = (-1, 0.05), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
#texto con flecha
plt.annotate("P(-0.50 \u2264 z \u2264 1.25)", xytext = (2.5, 0.25),
xy = (0.5, 0.15), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
#mostrar ejes x, y
plt.xticks([-0.50, 0, 1.25])
plt.yticks([])
plt.show()
Se requieren tres pasos:
- Se encuentra el area a la izquierda de z = 1.25.
- Se obtiene el area bajo la curva izquierda de z = -0.50
- Se resta el area a la izquierda de z = -0.50, del area a la izquierda de z = 1.25 para obtener P(-0.50 $\le$ z $\le$ 1.25).
En el ejemplo, para $z$ = 1.25, se localiza el valor en la fila 1.2 y columna 0.05 de la tabla, resultando en un valor de 0.8944. Esto significa que la probabilidad de que ($z \le$ 1.25) = 0.8944. De manera similar, para $z$ = -0.50, se encuentra el valor en la fila -0.5 y columna 0.00, siendo 0.3085, lo que indica que la probabilidad de que ($z \le$ -0.50) = 0.3085. Luego, se calcula la probabilidad de que $z$ esté entre (-0.50 $\le z \le$ 1.25) restando las dos probabilidades obtenidas, resultando en 0.5859.
Ejemplo
Suponga que queremos calcular la probabilidad de que la variable aleatoria normal estándar esté dentro de una desviación estándar de la media; es decir, $P$(-1.00 $\le z \le$ 1.00). Para ello, primero se obtiene el área bajo la curva entre -1.00 y 1.00.
Antes se encontró que P(z $\le$ 1.00) = 0.8413. Se ve que el área bajo la curva a la izquierda de z = -1.00 es 0.1587; por tanto P(z $\le$ -1.00) = 0.1587. De ahí que P(-1.00 $\le$ z $\le$ 1.00) = P(z $\le$ 1.00) - P(z $\le$ -1.00) = 0.8413 - 0.1587 = 0.6826. Esta probabilidad se muestra gráficamente en la figura siguiente.
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
x = np.arange(-2.9, 2.9, 0.001)
#pintar el fondo externo del grafico
plt.figure(facecolor='#D4F8B7')
#area de sombreado rango
x_filtered = x[(x >= -1.00) & (x <= 1.00)]
#pintar la linea curva del grafico
plt.plot(x, norm.pdf(x, 0, 1), linewidth = 1, color = '#000')
#pintar el area sombreada del grafico y graficar
plt.fill_between(x_filtered, norm.pdf(x_filtered, 0, 1), color='#5CCB5F', alpha=0.5, edgecolor='black')
#añadir texto al grafico
plt.text(-2.8, 0.20, ("P(z \u2264 -0.50) \n= 0.1587"))
plt.text(3, 0, ("z"))
#bordes del grafico
ax = plt.gca()
ax.spines['top'].set_color('#009929')
ax.spines['top'].set_linewidth(2)
#ancho del borde superior
ax.spines['top'].set_bounds(-6, 6)
ax.spines['bottom'].set_color('#009929')
ax.spines['bottom'].set_linewidth(2)
#ancho del borde inferior
ax.spines['bottom'].set_bounds(-6, 6)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
#pintar el fondo interno del grafico
ax.set_facecolor('#D4F8B7')
#linea inferior del grafico
plt.plot(x, [0]*len(x), color='black', linewidth=2)
#centrar el grafico
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
#flecha
plt.annotate(" ", xytext = (-2, 0.2), xy = (-1.25, 0.10), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
#texto con flecha
plt.annotate("P(-1.00 \u2264 z \u2264 1.00) \n= 0.8413 - 01587 = 0.6826", xytext = (2.5, 0.25),
xy = (0.5, 0.15), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
#mostrar ejes x, y
plt.xticks([-1, 0, 1], ['{:.2f}'.format(i) for i in [-1, 0, 1]])
plt.yticks([])
plt.show()
suponga que se quiere determinar la probabilidad de obtener un valor $z$ por lo menos igual a 1.58; es decir, $P$($z \ge$ 1.58). El valor en la fila $z$ = 1.5 y la columna 0.08 de la tabla normal acumulada es 0.9429; por tanto, $P$($z <$ 1.58) = 0.9429. Como el área total bajo la curva normal es 1, $P$($z \ge$ 1.58) = 1 - 0.9429 = 0.0571.
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
x = np.arange(-3.5, 3.5, 0.001)
#pintar el fondo externo del grafico
plt.figure(facecolor='#D4F8B7')
#tamaño del grafico
#plt.figure(figsize=(6,4))
#area de sombreado rango
x_filtered = x[(x >= 1.58) & (x <= 3.50)]
#pintar la linea curva del grafico
plt.plot(x, norm.pdf(x, 0, 1), linewidth = 1, color = '#000')
#pintar el area sombreada del grafico y graficar
plt.fill_between(x_filtered, norm.pdf(x_filtered, 0, 1), color='#5CCB5F', alpha=0.5, edgecolor='black')
#añadir texto al grafico
plt.text(3, 0.15, ("P(z \u2265 1.58) \n= 1.0000 - 0.9429 = 0.0571"))
plt.text(3.9, 0, ("z"))
#bordes del grafico
ax = plt.gca()
ax.spines['top'].set_color('#009929')
ax.spines['top'].set_linewidth(2)
#ancho del borde superior
ax.spines['top'].set_bounds(-6, 6)
ax.spines['bottom'].set_color('#009929')
ax.spines['bottom'].set_linewidth(2)
#ancho del borde inferior
ax.spines['bottom'].set_bounds(-6, 6)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
#pintar el fondo interno del grafico
ax.set_facecolor('#D4F8B7')
#linea inferior del grafico
plt.plot(x, [0]*len(x), color='black', linewidth=1)
#centrar el grafico
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
#plt.arrow(0.1, 0.1, 0.2, 0.2, width=0.05, color='black')
#flecha
plt.annotate(" ", xytext = (2.9, 0.15), xy = (1.8, 0.05), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
#texto con flecha
plt.annotate("P(z < 1.58) = 09429", xytext = (2.5, 0.25),
xy = (0, 0.20), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
#mostrar ejes x, y
plt.xticks([-2, -1, 0, 1, 2])
plt.yticks([])
plt.show()
Suponga que quiere determinar un valor de $z$ tal que la probabilidad de obtener un valor de $z$ mayor sea 0.10. La figura siguiente muestra esta situación de manera gráfica.
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
x = np.arange(-3.5, 3.5, 0.001)
#pintar el fondo externo del grafico
plt.figure(facecolor='#D4F8B7')
#tamaño del grafico
#plt.figure(figsize=(6,4))
#area de sombreado rango
x_filtered = x[(x >= 1.58) & (x <= 3.50)]
#pintar la linea curva del grafico
plt.plot(x, norm.pdf(x, 0, 1), linewidth = 1, color = '#000')
#pintar el area sombreada del grafico y graficar
plt.fill_between(x_filtered, norm.pdf(x_filtered, 0, 1), color='#5CCB5F', alpha=0.5, edgecolor='black')
#añadir texto al grafico
plt.text(-1, 0.10, ("Probabilidad = 0.10"))
plt.text(3.9, 0, ("z"))
#bordes del grafico
ax = plt.gca()
ax.spines['top'].set_color('#009929')
ax.spines['top'].set_linewidth(2)
#ancho del borde superior
ax.spines['top'].set_bounds(-6, 6)
ax.spines['bottom'].set_color('#009929')
ax.spines['bottom'].set_linewidth(2)
#ancho del borde inferior
ax.spines['bottom'].set_bounds(-6, 6)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
#pintar el fondo interno del grafico
ax.set_facecolor('#D4F8B7')
#linea inferior del grafico
plt.plot(x, [0]*len(x), color='black', linewidth=1)
#centrar el grafico
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
#plt.arrow(0.1, 0.1, 0.2, 0.2, width=0.05, color='black')
#flecha
plt.annotate(" ", xytext = (1, 0.10), xy = (1.8, 0.05), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
plt.annotate("¿Cual es el valor de z?", xytext = (3.8, 0.05), xy = (1.58, 0), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
#mostrar ejes x, y
plt.xticks([-2, -1, 0, 1, 2])
plt.yticks([])
plt.show()
Este problema es el inverso de las situaciones presentadas en los ejemplos anteriores, en los cuales se especificó el valor de $z$ y luego se calculó la probabilidad, o área, correspondiente. En este ejemplo se proporciona la probabilidad, o área, y luego se pide determinar el valor $z$ respectivo. Para hacerlo, se usa la tabla de probabilidad normal estándar de una manera un poco distinta.
La tabla proporciona el área bajo la curva a la izquierda de un valor de $z$ específico. Dado que se conoce que el área en el extremo superior de la curva es 0.10, se busca un valor de $z$ tal que el área a la izquierda de este sea igual a 0.9000. Al revisar la tabla, se encuentra que 0.8997 es la probabilidad acumulada más cercana a 0.9000, y se presenta la sección correspondiente de la tabla que muestra este resultado.
Tabla 6.2 Distribución de probabilidad normal estandar
z | 0.06 | 0.07 | 0.08 | 0.09 |
---|---|---|---|---|
... | ||||
1.0 | 0.8554 | 0.8577 | 0.8599 | 0.8621 |
1.1 | 0.8770 | 0.8790 | 0.8810 | 0.8830 |
1.2 | 0.8962 | 0.8980 | 0.8997 | 0.9015 |
1.3 | 0.9131 | 0.9147 | 0.9162 | 0.9177 |
1.4 | 0.9279 | 0.9292 | 0.9306 | 0.9319 |
... |
Al leer el valor de $z$ en la columna del extremo izquierdo y la fila superior de la tabla, encontramos que es 1.28. Por tanto, un área de aproximadamente 0.9000 (en realidad, 0.8997) estará a la izquierda de $z$ = 1.28 Respecto de la pregunta formulada originalmente, hay una probabilidad aproximada de 0.10 de que el valor de $z$ sea mayor que 1.28.
Cálculo de probabilidades para culaquier distribución de probabilidad normal¶
Se estudia la distribución normal estándar de manera detallada porque se utiliza para calcular las probabilidades de todas las distribuciones normales. Cuando se enfrenta a preguntas de probabilidad sobre una distribución normal con una media ($\mu$) y una desviación estándar ($\sigma$) específicas, se resuelven convirtiendo primero la distribución a la normal estándar. Se emplea la tabla de probabilidad normal estándar y los valores de $z$ correspondientes para obtener las probabilidades deseadas. El párrafo menciona la fórmula para convertir cualquier variable aleatoria normal ($x$) con media $\mu$ y desviación estándar $\sigma$ a la variable aleatoria normal estándar ($z$).
El problema de LLANTAXLtda¶
Suponga que LLANTAXLtda Desarrollo un nuevo neumatico radial con cinturon de acero que se vende a traves de una cadena nacional de tiendas de descuento. Tomando en cuenta que el neumatico es un nuevo producto. Los gerentes creen que la garantia de kilometraje sera un factor importante. Los gerentes quieren informacion de probabilidad sobre los x = numero de kilometros que estos duran.
El grupo de ingenieria estimó que su kilometraje es μ = 42000 kilometros y la desviacion estandar es σ = 5000. Los datos recabados indican que es una distribucion normal.
¿Cual es la probabilidad de que el kilometraje de los neumaticos x sepere la cifra de 50000 kilometros?
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
x = np.arange(-3.5, 3.5, 0.001)
#pintar el fondo externo del grafico
plt.figure(facecolor='#D4F8B7')
#area de sombreado rango
x_filtered = x[(x >= 1.6) & (x <= 3.50)]
#pintar la linea curva del grafico
plt.plot(x, norm.pdf(x, 0, 1), linewidth = 1, color = '#000')
#pintar el area sombreada del grafico y graficar
plt.fill_between(x_filtered, norm.pdf(x_filtered, 0, 1), color='#5CCB5F', alpha=0.5, edgecolor='black')
#añadir texto al grafico
plt.text(2.6, 0.10, ("P(x \u2265 50000)"))
plt.text(2.6, 0.30, ("μ = 42000"))
plt.text(2.6, 0.28, ("σ = 5000"))
plt.text(-3, 0.30, ("P(x < 50000)"))
plt.text(3.9, 0, ("z"))
#bordes del grafico
ax = plt.gca()
ax.spines['top'].set_color('#009929')
ax.spines['top'].set_linewidth(2)
#ancho del borde superior
ax.spines['top'].set_bounds(-6, 6)
ax.spines['bottom'].set_color('#009929')
ax.spines['bottom'].set_linewidth(2)
#ancho del borde inferior
ax.spines['bottom'].set_bounds(-6, 6)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
#pintar el fondo interno del grafico
ax.set_facecolor('#D4F8B7')
#linea inferior del grafico
plt.plot(x, [0]*len(x), color='black', linewidth=1)
#centrar el grafico
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
#plt.arrow(0.1, 0.1, 0.2, 0.2, width=0.05, color='black')
#flecha
plt.annotate(" ", xytext = (2.9, 0.1), xy = (1.8, 0.03), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
plt.annotate(" ", xytext = (-2, 0.29), xy = (0, 0.15), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
#mostrar ejes x, y
plt.xticks([0, 1.6])
plt.yticks([])
plt.show()
En $x$ = 50000 tenemos
\begin{equation*} z = \frac{x - \mu}{\sigma} = \frac{50000 - 42000}{5000} = \frac{8000}{5000} = 1.6 \end{equation*}
Vemos que un valor de $x$ = 50 000 en la distribución normal de LLANTAXLtda corresponde al valor de $z$ =1.6 en la distribución normal estándar. Consultando la tabla de probabilidad normal estándar, constatamos que el área bajo la curva normal estándar a la izquierda de $z$ = 1.6 es 0.9452. Por tanto, 1.000 - 0.9452 = 0.0548 es la probabilidad de que $z$ exceda 1.6, y por consiguiente x excederá de 50 000.
Podemos concluir que alrededor de 5.48% de los neumáticos superará los 50 000 kilometros.
6.3 Aproximación normal de las probabilidades binomiales¶
La distribución normal proporciona una aproximación fácil de usar de las probabilidades binomiales.
Cuando se usa la aproximación normal a la binomial, se establece
$$\mu = np \quad y\quad \sigma = np(1 -p)$$
en la definición de la curva normal.
Si x es una variable aleatoria binomial con media $\mu = np$ y varianza $\sigma^2 = npq$ entonces la forma limitante de la distribución de
\begin{align*} z=\frac{x-np}{\sqrt{npq}} \end{align*}
conforme $n\rightarrow\infty$, es la distribucion normal estandar $n(z;0,1).$
Resulta que la distribución normal con $\mu = np$ y $\sigma^2 = np(1-p)$ no solo ofrece una aproximación muy precisa la distribución binomial cuando $n$ es grande y $p$ no está extremadamente cerca de 0 o de 1, sino que también brinda una aproximación bastante buena aún cuando $n$ es pequeña y $p$ está razonablemente cerca de 1/2.
Ejemplo 1
Un paciente que padece una rara enfermedad de la sangre tiene 0.4 de probabilidad de recuperarse , si se sabe que 100 personas contrajeron esta enfermedad, ¿Cuál es la probabilidad de que sobrevivan menos de 30?
Solución
En este caso:
- $n$ (tamaño de la muestra) = 100
- $p$ (probabilidad de éxito) = 0.4
- $\sigma $(desviación estándar) = $\sqrt{100 \cdot 0.4\cdot 0.6}= 4.899 $
- $\mu$ (media) = $n*p$ = 120
para obtener la probabilidad que se desea, tenemos que calcular
- el area a la izquierda de x= 29.5
- el valor $z$ que corresponde a 29.5
es:
\begin{align*} z=\frac{29.5 - 40}{4.899} = -2.14 \end{align*}
y la probabilidad de que menos de 30 de los 100 pacientes sobrevivan está dada por la regíon sombreada de la siguiente figura:
$$z=P(X<30)≡P(Z<-2.14)=0.0162$$
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
x = np.arange(-2.9, 2.9, 0.001)
#pintar el fondo externo del grafico
plt.figure(facecolor='#D4F8B7')
#area de sombreado rango
x_filtered = x[(x <= -2.14)]
#pintar la linea curva del grafico
plt.plot(x, norm.pdf(x, 0, 1), linewidth = 1, color = '#000')
#pintar el area sombreada del grafico y graficar
plt.fill_between(x_filtered, norm.pdf(x_filtered, 0, 1), color='#5CCB5F', alpha=0.5, edgecolor='black')
#añadir texto al grafico
plt.text(-5, 0.3, ("$z= P(X \u003C 30) \u2261 P(Z\u003C-2.14)\u003D 0.0162$"))
plt.text(-3.9, 0.10, ("P(z \u2264 -2.14) \n= 0.0162"))
plt.text(3, 0, ("z"))
#bordes del grafico
ax = plt.gca()
ax.spines['top'].set_color('#009929')
ax.spines['top'].set_linewidth(2)
#ancho del borde superior
ax.spines['top'].set_bounds(-6, 6)
ax.spines['bottom'].set_color('#009929')
ax.spines['bottom'].set_linewidth(2)
#ancho del borde inferior
ax.spines['bottom'].set_bounds(-6, 6)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
#pintar el fondo interno del grafico
ax.set_facecolor('#D4F8B7')
#linea inferior del grafico
plt.plot(x, [0]*len(x), color='black', linewidth=2)
#centrar el grafico
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
#flecha
plt.annotate(" ", xytext = (-3.3, 0.1), xy = (-2.5, 0.01), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
#mostrar ejes x, y
plt.xticks([-2.14, -1, 0, 1], ['{:.2f}'.format(i) for i in [-2.14, -1, 0, 1]])
plt.yticks([])
plt.show()
Ejemplo 2
Un examen de opcion multiple tiene 200 preguntas, cada una con 4 respuestas posibles, de las que solo una es la correcta. ¿Cual es la probabilidad de que solamente adivinando se obtengan de 25 a 30 respuestas correctas para 80 de los 200 problemas sobre los que el estudiante no tiene conocimientos?
Solución
La probabilidad de adivinar una respuesta correcta para cada una de las 80 preguntas es $p$=1/4. Si x representa el numero de respuestas correctas solo por que se adivinaron, entonces
\begin{align*} P(25\leq X\leq 30) = \sum_{x=25}^{30} b(x;80,1/4) \end{align*}
Al usar la aproximacion de la curva normal con
\begin{align*} \mu = np =(80)\left(\frac{1}{4}\right) = 20 \end{align*}
y
\begin{align*} \sigma =\sqrt{npq} = \sqrt{(80)\left(\frac{1}{4}\right)\left(\frac{3}{4}\right)}= 3.873 \end{align*}
necesitamos el area entre $x_1=24.5$ y $x_2=30.5$.
Los valores $z$ correspondientes son
\begin{equation*} z_1=\frac{24.5-20}{3.873} = 1.16 \quad y \quad z_2=\frac{30.5-20}{3.873} = 2.71 \end{equation*}
La probabilidad de adivinar correctamente de 25 a 30 preguntas es dada por la region sombreada de la siguiente figura, encontramos que:
\begin{align*} P(25 \leq X \leq 30) &= P(1.16 < X < 2.71)\\ &=P[(Z<2.71) - (Z< 1.16)]\\ &= 0.9966-0.8770 = 0.1196 \end{align*}
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
x = np.arange(-2.9, 2.9, 0.001)
#pintar el fondo externo del grafico
plt.figure(facecolor='#D4F8B7')
#area de sombreado rango
x_filtered = x[(x >= 1.16) & (x<=2.71)]
#pintar la linea curva del grafico
plt.plot(x, norm.pdf(x, 0, 1), linewidth = 1, color = '#000')
#pintar el area sombreada del grafico y graficar
plt.fill_between(x_filtered, norm.pdf(x_filtered, 0, 1), color='#5CCB5F', alpha=0.5, edgecolor='black')
#añadir texto al grafico
plt.text(2.9, 0.10, ("$P(1.16 \u003C Z \u003C 2.71) \u003D 0.1196$"))
plt.text(3, 0, ("z"))
#bordes del grafico
ax = plt.gca()
ax.spines['top'].set_color('#009929')
ax.spines['top'].set_linewidth(2)
#ancho del borde superior
ax.spines['top'].set_bounds(-6, 6)
ax.spines['bottom'].set_color('#009929')
ax.spines['bottom'].set_linewidth(2)
#ancho del borde inferior
ax.spines['bottom'].set_bounds(-6, 6)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
#pintar el fondo interno del grafico
ax.set_facecolor('#D4F8B7')
#linea inferior del grafico
plt.plot(x, [0]*len(x), color='black', linewidth=2)
#centrar el grafico
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
#flecha
plt.annotate(" ", xytext = (2.9, 0.1), xy = (1.8, 0.09), arrowprops = dict(facecolor = 'black', width = 0.2, headwidth = 8),
horizontalalignment = 'center')
#mostrar ejes x, y
plt.xticks([-3,-2,-1, 0 ,1.16,2,2.71], ['{:.2f}'.format(i) for i in [-3,-2,-1, 0, 1.16,2, 2.71]])
plt.yticks([])
plt.show()
6.4 Distribución de probabilidad exponencial¶
La distribución de probabilidad exponencial es una distribución continua que esta ligada al tiempo, se utiliza para modelar tiempos de espera para la ocurrencia de un cierto evento se puede usarse para variables aleatorias como el tiempo entre la llegada de un automóvil a un autolavado, el tiempo requerido para cargar un camión, el tiempo de espera para ser atendidos los pacientes en una clínica, tiempo de espera en un banco, etc.
La función de densidad de probabilidad exponencial se presenta a continuación.
- $\mu$ = valor esperado o media
Como ejemplo de la distribución exponencial, suponga que $x$ representa el tiempo de carga para un camión en el muelle Schips y sigue dicha distribución. Si la media, o promedio, del tiempo de carga es 15 minutos ($\mu$ = 15), la función de densidad de probabilidad apropiada para $x$ es:
\begin{equation*} f(x) = \frac{1}{15} e^{-\frac{x}{15}} \end{equation*}
La figura 6.10 es la gráfica de esta función de densidad de probabilidad
Cálculo de probabilidades para la distribución exponencial¶
Al igual que con la distribución de probabilidad continua, el área bajo la curva correspondiente a un intervalo proporciona la probabilidad de que la variable aleatoria asuma un valor en ese intervalo.
En el muelle MÓNACO, la probabilidad de que la carga de un camión tarde 20 minutos o menos $P(x \leqslant 10)$ se define como el área bajo la curva en la figura 6.10 de x = 0 a x = 10. De manera similar, la probabilidad de que dicho tiempo sea de 20 minutos o menos $P(x \leqslant 25)$ es el área bajo la curva de x = 0 a x = 25. Note también que la probabilidad de que el tiempo de carga esté entre 10 y 25 minutos $P(10 \leqslant x \leqslant 25)$ está dado por el área bajo la curva de x = 10 a x = 25. Para calcular probabilidades exponenciales como las que se acaban de describir, se usa la fórmula siguiente, la cual proporciona la probabilidad acumulada de obtener un valor para la variable aleatoria exponencial menor o igual que un valor específico denotado por $x_0$.
Figura 6.10 Distribución exponencial para el ejemplo del muelle de carga Schips
import numpy as np
import matplotlib.pyplot as plt
# Definir la función
def f(x):
return (1/20) * np.exp(-x/20)
# Generar valores x
x = np.linspace(0, 35, 1000)
# Calcular los valores y correspondientes
y = f(x)
# Crear la gráfica
plt.figure(figsize=(8, 6))
plt.plot(x, y, label=r'$f(x) = \frac{1}{20}e^{-\frac{x}{20}}$', color='black')
plt.xlabel('Tiempo de carga')
# Agregar fondo verde
plt.gca().set_facecolor('#E1FFAF')
plt.gcf().patch.set_facecolor('#E1FFAF')
# Colorear las regiones entre 0-6 y 18-30
plt.fill_between(x, y, where=[(val >= 0 and val <= 10) or (val >= 25 and val <= 35) for val in x], color='#98F84A')
plt.fill_between(x, y, where=[(val >= 10 and val <= 25) for val in x], color='#5ccb5f')
# Establecer los lugares y etiquetas deseadas en el eje x
plt.xticks([0, 5, 10, 15, 20, 25, 30, 35])
# Establecer las ubicaciones y etiquetas deseadas en el eje y
plt.yticks([0.01, 0.03, 0.05, 0.07])
# Ajustar límites de los ejes
plt.ylim(0, 0.07) # Ajusta el límite y según tu preferencia
plt.xlim(0, 30) # Ajusta el límite x según tu preferencia
# Ocultar solo las aristas de la derecha y de arriba
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
# Añade lineas en x = 10 y 25
plt.vlines(x=10, ymin=0, ymax=0.03031, color='black', linestyle='-', linewidth=1)
plt.vlines(x=25, ymin=0, ymax=0.01432, color='black', linestyle='-', linewidth=1)
# Ajustar las líneas en el eje x
for point in [0, 5, 10, 15, 20, 25, 30, 35]:
plt.vlines(x=point, ymin=0, ymax=0.001, color='black', linestyle='-', linewidth=1)
plt.text(30.5, 0, r'$x$', ha='left', va='center', color='black')
# Ajustar las líneas en el eje y
for point in [0.01, 0.03, 0.05, 0.07]:
plt.hlines(y=point, xmin=0, xmax=0.5, color='black', linestyle='-', linewidth=1)
plt.text(0, 0.074, r'$f(x)$', ha='left', va='center', color='black')
# Añade una flecha que apunte al intervalo entre 0 y 6
plt.annotate('$P(x \leqslant 10)$', xy=(3, 0.025), xytext=(5, 0.055),
arrowprops=dict(facecolor='black', arrowstyle='->'))
# Añade una flecha que apunte al intervalo entre 6 y 18
plt.annotate('$P(10 \leqslant x \leqslant 25)$', xy=(16, 0.015), xytext=(18, 0.05),
arrowprops=dict(facecolor='black', arrowstyle='->'))
# Mostrar la gráfica
plt.show()
Para el ejemplo del muelle MÓNACO, x = tiempo de carga en minutos y µ = 20 minutos.
Usando la ecuación (6.5)
\begin{equation*} P(x \leqslant x_0) = 1-e^{-\frac{x_0}{15}} \end{equation*}
Por consiguiente, la probabilidad de que un barco tarde 10 minutos o menos es
\begin{equation*} P(x \leqslant 6) = 1-e^{-\frac{10}{20}} = 0.3935 \end{equation*}
Utilizando la ecuación (6.5), calculamos la probabilidad de cargar un barco en 25 minutos o menos.
\begin{equation*} P(x \leqslant 18) = 1-e^{-\frac{25}{20}} = 0.7135 \end{equation*}
Por tanto, la probabilidad de que la carga del barco tarde entre 10 y 25 minutos es igual a 0.6988 - 0.3297 = 0.3691.
\begin{align*} P(10 \leqslant x \leqslant 25)&=P(x \leqslant 25) - P(x \leqslant 10)\\ &= 0.7135 - 0.3935\\ &= 0.32 \end{align*}
Las probabilidades para cualquier otro intervalo pueden calcularse de manera similar. En el ejemplo anterior, el tiempo promedio que toma cargar un barco es µ = 20 minutos. Una propiedad de la distribución exponencial indica que la media de la distribución y la desviación estándar de la distribución son iguales. Por tanto, la desviación estándar del tiempo que lleva cargar un barco es σ = 20 minutos. La varianza es $σ^2 = (20)^2 = 400.$
Relación entre las distribuciones de Poisson y exponencial¶
Si la distribución de Poisson proporciona una descripción apropiada del número de ocurrencias por intervalo, la distribución exponencial provee una descripción de la duración del intervalo entre ocurrencias.
Ejercicios¶
Ejercicio 1. En la ciudad de La Paz se estima que la temperatura máxima en el mes de septiembre sigue una distribución normal, con media 18° y desviación típica 4°.
Calcular el numero de dias del mes en los que se espera alcanzar maximas entre 16° y 21° .
Solución \begin{align} P(16 \leq x \leq 21) &= P\left(\frac{16 - 18}{4} \leq z \leq \frac{21 - 18}{4}\right)\\ &= P(-0.5 \leq z \leq 0.75)\\ &= P(z \leq 0.75) - P(z \geq -0.5)\\ &= P(z \leq 0.75) - [1 - P(z \leq 0.5)] \end{align}
Buscamos los valores en la tabla de distribucion normal:
\begin{equation*} P(z \leq 0.75) = 0.7733 \quad y \quad P(z \leq 0.5) = 0.6914 \end{equation*}
Por lo tanto
\begin{align} 30 \cdot P(16 \leq x \leq 21) &= 30 \cdot P\left(\frac{16 - 18}{4} \leq z \leq \frac{21 - 18}{4}\right)\\ &= (30)[0.7733-(1-0.6914)]\\ &= (30)(0.4647)\\ &= 13.941 \end{align}
∴ Esto quiere decir, que en todo el mes, solo 14 dias alcanzaran temperatura entre 16 y 21 grados
Ejercicio 2. La media de los pesos de 600 estudiantes de un colegio es 70 kg y la desviacion tipica 4 kg.
Suponiendo que los pesos se distribuyen normalmente, hallar cuantos estudiantes pesan:
1) Entre 60 kg y 75 kg.
2) Mas de 90 kg.
3) Menos de 64 kg
Solución
1 Entre 60 kg y 75 kg.
\begin{align} P(60 < x \leq 75) &= P\left(\frac{60 - 70}{4} \leq z \leq \frac{75 - 70}{4}\right)\\ &= P(-2.5 \leq z \leq 1.25)\\ &= P(z \leq 1.25) - P(z \geq -2.5)\\ &= P(z \leq 1.25) - [1 - P(z \leq 2.5)] \end{align}
Buscamos los valores en la tabla de distribucion normal:
\begin{equation*} P(z \leq 1.25) = 0.8943 \quad y \quad P(z \leq 2.5) = 0.9937 \end{equation*}
Por lo tanto
\begin{align} 600 \cdot P(60 < x \leq 75) &= 600 \cdot P\left(\frac{60 - 70}{4} \leq z \leq \frac{75 - 70}{4}\right)\\ &= (600)[0.8943-(1-0.9937)]\\ &= 533 \end{align}
∴ De los 600 estudiantes 533 se encuentran entre los 60 y 75 kilogramos de peso
2 Mas de 90 kg.
\begin{align} P(x > 90) &= P\left(z >\frac{90 - 70}{4}\right)\\ &= P(z > 5)\\ &= 1 - P(z \leq 5)\\ &= 1-1\\ &= 0 \end{align}
multiplicando por 600
\begin{equation} 600 \cdot P (x > 90) = (600)(0) = 0 \end{equation}
∴ Es imposible hallar a un solo estudiante por encima de los 90 kilogramos
3 Menos de 64 kg.
\begin{align} P(x < 64) &= P\left(z < \frac{64 - 70}{4}\right)\\ &= P(z < -1.5)\\ &= 1 - P(z < 1.5)\\ &= 1-0.9331\\ &= 0.0669 \end{align}
Por lo tanto
\begin{equation} 600 \cdot P (x < 64) = (600)(0.0669) = 40.14 \end{equation}
∴ Hay 40 estudiantes que pesan menos de 64 kilogramos
Ejercicio 3. El número de minutos requeridos por un estudiante de la carrera de INFORMATICA para terminar un examen se distribuye como una exponencial, con un promedio de 70 minutos. Suponga que el examen inicia a las 8:00am. ¿Cuál es la probabilidad que termine antes de las 8:45am?
Solución
\begin{align*} μ &= 70[min]\\ x &= tiempo\ en\ minutos\ para\ resolver\ el\ examen \end{align*}
como el examen empieza a las 8:00am y necesitamos la probabilidad de que termine antes de las 8:45am, aqui el intervalo de tiempo va de 8:00am a 8:45am lo cual nos da un tiempo de 45 minutos
\begin{equation*} x_0 = 45[min] \end{equation*}
lo cual significa que la probabilidad buscada es la siguiente
\begin{equation*} P(x \leq 45) \end{equation*}
usando la ecuación (6.5)
\begin{equation*} P(x < 45) \end{equation*}
usando la probabilidad obtenida y la ecuacion (6.5)
\begin{align} P(x < 45) &= 1-e^{-\frac{45}{70}}\\ &= 0.4742 \end{align}
por lo tanto la probabilidad de que un estudiante de la carrera de INFORMATICA termine el examen antes de las 8:45am es
\begin{equation} P(x < 45) = 0.4742 \end{equation}
Ejercicio 4. En la ciudad de La Paz el tiempo de arribo de los PumaKataris tiene una distribucion exponencial con media de 10 minutos.
a) ¿Cual es la probabilidad de que una persona tenga que esperar mas de una hora para tomar un PumaKatari?
b) Suponga que la persona ya espero una hora. ¿cual es la probabilidad de que llegue uno en los siguientes 10 minutos?
Solución
a)
Sea la variable aleatoria x la siguiente \begin{equation*} x = \text{tiempo que tarda en minutos un Pumakatari para llegar a la parada} \end{equation*}
\begin{align*} μ &= 10[min]\\ x_0 &= 1[h] \end{align*}
convirtiendo las horas a minutos
\begin{equation*} x_0 = 60[min] \end{equation*}
usando la ecuacion (6.5)
\begin{equation} P(x \leq 60) = 1-e^{-\frac{60}{10}} \tag{1} \end{equation}
pero se nos pide $P(x > 60)$
Por la regla del complemento y usando la ecuacion (1) obtenida anteriormente
\begin{align} P(x \leq 60) &= 1 - P(x > 60)\\ P(x \leq 60) &= 1-e^{-\frac{60}{10}}\\ P(x > 60) &= e^{-\frac{60}{10}}\\ &=e^{-\frac{6}{1}}\\ &=0.0025 \end{align}
la probabilidad de que una persona espere mas de una hora un PumaKatari es
\begin{equation} P(x > 60) = 0.0025 \end{equation}
b)
la persona ya espero una hora, y se quiere calcular la probabilidad de que llegue uno en los siguientes 10 minutos el intervalo de tiempo empieza despues de la hora y acaba en los 10 minutos por lo tanto \begin{align*} μ &= 10[min]\\ x_0 &= 10[min] \end{align*}
\begin{equation*} P(x \leq 10) \end{equation*}
usando la ecuacion (6.5)
\begin{align} P(x \leq 10) &= 1-e^{-\frac{10}{10}}\\ &= 0.632 \end{align}
Si la persona ya espero una hora la probabilidad de que llegue un PumaKatari en los siguientes 10 minutos es
\begin{equation} P(x \leq 10) = 0.632 \end{equation}