Ejercicios Guiados por Distribución

Estructura completa: Situación → Fórmula → Solución manual → Código Python


🟦 EJERCICIO 1 — DISTRIBUCIÓN DE POISSON


1️⃣ Situación de Ingeniería Agrícola

Contexto: En una finca de mango ubicada en el municipio de San Onofre (Sucre), se ha instalado un sistema de riego por goteo con 500 goteros. El registro histórico de los últimos 24 meses indica que, en promedio, se obstruyen 3 goteros por mes debido a acumulación de sales y sedimentos.

Preguntas de ingeniería: a) ¿Cuál es la probabilidad de que en un mes cualquiera no se obstruya ningún gotero?
b) ¿Cuál es la probabilidad de que se obstruyan exactamente 5 goteros en un mes?
c) ¿Cuál es la probabilidad de que se obstruyan más de 6 goteros en un mes (situación crítica que exige lavado completo del sistema)?


2️⃣ Fórmula y explicación de términos

\[P(X = k) = \frac{e^{-\lambda} \cdot \lambda^k}{k!}, \quad k = 0, 1, 2, 3, \ldots\]

Significado de cada término

Término Significado matemático Aplicación en Ingeniería Agrícola
\(X\) Variable aleatoria discreta Número de goteros obstruidos en un mes
\(k\) Valor específico de la variable 0, 1, 2, 3, … goteros dañados
\(\lambda\) Tasa media de ocurrencia por intervalo 3 goteros/mes (según histórico)
\(e\) Constante de Euler (≈ 2.71828) Base del decaimiento exponencial
\(k!\) Factorial de \(k\) Normaliza la probabilidad
\(P(X=k)\) Probabilidad exacta de \(k\) eventos Probabilidad de obstrucción puntual

Supuestos de aplicabilidad

  1. Los goteros se obstruyen independientemente.
  2. La tasa de obstrucción es constante en el tiempo (λ = 3/mes).
  3. Dos obstrucciones no ocurren en el mismo instante.

Propiedades

\[E[X] = \lambda = 3 \qquad Var(X) = \lambda = 3\]


3️⃣ Solución manual

Distribución: \(X \sim \text{Poisson}(\lambda = 3)\)

a) \(P(X = 0)\)

\[P(X=0) = \frac{e^{-3} \cdot 3^0}{0!} = \frac{e^{-3} \cdot 1}{1} = e^{-3} = 0.0498\]

\[\boxed{P(X=0) \approx 4.98\%}\]

b) \(P(X = 5)\)

\[P(X=5) = \frac{e^{-3} \cdot 3^5}{5!} = \frac{0.0498 \cdot 243}{120} = \frac{12.1014}{120} = 0.1008\]

\[\boxed{P(X=5) \approx 10.08\%}\]

c) \(P(X > 6) = 1 - P(X \leq 6)\)

Calculamos las probabilidades individuales:

\(k\) \(P(X=k)\)
0 \(\dfrac{e^{-3} \cdot 1}{1} = 0.0498\)
1 \(\dfrac{e^{-3} \cdot 3}{1} = 0.1494\)
2 \(\dfrac{e^{-3} \cdot 9}{2} = 0.2240\)
3 \(\dfrac{e^{-3} \cdot 27}{6} = 0.2240\)
4 \(\dfrac{e^{-3} \cdot 81}{24} = 0.1680\)
5 \(\dfrac{e^{-3} \cdot 243}{120} = 0.1008\)
6 \(\dfrac{e^{-3} \cdot 729}{720} = 0.0504\)
Σ 0.9665

\[P(X > 6) = 1 - 0.9665 = 0.0335\]

\[\boxed{P(X>6) \approx 3.35\%}\]

Interpretación agronómica: Hay ~3.35% de probabilidad de un mes crítico que requiere lavado completo. Si el ciclo de riego es de 6 meses, la probabilidad de al menos un mes crítico es \(1 - (1-0.0335)^6 \approx 18.5\%\)conviene presupuestar mantenimiento preventivo trimestral.


4️⃣ Código Python

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# ============================================================
# EJERCICIO 1: Poisson — Obstrucción de goteros (λ = 3/mes)
# ============================================================
lambda_goteros = 3

# --- a) P(X = 0) ---
prob_0 = stats.poisson.pmf(0, mu=lambda_goteros)
print(f"a) P(X = 0) = {prob_0:.4f}  ({prob_0*100:.2f}%)")

# --- b) P(X = 5) ---
prob_5 = stats.poisson.pmf(5, mu=lambda_goteros)
print(f"b) P(X = 5) = {prob_5:.4f}  ({prob_5*100:.2f}%)")

# --- c) P(X > 6) = 1 - P(X <= 6) ---
prob_mas_6 = 1 - stats.poisson.cdf(6, mu=lambda_goteros)
print(f"c) P(X > 6) = {prob_mas_6:.4f}  ({prob_mas_6*100:.2f}%)")

# --- Gráfico de la PMF ---
k = np.arange(0, 13)
probs = stats.poisson.pmf(k, mu=lambda_goteros)

plt.figure(figsize=(8, 4))
plt.bar(k, probs, color='steelblue', edgecolor='black', alpha=0.8)
plt.axvline(lambda_goteros, color='red', linestyle='--',
            label=f'Media λ = {lambda_goteros}')
plt.title(f'Distribución de Poisson — Goteros obstruidos/mes (λ = {lambda_goteros})')
plt.xlabel('Número de goteros obstruidos (k)')
plt.ylabel('Probabilidad P(X = k)')
plt.legend()
plt.grid(alpha=0.3)
plt.show()

🟩 EJERCICIO 2 — DISTRIBUCIÓN NORMAL


1️⃣ Situación de Ingeniería Agrícola

Contexto: En el municipio de Cereté (Córdoba), el cultivo de maíz se ve afectado por la temperatura ambiental. Un estudio agronómico determinó que la temperatura media diurna durante la fase de floración se distribuye aproximadamente Normal con media μ = 32 °C y desviación estándar σ = 2.5 °C.

Se sabe que el maíz entra en estrés térmico cuando la temperatura supera los 36 °C, lo que reduce el rendimiento hasta en un 20%.

Preguntas de ingeniería: a) ¿Cuál es la probabilidad de que en un día de floración la temperatura supere los 36 °C (estrés térmico)?
b) ¿Cuál es la probabilidad de que la temperatura esté entre 30 °C y 35 °C (rango óptimo)?
c) ¿Qué temperatura se supera solo el 10% de los días? (Cuantil 90, para diseño de sombráculos o riego refrescante)


2️⃣ Fórmula y explicación de términos

\[f(x) = \frac{1}{\sigma \sqrt{2\pi}} \exp\left[-\frac{1}{2}\left(\frac{x - \mu}{\sigma}\right)^2\right], \quad -\infty < x < +\infty\]

Significado de cada término

Término Significado matemático Aplicación en Ingeniería Agrícola
\(x\) Valor de la variable continua Temperatura diurna (°C)
\(\mu\) Media poblacional 32 °C (centro de la campana)
\(\sigma\) Desviación estándar 2.5 °C (dispersión térmica)
\(\sigma^2\) Varianza 6.25 °C²
\(\pi\) Constante ≈ 3.1416 Normalización del área bajo la curva
\(f(x)\) Densidad de probabilidad (NO es probabilidad) Altura de la campana en \(x\)

Concepto clave: la probabilidad es ÁREA

\[P(a \leq X \leq b) = \int_a^b f(x)\,dx = F(b) - F(a)\]

Estandarización (para usar tablas)

\[Z = \frac{X - \mu}{\sigma} \sim N(0, 1)\]


3️⃣ Solución manual

Distribución: \(X \sim N(\mu = 32, \sigma = 2.5)\)

a) \(P(X > 36)\)

Estandarizamos: \[Z = \frac{36 - 32}{2.5} = \frac{4}{2.5} = 1.6\]

Buscamos en tabla normal estándar: \[P(Z > 1.6) = 1 - P(Z \leq 1.6) = 1 - 0.9452 = 0.0548\]

\[\boxed{P(X > 36) \approx 5.48\%}\]

b) \(P(30 \leq X \leq 35)\)

Estandarizamos ambos límites: \[Z_1 = \frac{30 - 32}{2.5} = -0.8 \qquad Z_2 = \frac{35 - 32}{2.5} = 1.2\]

\[P(-0.8 \leq Z \leq 1.2) = \Phi(1.2) - \Phi(-0.8)\]

\[= 0.8849 - 0.2119 = 0.6730\]

\[\boxed{P(30 \leq X \leq 35) \approx 67.30\%}\]

c) Cuantil 90: \(x_{0.90}\) tal que \(P(X \leq x_{0.90}) = 0.90\)

De la tabla normal estándar: \(z_{0.90} = 1.2816\)

Desestandarizamos: \[x_{0.90} = \mu + z_{0.90} \cdot \sigma = 32 + 1.2816 \times 2.5 = 32 + 3.204 = 35.20 \text{ °C}\]

\[\boxed{x_{0.90} \approx 35.2 \text{ °C}}\]

Interpretación agronómica: - Hay ~5.5% de días con estrés térmico (>36 °C). - El 90% de los días la temperatura no supera 35.2 °C → diseñar el sistema de enfriamiento para ese umbral garantiza cobertura en 9 de cada 10 días.


4️⃣ Código Python

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# ============================================================
# EJERCICIO 2: Normal — Temperatura diurna (μ=32, σ=2.5)
# ============================================================
mu_temp = 32
sigma_temp = 2.5

# --- a) P(X > 36) ---
prob_estres = 1 - stats.norm.cdf(36, loc=mu_temp, scale=sigma_temp)
print(f"a) P(X > 36 °C) = {prob_estres:.4f}  ({prob_estres*100:.2f}%)")

# --- b) P(30 ≤ X ≤ 35) ---
prob_optimo = (stats.norm.cdf(35, loc=mu_temp, scale=sigma_temp)
               - stats.norm.cdf(30, loc=mu_temp, scale=sigma_temp))
print(f"b) P(30 ≤ X ≤ 35) = {prob_optimo:.4f}  ({prob_optimo*100:.2f}%)")

# --- c) Cuantil 90 (percentil 90) ---
cuantil_90 = stats.norm.ppf(0.90, loc=mu_temp, scale=sigma_temp)
print(f"c) Cuantil 90 = {cuantil_90:.2f} °C")

# --- Gráfico de la PDF con áreas sombreadas ---
x = np.linspace(mu_temp - 4*sigma_temp, mu_temp + 4*sigma_temp, 500)
pdf = stats.norm.pdf(x, loc=mu_temp, scale=sigma_temp)

fig, ax = plt.subplots(figsize=(9, 5))
ax.plot(x, pdf, 'b-', lw=2, label='PDF Normal(32, 2.5)')

# Área de estrés térmico (>36)
x_estres = np.linspace(36, mu_temp + 4*sigma_temp, 100)
ax.fill_between(x_estres, stats.norm.pdf(x_estres, mu_temp, sigma_temp),
                color='red', alpha=0.4, label=f'Estrés térmico: {prob_estres*100:.2f}%')

# Área de rango óptimo (30-35)
x_opt = np.linspace(30, 35, 100)
ax.fill_between(x_opt, stats.norm.pdf(x_opt, mu_temp, sigma_temp),
                color='green', alpha=0.3, label=f'Rango óptimo: {prob_optimo*100:.2f}%')

ax.axvline(cuantil_90, color='purple', linestyle='--',
           label=f'Cuantil 90 = {cuantil_90:.2f} °C')
ax.set_title('Temperatura diurna en floración — Modelo Normal')
ax.set_xlabel('Temperatura (°C)')
ax.set_ylabel('Densidad de probabilidad')
ax.legend()
ax.grid(alpha=0.3)
plt.show()

🟨 EJERCICIO 3 — DISTRIBUCIÓN GAMMA


1️⃣ Situación de Ingeniería Agrícola

Contexto: En el municipio de Sampués (Sucre) se planea cultivar ñame en secano. La precipitación mensual se modela con una distribución Gamma(α = 2.5, β = 20 mm). El cultivo requiere al menos 40 mm mensuales para no perder rendimiento.

Preguntas de ingeniería: a) ¿Cuál es la precipitación media esperada?
b) ¿Cuál es la probabilidad de que en un mes cualquiera llueva menos de 40 mm (mes deficitario)?
c) ¿Qué precipitación mensual se supera solo el 10% de los meses? (Cuantil 90, útil para diseñar drenajes)


2️⃣ Fórmula y explicación de términos

\[f(x) = \frac{1}{\Gamma(\alpha)\,\beta^{\alpha}}\, x^{\alpha - 1} e^{-x/\beta}, \quad x > 0\]

Significado de cada término

Término Nombre Significado matemático Aplicación en Ingeniería Agrícola
\(x\) Variable Valor de precipitación Lluvia mensual (mm)
\(\alpha\) Forma (shape) Controla la asimetría 2.5 → sesgo positivo moderado
\(\beta\) Escala (scale) Estira el eje x 20 mm → magnitud de la lluvia
\(\Gamma(\alpha)\) Función Gamma Generaliza el factorial: \(\Gamma(n)=(n-1)!\) Normaliza el área a 1
\(e^{-x/\beta}\) Decaimiento exponencial Reduce la probabilidad de valores grandes Cola derecha larga

Propiedades clave

\[E[X] = \alpha \beta \qquad Var(X) = \alpha \beta^2 \qquad \text{Sesgo} = \frac{2}{\sqrt{\alpha}} > 0\]

¿Por qué Gamma es ideal para precipitación?

  1. Solo admite valores positivos (lluvia ≥ 0 es físicamente obligatorio).
  2. Sesgo positivo: muchos meses llueve poco, pocos meses llueve muchísimo.
  3. Flexible: cambia de forma con α; se aproxima a Normal cuando α es grande.

3️⃣ Solución manual

Distribución: \(X \sim \text{Gamma}(\alpha = 2.5, \beta = 20)\)

a) Precipitación media esperada

\[E[X] = \alpha \beta = 2.5 \times 20 = 50 \text{ mm}\]

\[\boxed{E[X] = 50 \text{ mm/mes}}\]

Varianza: \(Var(X) = \alpha \beta^2 = 2.5 \times 400 = 1000 \text{ mm}^2\)
Desviación: \(\sigma = \sqrt{1000} = 31.6 \text{ mm}\)

b) \(P(X < 40)\)

Para la Gamma no existe una fórmula cerrada simple en términos elementales; se resuelve con la función Gamma incompleta o con tablas. Aproximamos numéricamente:

\[P(X < 40) = F(40;\, \alpha=2.5,\, \beta=20) \approx 0.297\]

\[\boxed{P(X < 40) \approx 29.7\%}\]

Interpretación: Casi 3 de cada 10 meses serán deficitarios (< 40 mm). En un ciclo de 6 meses, la probabilidad de al menos un mes deficitario es \(1-(0.703)^6 \approx 88\%\)altamente probable. Se recomienda riego complementario.

c) Cuantil 90: \(x_{0.90}\) tal que \(F(x_{0.90}) = 0.90\)

Con tabla o software: \(x_{0.90} \approx 103.6 \text{ mm}\)

\[\boxed{x_{0.90} \approx 103.6 \text{ mm}}\]

Interpretación: El 90% de los meses la precipitación no supera 103.6 mm. Solo 1 de cada 10 meses llueve más → dimensionar el drenaje para ~104 mm/mes cubre el 90% de los escenarios.

⚠️ Nota pedagógica: El cálculo de la CDF y los cuantiles de la Gamma se aprende a resolver con software (Python/R). A mano se practica la interpretación, no la integración.


4️⃣ Código Python

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# ============================================================
# EJERCICIO 3: Gamma — Precipitación mensual (α=2.5, β=20)
# ============================================================
alpha_g = 2.5
beta_g = 20

# --- a) Media y desviación ---
media = alpha_g * beta_g
varianza = alpha_g * beta_g**2
print(f"a) Media = {media:.2f} mm/mes")
print(f"   Desviación estándar = {np.sqrt(varianza):.2f} mm")

# --- b) P(X < 40) ---
prob_deficit = stats.gamma.cdf(40, a=alpha_g, scale=beta_g)
print(f"b) P(X < 40 mm) = {prob_deficit:.4f}  ({prob_deficit*100:.2f}%)")

# --- c) Cuantil 90 ---
cuantil_90_g = stats.gamma.ppf(0.90, a=alpha_g, scale=beta_g)
print(f"c) Cuantil 90 = {cuantil_90_g:.2f} mm")

# --- Gráfico PDF con áreas ---
x = np.linspace(0, 200, 500)
pdf = stats.gamma.pdf(x, a=alpha_g, scale=beta_g)

fig, ax = plt.subplots(figsize=(9, 5))
ax.plot(x, pdf, 'g-', lw=2, label=f'PDF Gamma(α={alpha_g}, β={beta_g})')

# Área de déficit (<40 mm)
x_def = np.linspace(0, 40, 100)
ax.fill_between(x_def, stats.gamma.pdf(x_def, a=alpha_g, scale=beta_g),
                color='red', alpha=0.4,
                label=f'Déficit (<40 mm): {prob_deficit*100:.1f}%')

ax.axvline(media, color='blue', linestyle=':', label=f'Media = {media:.0f} mm')
ax.axvline(cuantil_90_g, color='purple', linestyle='--',
           label=f'Cuantil 90 = {cuantil_90_g:.1f} mm')

ax.set_title('Precipitación mensual en Sampués — Modelo Gamma')
ax.set_xlabel('Precipitación mensual (mm)')
ax.set_ylabel('Densidad de probabilidad')
ax.legend()
ax.grid(alpha=0.3)
plt.show()

# --- Extra: CDF acumulada ---
fig, ax = plt.subplots(figsize=(9, 4))
cdf = stats.gamma.cdf(x, a=alpha_g, scale=beta_g)
ax.plot(x, cdf, 'g-', lw=2)
ax.axhline(0.90, color='purple', linestyle='--', alpha=0.6)
ax.axvline(cuantil_90_g, color='purple', linestyle='--', alpha=0.6)
ax.scatter([cuantil_90_g], [0.90], color='purple', zorder=5,
           label=f'Cuantil 90 = {cuantil_90_g:.1f} mm')
ax.set_title('Función de Distribución Acumulada (CDF) — Gamma')
ax.set_xlabel('Precipitación mensual (mm)')
ax.set_ylabel('F(x) = P(X ≤ x)')
ax.legend()
ax.grid(alpha=0.3)
plt.show()

📊 CUADRO RESUMEN COMPARATIVO

Aspecto Poisson Normal Gamma
Variable Goteros obstruidos/mes Temperatura diurna Precipitación mensual
Parámetros λ = 3 μ = 32, σ = 2.5 α = 2.5, β = 20
Tipo Discreta Continua Continua
Rango {0,1,2,…} (-∞,+∞) (0,+∞)
Media 3 32 °C 50 mm
Pregunta a) P(X=0) = 4.98% P(X>36) = 5.48% E[X] = 50 mm
Pregunta b) P(X=5) = 10.08% P(30≤X≤35) = 67.3% P(X<40) = 29.7%
Pregunta c) P(X>6) = 3.35% Cuantil 90 = 35.2 °C Cuantil 90 = 103.6 mm
Decisión agrícola Mantenimiento preventivo Sistema de enfriamiento Riego complementario

🎯 Recomendaciones pedagógicas

  1. Antes de la Sesión 2, los estudiantes deben:
    • Resolver los tres ejercicios a mano (excepto la CDF/PPF de Gamma, que se resuelve con software).
    • Ejecutar el código Python y comparar sus resultados manuales.
    • Redactar la interpretación agronómica de cada resultado (no basta el número).
  2. En la Sesión 2, se retomarán estos mismos ejercicios para:
    • Traducir cada cálculo a R (dpois, pnorm, qgamma, etc.).
    • Comparar la sintaxis Python vs. R.
    • Calcular los cuantiles manualmente con tablas y verificar con q...().
  3. Producto entregable sugerido:
    • Un RMarkdown con los tres ejercicios, incluyendo: fórmula, cálculo manual, código R, gráfico y conclusión agronómica.

¿Deseas que prepare también: - 🧾 Una plantilla RMarkdown vacía con la estructura de los tres ejercicios para que los estudiantes la llenen? - 🎥 Un guion de video corto (5 min) explicando uno de los ejercicios paso a paso? - 📝 Un quiz de verificación con preguntas de opción múltiple basadas en estos tres ejercicios?