Con Mi Profe: Julio Hurtado Marquez; EMAIL_TAREAS: juliohurtado210307@gmail.com
La distribución \(\chi^2\) (chi-cuadrada) es fundamental en inferencia estadística, especialmente para el análisis de varianzas, pruebas de independencia y bondad de ajuste. Se define como la suma de cuadrados de variables normales estándar independientes.
Sea \(Y_1, Y_2, \ldots, Y_n\) una muestra aleatoria de tamaño \(n\) tomada de una población normal con media \(\mu\) y varianza \(\sigma^2\). Entonces:
\[Z_i = \frac{Y_i - \mu}{\sigma}, \quad i=1,2,\ldots,n\]
son variables aleatorias normales estándar e independientes. Además:
\[\sum_{i=1}^{n} Z_i^2 = \sum_{i=1}^{n} \frac{(Y_i - \mu)^2}{\sigma^2} \sim \chi^2_{(n)}\]
tiene una distribución chi-cuadrada con \(n\) grados de libertad.
Si \(\mathbf{Z} = (Z_1, Z_2, \ldots, Z_6)\) denota una muestra aleatoria de una distribución normal estándar, hallar un número \(b\) tal que:
\[P\left(\sum_{i=1}^{6} Z_i^2 \leq b\right) = 0.95\]
📝 Solución Analítica
Por el teorema anterior, \(\sum_{i=1}^{6} Z_i^2 \sim \chi^2_{(6)}\). Haciendo uso de la tabla para \(\chi^2\), se tiene que:
\[P(\chi^2_{(6)} \leq 12.5916) = 0.95\]
Por lo tanto, \(\boxed{b = 12.5916}\).
## Valor b tal que P(χ²(6) ≤ b) = 0.95: 12.5916
# ============================================
# EJEMPLO 1: DISTRIBUCIÓN CHI-CUADRADA
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import chi2
# Parámetros
gl = 6
confianza = 0.95
# Valor crítico (cuantil)
b = chi2.ppf(confianza, df=gl)
print(f"Valor b tal que P(χ²(6) ≤ b) = 0.95: {b:.4f}")
# ============================================
# VISUALIZACIÓN DE LA DISTRIBUCIÓN χ²
# ============================================
# Crear secuencia de valores x
x_vals = np.linspace(0, 20, 500)
densidad = chi2.pdf(x_vals, df=gl)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Distribución teórica
ax1.plot(x_vals, densidad, 'purple', lw=2, label=f'χ²({gl})')
# Región de probabilidad (0 a b)
x_fill = np.linspace(0, b, 100)
y_fill = chi2.pdf(x_fill, df=gl)
ax1.fill_between(x_fill, y_fill, alpha=0.4, color='purple',
label=f'P(χ² ≤ {b:.4f}) = 0.95')
ax1.axvline(b, color='red', linestyle='--', lw=2, label=f'b = {b:.4f}')
ax1.set_xlabel(r'$\chi^2$')
ax1.set_ylabel('Densidad')
ax1.set_title(f'Distribución χ² con {gl} grados de libertad')
ax1.legend()
ax1.grid(True, alpha=0.3)
# ============================================
# SIMULACIÓN DE LA DISTRIBUCIÓN χ²
# ============================================
np.random.seed(123)
n_sim = 10000
n = 6
# Simular muestras de normales estándar y calcular suma de cuadrados
simulaciones = np.array([np.sum(np.random.normal(0, 1, n)**2)
for _ in range(n_sim)])
# Histograma de las simulaciones
ax2.hist(simulaciones, bins=50, density=True, alpha=0.5,
color='purple', edgecolor='white', label='Simulación')
# Superponer curva teórica
x_teorica = np.linspace(0, 20, 500)
y_teorica = chi2.pdf(x_teorica, df=gl)
ax2.plot(x_teorica, y_teorica, 'r-', lw=2, label='Distribución teórica')
# Línea del valor crítico
ax2.axvline(b, color='blue', linestyle='--', lw=2, label=f'b = {b:.4f}')
# Proporción de simulaciones ≤ b
proporcion = np.mean(simulaciones <= b)
ax2.set_xlabel('Suma de cuadrados')
ax2.set_ylabel('Densidad')
ax2.set_title(f'Simulación χ²({gl})\nProporción simulada = {proporcion:.4f}')
ax2.legend()
ax2.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()Sea \(Y_1, Y_2, \ldots, Y_n\) una muestra aleatoria de tamaño \(n\) de una distribución normal con media \(\mu\) y varianza \(\sigma^2\). Entonces:
\[\frac{1}{\sigma^2} \sum_{i=1}^{n} (Y_i - \bar{Y})^2 = \frac{(n-1)S^2}{\sigma^2} \sim \chi^2_{(n-1)}\]
donde \(\bar{Y}\) y \(S^2\) son la media y varianza muestrales, respectivamente. Además, \(\bar{Y}\) y \(S^2\) son independientes.
Una embotelladora llena botellas con contenido \(Y \sim N(\mu, \sigma^2)\) donde \(\sigma = 1.0\) onza. Se toma una muestra aleatoria de \(n = 10\) botellas y se calcula la varianza muestral \(S^2\). Encuentre los números \(b_1\) y \(b_2\) tales que:
\[P(b_1 \leq S^2 \leq b_2) = 0.90\]
📝 Solución Analítica
Por el teorema anterior, \(\frac{(n-1)S^2}{\sigma^2} \sim \chi^2_{(n-1)}\). Obsérvese que:
\[P(b_1 \leq S^2 \leq b_2) = P\left(\frac{(n-1)b_1}{\sigma^2} \leq \frac{(n-1)S^2}{\sigma^2} \leq \frac{(n-1)b_2}{\sigma^2}\right)\]
\[= P\left(\frac{(10-1)b_1}{1} \leq \chi^2_{(9)} \leq \frac{(10-1)b_2}{1}\right) = P(9b_1 \leq \chi^2_{(9)} \leq 9b_2) = 0.90\]
Usando la tabla para \(\chi^2_{(9)}\), se tiene que:
\[P(3.325 \leq \chi^2_{(9)} \leq 16.919) = 0.90\]
\[\boxed{b_1 = \frac{3.325}{9} = 0.369} \quad \text{y} \quad \boxed{b_2 = \frac{16.919}{9} = 1.880}\]
## Valores críticos de χ²(9):
## χ²_inferior = 3.3251
## χ²_superior = 16.919
## Límites para S²:
## b1 = 0.3325
## b2 = 1.6919
# ============================================
# EJEMPLO 2: DISTRIBUCIÓN MUESTRAL DE LA VARIANZA
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import chi2
# Parámetros
n = 10
gl = n - 1 # 9 grados de libertad
confianza = 0.90
# Valor crítico inferior y superior de chi-cuadrado
chi2_inferior = chi2.ppf((1 - confianza)/2, df=gl) # 0.05 -> 3.325
chi2_superior = chi2.ppf((1 + confianza)/2, df=gl) # 0.95 -> 16.919
# Convertir a límites para S^2 (σ^2 = 1)
b1 = chi2_inferior / n
b2 = chi2_superior / n
print("Valores críticos de χ²(9):")
print(f" χ²_inferior = {chi2_inferior:.4f}")
print(f" χ²_superior = {chi2_superior:.4f}")
print("\nLímites para S²:")
print(f" b1 = {b1:.4f}")
print(f" b2 = {b2:.4f}")
# ============================================
# VISUALIZACIÓN DE LA DISTRIBUCIÓN
# ============================================
fig, axes = plt.subplots(1, 3, figsize=(15, 5))
# Gráfico 1: Distribución χ²(9)
x_vals = np.linspace(0, 25, 500)
densidad = chi2.pdf(x_vals, df=gl)
axes[0].plot(x_vals, densidad, 'purple', lw=2, label=f'χ²({gl})')
# Región central (90%)
x_central = np.linspace(chi2_inferior, chi2_superior, 100)
y_central = chi2.pdf(x_central, df=gl)
axes[0].fill_between(x_central, y_central, alpha=0.4, color='purple')
axes[0].axvline(chi2_inferior, color='red', linestyle='--',
label=f'χ²_inf = {chi2_inferior:.3f}')
axes[0].axvline(chi2_superior, color='red', linestyle='--',
label=f'χ²_sup = {chi2_superior:.3f}')
axes[0].set_xlabel(r'$\chi^2$')
axes[0].set_ylabel('Densidad')
axes[0].set_title(f'Distribución χ²({gl})\nRegión central 90%')
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Distribución de S²
x_vals_s2 = np.linspace(0, 3, 500)
densidad_s2 = chi2.pdf(x_vals_s2 * (n-1), df=gl) * (n-1)
axes[1].plot(x_vals_s2, densidad_s2, 'darkgreen', lw=2,
label=f'S² con n={n}, σ²=1')
# Región central (90%)
x_central_s2 = np.linspace(b1, b2, 100)
y_central_s2 = chi2.pdf(x_central_s2 * (n-1), df=gl) * (n-1)
axes[1].fill_between(x_central_s2, y_central_s2, alpha=0.4, color='darkgreen')
axes[1].axvline(b1, color='red', linestyle='--', label=f'b1 = {b1:.3f}')
axes[1].axvline(b2, color='red', linestyle='--', label=f'b2 = {b2:.3f}')
axes[1].set_xlabel('S²')
axes[1].set_ylabel('Densidad')
axes[1].set_title(f'Distribución muestral de S²\nP({b1:.3f} ≤ S² ≤ {b2:.3f}) = 0.90')
axes[1].legend()
axes[1].grid(True, alpha=0.3)
# ============================================
# SIMULACIÓN DE LA DISTRIBUCIÓN DE S²
# ============================================
np.random.seed(456)
n_sim = 10000
n = 10
sigma_verdadera = 1
simulaciones_s2 = []
for _ in range(n_sim):
muestra = np.random.normal(0, sigma_verdadera, n)
simulaciones_s2.append(np.var(muestra, ddof=1))
simulaciones_s2 = np.array(simulaciones_s2)
# Histograma de las simulaciones
axes[2].hist(simulaciones_s2, bins=50, density=True, alpha=0.5,
color='darkgreen', edgecolor='white', label='Simulación')
# Superponer curva teórica
axes[2].plot(x_vals_s2, densidad_s2, 'r-', lw=2, label='Distribución teórica')
axes[2].axvline(b1, color='blue', linestyle='--', label=f'b1 = {b1:.3f}')
axes[2].axvline(b2, color='blue', linestyle='--', label=f'b2 = {b2:.3f}')
# Proporción de simulaciones en el intervalo
proporcion = np.mean((simulaciones_s2 >= b1) & (simulaciones_s2 <= b2))
axes[2].set_xlabel('S²')
axes[2].set_ylabel('Densidad')
axes[2].set_title(f'Simulación de S²\nProporción en intervalo = {proporcion:.4f}')
axes[2].legend()
axes[2].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()La distribución t de Student es fundamental cuando se trabaja con muestras pequeñas y la varianza poblacional es desconocida. Fue desarrollada por William Sealy Gosset (bajo el seudónimo “Student”) en 1908.
Sea \(Z\) una variable aleatoria normal estándar y sea \(\chi^2\) una variable aleatoria chi-cuadrada con \(\nu\) grados de libertad. Entonces, si \(Z\) y \(\chi^2\) son independientes:
\[T = \frac{Z}{\sqrt{\chi^2 / \nu}} \sim t_{(\nu)}\]
se dice que \(T\) tiene una distribución t de Student con \(\nu\) grados de libertad.
La resistencia a la tensión para cierto tipo de alambre se distribuye normalmente con una media desconocida \(\mu\) y una varianza \(\sigma^2\). Se seleccionan al azar seis segmentos de alambre de un rollo grande y se midió \(Y_i\) := la resistencia a la tensión para el segmento \(i\), en donde \(i = 1, 2, \ldots, 6\). La media de la población \(\mu\) y la varianza \(\sigma^2\) se pueden estimar por \(\bar{Y}\) y \(S^2\), respectivamente. Así, \(\sigma_{\bar{Y}}^2\) se puede estimar por \(S^2/n\).
Obtener la probabilidad aproximada de que \(\bar{Y}\) esté a lo más a \(2S/\sqrt{n}\) de la verdadera media poblacional \(\mu\).
📝 Solución Analítica
De la definición anterior:
\[T = \frac{Z}{\sqrt{\chi^2 / \nu}} = \frac{\frac{\bar{Y} - \mu}{\sigma / \sqrt{n}}}{\sqrt{\frac{(n-1)S^2 / \sigma^2}{(n-1)}}} = \frac{\frac{\bar{Y} - \mu}{\sigma / \sqrt{n}}}{\sqrt{S^2 / \sigma^2}} = \frac{\bar{Y} - \mu}{S / \sqrt{n}} \sim t_{(n-1)}\]
Se desea encontrar:
\[P\left(|\bar{Y} - \mu| \leq \frac{2S}{\sqrt{n}}\right) = P\left(-2 \leq \frac{\bar{Y} - \mu}{S / \sqrt{n}} \leq 2\right) = P(-2 \leq t_{(5)} \leq 2)\]
Usando la tabla \(t\) de Student con \(5\) grados de libertad:
\[\boxed{P(-2 \leq t_{(5)} \leq 2) = 0.8980}\]
Nótese que si se conociese \(\sigma^2\), se tendría:
\[P\left(|\bar{Y} - \mu| \leq \frac{2\sigma}{\sqrt{n}}\right) = P\left(-2 \leq \frac{\bar{Y} - \mu}{\sigma / \sqrt{n}} \leq 2\right) = P(-2 \leq Z \leq 2) = 0.9544\]
## P(-2 ≤ t(5) ≤ 2) = 0.8981
## P(-2 ≤ Z ≤ 2) = 0.9545
# ============================================
# EJEMPLO 3: DISTRIBUCIÓN t DE STUDENT
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import t, norm
# Parámetros
n = 6
gl = n - 1 # 5 grados de libertad
valor_t = 2
# Probabilidad P(-2 ≤ t(5) ≤ 2)
probabilidad = t.cdf(valor_t, df=gl) - t.cdf(-valor_t, df=gl)
print(f"P(-2 ≤ t(5) ≤ 2) = {probabilidad:.4f}")
# Comparación con distribución normal
prob_normal = norm.cdf(2) - norm.cdf(-2)
print(f"P(-2 ≤ Z ≤ 2) = {prob_normal:.4f}")
# ============================================
# VISUALIZACIÓN DE LA DISTRIBUCIÓN t vs NORMAL
# ============================================
x_vals = np.linspace(-4, 4, 500)
densidad_t = t.pdf(x_vals, df=gl)
densidad_norm = norm.pdf(x_vals)
fig, axes = plt.subplots(1, 3, figsize=(15, 5))
# Gráfico 1: Distribución t(5)
axes[0].plot(x_vals, densidad_t, 'darkorange', lw=2, label=f't({gl})')
# Región de interés (-2 a 2)
x_fill = np.linspace(-2, 2, 100)
y_fill = t.pdf(x_fill, df=gl)
axes[0].fill_between(x_fill, y_fill, alpha=0.4, color='darkorange')
axes[0].axvline(-2, color='red', linestyle='--')
axes[0].axvline(2, color='red', linestyle='--')
axes[0].set_xlabel('t')
axes[0].set_ylabel('Densidad')
axes[0].set_title(f'Distribución t({gl})\nP(-2 ≤ t ≤ 2) = {probabilidad:.4f}')
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Comparación t vs Normal
axes[1].plot(x_vals, densidad_t, 'darkorange', lw=2, label=f't({gl})')
axes[1].plot(x_vals, densidad_norm, 'steelblue', lw=2, linestyle='--',
label='Normal(0,1)')
axes[1].fill_between(x_fill, y_fill, alpha=0.2, color='darkorange')
axes[1].fill_between(x_fill, norm.pdf(x_fill), alpha=0.2, color='steelblue')
axes[1].axvline(-2, color='gray', linestyle='--')
axes[1].axvline(2, color='gray', linestyle='--')
axes[1].set_xlabel('Valor')
axes[1].set_ylabel('Densidad')
axes[1].set_title('Comparación: t(5) vs Normal Estándar')
axes[1].legend()
axes[1].grid(True, alpha=0.3)
# ============================================
# SIMULACIÓN DE LA DISTRIBUCIÓN t
# ============================================
np.random.seed(789)
n_sim = 10000
gl_sim = 5
# Simular usando la definición: t = Z / sqrt(χ²/ν)
Z_sim = np.random.normal(0, 1, n_sim)
chi2_sim = np.random.chisquare(gl_sim, n_sim)
t_sim = Z_sim / np.sqrt(chi2_sim / gl_sim)
# Histograma de las simulaciones
axes[2].hist(t_sim, bins=50, density=True, alpha=0.5,
color='darkorange', edgecolor='white', label='Simulación')
# Superponer curva teórica
x_teorica = np.linspace(-4, 4, 500)
y_teorica = t.pdf(x_teorica, df=gl_sim)
axes[2].plot(x_teorica, y_teorica, 'r-', lw=2, label='Distribución teórica')
axes[2].axvline(-2, color='blue', linestyle='--', label='t = -2')
axes[2].axvline(2, color='blue', linestyle='--', label='t = 2')
# Proporción de simulaciones en el intervalo
proporcion = np.mean((t_sim >= -2) & (t_sim <= 2))
axes[2].set_xlabel('t')
axes[2].set_ylabel('Densidad')
axes[2].set_title(f'Simulación t({gl_sim})\nProporción en [-2,2] = {proporcion:.4f}')
axes[2].legend()
axes[2].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()📊 RESUMEN - DISTRIBUCIONES MUESTRALES
Definición: \(\sum Z_i^2\)
Aplicación: Varianza muestral, pruebas de independencia
Parámetro: \(\nu = n-1\) (grados de libertad)
Definición: \(t = \frac{Z}{\sqrt{\chi^2/\nu}}\)
Aplicación: Inferencia sobre media con \(\sigma\) desconocida
Parámetro: \(\nu = n-1\) (grados de libertad)
Definición: \(F = \frac{\chi^2_1/\nu_1}{\chi^2_2/\nu_2}\)
Aplicación: Comparación de varianzas, ANOVA
Parámetros: \(\nu_1, \nu_2\) (grados de libertad)
✅ PUNTOS CLAVE
• La distribución \(\chi^2\) surge de
la suma de cuadrados de normales estándar independientes.
• \(\frac{(n-1)S^2}{\sigma^2} \sim
\chi^2_{(n-1)}\) es fundamental para inferencia sobre la
varianza.
• La distribución \(t\)
se utiliza cuando la varianza poblacional es desconocida (caso más
realista).
• A medida que \(\nu \to
\infty\), la distribución \(t\)
se aproxima a la normal estándar.
• R y Python permiten simular y
visualizar estas distribuciones para comprender su comportamiento.
2.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
La distribución F de Fisher (también conocida como distribución F de Snedecor) es fundamental en el análisis de varianza (ANOVA), comparación de varianzas y en la evaluación de modelos de regresión. Fue desarrollada por Sir Ronald Fisher y George W. Snedecor.
Sean \(\chi_1^2\) y \(\chi_2^2\) variables aleatorias chi-cuadrada con \(\nu_1\) y \(\nu_2\) grados de libertad, respectivamente. Entonces, si \(\chi_1^2\) y \(\chi_2^2\) son independientes:
\[F = \frac{\chi_1^2 / \nu_1}{\chi_2^2 / \nu_2} \sim F_{(\nu_1, \nu_2)}\]
se dice que \(F\) tiene una distribución F con \(\nu_1\) grados de libertad del numerador y \(\nu_2\) grados de libertad del denominador.
Sean \(S_1^2\) y \(S_2^2\) las varianzas muestrales de dos muestras independientes de tamaños \(n_1\) y \(n_2\) tomadas de poblaciones normales con varianzas \(\sigma_1^2\) y \(\sigma_2^2\), respectivamente. Entonces:
\[\frac{S_1^2 / \sigma_1^2}{S_2^2 / \sigma_2^2} = \frac{\chi_1^2 / (n_1-1)}{\chi_2^2 / (n_2-1)} \sim F_{(n_1-1, n_2-1)}\]
En particular, si \(\sigma_1^2 = \sigma_2^2\), entonces:
\[\frac{S_1^2}{S_2^2} \sim F_{(n_1-1, n_2-1)}\]
Si tomamos dos muestras independientes de tamaño \(n_1 = 6\) y \(n_2 = 10\) de dos poblaciones normales con la misma varianza poblacional, encuentre el número \(b\) tal que:
\[P\left(\frac{S_1^2}{S_2^2} \leq b\right) = 0.95\]
📝 Solución Analítica
De la definición anterior:
\[F = \frac{\chi_1^2 / \nu_1}{\chi_2^2 / \nu_2} = \frac{\frac{(n_1-1)S_1^2}{\sigma_1^2} / (n_1-1)}{\frac{(n_2-1)S_2^2}{\sigma_2^2} / (n_2-1)} = \frac{S_1^2 / \sigma_1^2}{S_2^2 / \sigma_2^2} \sim F_{(n_1-1, n_2-1)}\]
Se desea encontrar \(b\) tal que \(P(S_1^2/S_2^2 \leq b) = 0.95\). Como \(\sigma_1^2 = \sigma_2^2\), se tiene:
\[P\left(\frac{S_1^2}{S_2^2} \leq b\right) = P\left(\frac{S_1^2/\sigma_1^2}{S_2^2/\sigma_2^2} \leq b\right) = P(F_{(5,9)} \leq b) = 0.95\]
Haciendo uso de la tabla para la distribución \(F\) se tiene que el valor apropiado es:
\[\boxed{b = 3.48}\]
## Valor b tal que P(F(5,9) ≤ b) = 0.95: 3.4817
# ============================================
# EJEMPLO 1: DISTRIBUCIÓN F
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import f, norm
# Parámetros
n1 = 6
n2 = 10
gl1 = n1 - 1 # 5 grados de libertad del numerador
gl2 = n2 - 1 # 9 grados de libertad del denominador
confianza = 0.95
# Valor crítico de F
b = f.ppf(confianza, dfn=gl1, dfd=gl2)
print(f"Valor b tal que P(F(5,9) ≤ b) = 0.95: {b:.4f}")
# ============================================
# VISUALIZACIÓN DE LA DISTRIBUCIÓN F
# ============================================
x_vals = np.linspace(0, 6, 500)
densidad = f.pdf(x_vals, dfn=gl1, dfd=gl2)
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Distribución F(5,9)
axes[0].plot(x_vals, densidad, 'firebrick', lw=2, label=f'F({gl1},{gl2})')
# Región de probabilidad (0 a b)
x_fill = np.linspace(0, b, 100)
y_fill = f.pdf(x_fill, dfn=gl1, dfd=gl2)
axes[0].fill_between(x_fill, y_fill, alpha=0.4, color='firebrick')
axes[0].axvline(b, color='red', linestyle='--', lw=2, label=f'b = {b:.4f}')
axes[0].set_xlabel('F')
axes[0].set_ylabel('Densidad')
axes[0].set_title(f'Distribución F({gl1},{gl2})\nP(F ≤ {b:.4f}) = 0.95')
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# ============================================
# SIMULACIÓN DEL COCIENTE DE VARIANZAS
# ============================================
np.random.seed(123)
n_sim = 10000
n1_sim = 6
n2_sim = 10
sigma_verdadera = 1 # varianzas iguales
simulaciones_F = []
for _ in range(n_sim):
muestra1 = np.random.normal(0, sigma_verdadera, n1_sim)
muestra2 = np.random.normal(0, sigma_verdadera, n2_sim)
simulaciones_F.append(np.var(muestra1, ddof=1) / np.var(muestra2, ddof=1))
simulaciones_F = np.array(simulaciones_F)
# Gráfico 2: Comparación simulación vs teórica
axes[1].hist(simulaciones_F, bins=50, density=True, alpha=0.5,
color='firebrick', edgecolor='white', label='Simulación')
# Superponer curva teórica
x_teorica = np.linspace(0, 6, 500)
y_teorica = f.pdf(x_teorica, dfn=gl1, dfd=gl2)
axes[1].plot(x_teorica, y_teorica, 'r-', lw=2, label='Distribución teórica')
axes[1].axvline(b, color='blue', linestyle='--', lw=2, label=f'b = {b:.4f}')
# Proporción de simulaciones ≤ b
proporcion = np.mean(simulaciones_F <= b)
axes[1].set_xlabel('F = S₁²/S₂²')
axes[1].set_ylabel('Densidad')
axes[1].set_title(f'Simulación F({gl1},{gl2})\nProporción ≤ b = {proporcion:.4f}')
axes[1].legend()
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
# ============================================
# VISUALIZACIÓN DE DIFERENTES GRADOS DE LIBERTAD
# ============================================
fig, ax = plt.subplots(figsize=(10, 6))
gl_combinaciones = [(1, 5), (5, 5), (10, 10), (30, 30)]
colores = ['firebrick', 'darkorange', 'forestgreen', 'steelblue']
x_vals = np.linspace(0, 5, 500)
for i, (gl1_i, gl2_i) in enumerate(gl_combinaciones):
densidad_i = f.pdf(x_vals, dfn=gl1_i, dfd=gl2_i)
ax.plot(x_vals, densidad_i, color=colores[i], lw=2,
label=f'F({gl1_i},{gl2_i})')
ax.set_xlabel('F')
ax.set_ylabel('Densidad')
ax.set_title('Distribución F con diferentes grados de libertad')
ax.legend()
ax.grid(True, alpha=0.3)
plt.show()El Teorema del Límite Central (TLC) es uno de los resultados más importantes en estadística. Establece que, independientemente de la distribución de la población, la distribución de la media muestral se aproxima a una distribución normal a medida que el tamaño de la muestra aumenta.
Sean \(Y_1, Y_2, \ldots, Y_n\) variables aleatorias independientes e idénticamente distribuidas con \(E(Y_i) = \mu\) y \(V(Y_i) = \sigma^2 < \infty\). Definimos:
\[U_n = \frac{\bar{Y} - \mu}{\sigma / \sqrt{n}}, \quad \text{donde} \quad \bar{Y} = \frac{1}{n} \sum_{i=1}^{n} Y_i\]
Entonces la función de distribución de \(U_n\) converge a una función de distribución normal estándar cuando \(n \to \infty\):
\[\bar{Y} \approx N\left(\mu, \frac{\sigma^2}{n}\right)\]
Los resultados de las pruebas finales de todos los alumnos de último año de las preparatorias de cierto estado tienen una media de 60 y una varianza de 64. Una generación específica de cierta preparatoria de \(n = 100\) alumnos tuvo una media de 58. ¿Puede afirmarse que esta preparatoria es inferior?
📝 Solución Analítica
(1) Variable de interés: \(Y\) = resultado en la prueba final de un alumno de último año.
(2) Modelo probabilístico: \(Y \sim f_Y(y, \theta)\), donde \(\theta = (\mu, \sigma^2) = (60, 64)\).
(3) Modelo estadístico: \(\mathbf{Y} = (Y_1, Y_2, \ldots, Y_{100})\). Por el TLC, \(\bar{Y} \approx N(\mu, \sigma^2/n)\).
(4) Respuesta: La probabilidad \(P(\bar{Y} \leq 58)\) debe ser baja para afirmar que la preparatoria es inferior:
\[P(\bar{Y} \leq 58) = P\left(\frac{\bar{Y} - \mu}{\sigma/\sqrt{n}} \leq \frac{58 - 60}{8/\sqrt{100}}\right) \approx P(Z \leq -2.5) = 0.0062\]
Esta probabilidad es muy baja (0.62%). Por tanto, puede afirmarse que la calificación promedio para esta preparatoria es menor que el promedio global \(\mu = 60\).
## Estadístico Z: -2.5
## P(Z ≤ -2.5 ) = 0.0062
## Probabilidad de obtener media ≤ 58: 0.0062
# ============================================
# EJEMPLO 2: TLC - COMPARACIÓN DE MEDIAS
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Parámetros
mu_poblacional = 60
sigma = np.sqrt(64) # 8
n = 100
media_muestral = 58
# Estadístico Z
error_estandar = sigma / np.sqrt(n)
z = (media_muestral - mu_poblacional) / error_estandar
p_valor = norm.cdf(z)
print(f"Estadístico Z: {z:.4f}")
print(f"P(Z ≤ {z:.4f}) = {p_valor:.4f}")
print(f"Probabilidad de obtener media ≤ 58: {p_valor:.4f}")
# ============================================
# VISUALIZACIÓN
# ============================================
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Distribución muestral
x_vals = np.linspace(55, 65, 500)
densidad = norm.pdf(x_vals, loc=mu_poblacional, scale=error_estandar)
axes[0].plot(x_vals, densidad, 'steelblue', lw=2,
label=f'N(μ={mu_poblacional}, σ/√n={error_estandar:.2f})')
# Región crítica (media ≤ 58)
x_fill = np.linspace(55, media_muestral, 100)
y_fill = norm.pdf(x_fill, loc=mu_poblacional, scale=error_estandar)
axes[0].fill_between(x_fill, y_fill, alpha=0.4, color='steelblue')
axes[0].axvline(media_muestral, color='red', linestyle='--', lw=2,
label=f'Media muestral = {media_muestral}')
axes[0].axvline(mu_poblacional, color='darkgreen', lw=2,
label=f'μ = {mu_poblacional}')
axes[0].set_xlabel(r'$\bar{Y}$')
axes[0].set_ylabel('Densidad')
axes[0].set_title(f'Distribución muestral (n={n})\nP(≤58) = {p_valor:.4f}')
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Distribución normal estándar
z_vals = np.linspace(-4, 4, 500)
densidad_z = norm.pdf(z_vals)
axes[1].plot(z_vals, densidad_z, 'steelblue', lw=2, label='N(0,1)')
# Región de rechazo
z_fill = np.linspace(-4, z, 100)
y_z_fill = norm.pdf(z_fill)
axes[1].fill_between(z_fill, y_z_fill, alpha=0.4, color='steelblue')
axes[1].axvline(z, color='red', linestyle='--', lw=2, label=f'Z = {z:.4f}')
axes[1].axvline(0, color='darkgreen', lw=2, label='Z = 0')
axes[1].set_xlabel('Z')
axes[1].set_ylabel('Densidad')
axes[1].set_title(f'Distribución Normal Estándar\np-valor = {p_valor:.4f}')
axes[1].legend()
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()Los tiempos de espera para los clientes que pasan por una caja registradora a la salida de una tienda de menudeo son variables aleatorias independientes con una media de 1.5 minutos y una varianza de 1.0. ¿Cuál es la probabilidad de que se pueda atender a 100 clientes en menos de 2 horas?
📝 Solución Analítica
(1) Variable de interés: \(Y\) = tiempo (en minutos) de espera de un cliente para pasar a una caja registradora.
(2) Modelo probabilístico: \(Y \sim f_Y(y, \theta)\), donde \(\theta = (\mu, \sigma^2) = (1.5, 1.0)\).
(3) Modelo estadístico: \(\mathbf{Y} = (Y_1, Y_2, \ldots, Y_{100})\), donde \(Y_i\) es el tiempo del cliente \(i\).
(4) Respuesta: Se quiere \(P(\sum_{i=1}^{100} Y_i \leq 120)\):
\[P\left(\sum_{i=1}^{100} Y_i \leq 120\right) = P\left(\bar{Y} \leq \frac{120}{100} = 1.20\right)\]
\[= P\left(\frac{\bar{Y} - \mu}{\sigma/\sqrt{n}} \leq \frac{1.20 - 1.50}{1.0/\sqrt{100}}\right) \approx P(Z \leq -3.0) = 0.0013\]
Esta pequeña probabilidad (0.13%) indica que es prácticamente imposible despachar a 100 clientes en menos de 2 horas de servicio.
Cuando \(n\) es grande, la distribución binomial puede aproximarse mediante una distribución normal. Esta aproximación es especialmente útil para calcular probabilidades de proporciones muestrales sin necesidad de sumar muchos términos binomiales.
Supongamos que \(Y \sim B(n, p)\) donde \(Y\) es el número de éxitos en \(n\) pruebas. Consideremos \(Y = \sum_{i=1}^{n} X_i\) donde:
\[X_i = \begin{cases} 1, & \text{si el resultado de la i-ésima prueba es éxito} \\ 0, & \text{si es fracaso} \end{cases}\]
y \(X_i\), \(i = 1,2,\ldots,n\), son independientes. Por el TLC, cuando \(n\) es grande, la proporción de éxitos en la muestra:
\[\hat{p} = \frac{Y}{n} = \frac{1}{n} \sum_{i=1}^{n} X_i\]
tiene aproximadamente una distribución normal con:
\[\mu = E(\hat{p}) = p \quad \text{y} \quad \sigma^2 = V(\hat{p}) = \frac{p(1-p)}{n}\]
Es decir:
\[\hat{p} \approx N\left(p, \frac{p(1-p)}{n}\right)\]
El candidato A considera que puede ganar una elección en una ciudad si obtiene al menos 55% de los votos en el distrito I. Además supone que alrededor del 50% de los votantes en la ciudad están a su favor. Si \(n = 100\) votantes vienen a votar en el distrito I, ¿cuál es la probabilidad de que el candidato A pueda ganar la elección?
📝 Solución Analítica
(1) Variable de interés: \(Y\) = número de votantes en el distrito I a favor del candidato A.
(2) Modelo probabilístico: \(Y \sim B(n, p)\), donde \(p = 0.5\) y \(n = 100\).
(3) Modelo estadístico: \(\mathbf{X} = (X_1, X_2, \ldots, X_{100})\) donde:
\[X_i = \begin{cases} 1, & \text{si el i-ésimo votante vota por el candidato A} \\ 0, & \text{otro caso} \end{cases}\]
(4) Respuesta: Se quiere \(P(\hat{p} \geq 0.55)\) donde \(\hat{p} = Y/n\):
\[P(\hat{p} \geq 0.55) = P\left(\frac{\hat{p} - p}{\sqrt{p(1-p)/n}} \geq \frac{0.55 - 0.50}{\sqrt{0.5 \times 0.5 / 100}}\right) \approx P(Z \geq 1) = 0.1587\]
La probabilidad de que el candidato pueda ganar la elección es 0.1587 (aproximadamente 15.9%).
## === APROXIMACIÓN NORMAL ===
## Estadístico Z: 1
## P(proporción ≥ 0.55) ≈ 0.1587
## === CÁLCULO EXACTO BINOMIAL ===
## P(Y ≥ 55) = 0.1841
## Diferencia: 0.025446
# ============================================
# EJEMPLO 4: APROXIMACIÓN NORMAL DE LA BINOMIAL
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import binom, norm
# Parámetros
n = 100
p = 0.5
proporcion_objetivo = 0.55
# Aproximación normal
z = (proporcion_objetivo - p) / np.sqrt(p * (1 - p) / n)
prob_normal = 1 - norm.cdf(z)
# Cálculo exacto binomial
prob_binomial = 1 - binom.cdf(int(proporcion_objetivo * n) - 1, n, p)
print("=== APROXIMACIÓN NORMAL ===")
print(f"Estadístico Z: {z:.4f}")
print(f"P(proporción ≥ 0.55) ≈ {prob_normal:.4f}")
print("\n=== CÁLCULO EXACTO BINOMIAL ===")
print(f"P(Y ≥ 55) = {prob_binomial:.4f}")
print(f"Diferencia: {abs(prob_normal - prob_binomial):.6f}")
# ============================================
# VISUALIZACIÓN
# ============================================
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Comparación Binomial vs Normal
x_vals = np.arange(0, n+1)
prob_bin = binom.pmf(x_vals, n, p)
prop_vals = x_vals / n
# Seleccionar rango de interés
mask = (prop_vals >= 0.3) & (prop_vals <= 0.7)
axes[0].bar(prop_vals[mask], prob_bin[mask], width=0.005,
color='steelblue', alpha=0.6, label='Binomial')
# Distribución normal aproximada
x_norm = np.linspace(0.3, 0.7, 500)
dens_norm = norm.pdf(x_norm, loc=p, scale=np.sqrt(p*(1-p)/n))
axes[0].plot(x_norm, dens_norm, 'r-', lw=2, label='Normal aproximada')
axes[0].axvline(proporcion_objetivo, color='darkgreen', linestyle='--',
lw=2, label='Proporción objetivo (0.55)')
axes[0].set_xlabel('Proporción de votos')
axes[0].set_ylabel('Probabilidad / Densidad')
axes[0].set_title(f'Binomial(n={n}, p={p}) vs Normal\n'
f'P(proporción ≥ 0.55) ≈ {prob_normal:.4f} (exacto: {prob_binomial:.4f})')
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Región de rechazo en Normal
x_norm_full = np.linspace(0.3, 0.7, 500)
dens_norm_full = norm.pdf(x_norm_full, loc=p, scale=np.sqrt(p*(1-p)/n))
axes[1].plot(x_norm_full, dens_norm_full, 'steelblue', lw=2,
label=f'N(p={p}, σ²={p*(1-p)/n:.4f})')
# Región de rechazo
x_rechazo = np.linspace(proporcion_objetivo, 0.7, 100)
y_rechazo = norm.pdf(x_rechazo, loc=p, scale=np.sqrt(p*(1-p)/n))
axes[1].fill_between(x_rechazo, y_rechazo, alpha=0.4, color='firebrick',
label=f'P(proporción ≥ {proporcion_objetivo}) = {prob_normal:.4f}')
axes[1].axvline(proporcion_objetivo, color='red', linestyle='--', lw=2)
axes[1].axvline(p, color='darkgreen', lw=2, label=f'p = {p}')
axes[1].set_xlabel('Proporción de votos')
axes[1].set_ylabel('Densidad')
axes[1].set_title('Región de rechazo (proporción ≥ 0.55)')
axes[1].legend()
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
# ============================================
# DEMOSTRACIÓN DE LA APROXIMACIÓN
# ============================================
fig, axes = plt.subplots(2, 2, figsize=(12, 10))
axes = axes.flatten()
n_values = [10, 30, 50, 100]
p_value = 0.5
for idx, n_val in enumerate(n_values):
x_vals = np.arange(0, n_val+1)
prob_bin = binom.pmf(x_vals, n_val, p_value)
prop_vals = x_vals / n_val
axes[idx].bar(prop_vals, prob_bin, width=0.02/np.sqrt(n_val),
color='steelblue', alpha=0.6, label='Binomial')
x_norm = np.linspace(0, 1, 500)
dens_norm = norm.pdf(x_norm, loc=p_value,
scale=np.sqrt(p_value*(1-p_value)/n_val))
axes[idx].plot(x_norm, dens_norm, 'r-', lw=2, label='Normal')
axes[idx].set_xlabel('Proporción de éxitos')
axes[idx].set_ylabel('Probabilidad / Densidad')
axes[idx].set_title(f'n = {n_val}')
axes[idx].legend()
axes[idx].grid(True, alpha=0.3)
plt.suptitle('Aproximación Normal de la Binomial\np = 0.5', fontsize=14)
plt.tight_layout()
plt.show()📊 RESUMEN - DISTRIBUCIONES MUESTRALES
\(\sum Z_i^2\)
Varianza muestral
\(\nu = n-1\)
\(\frac{Z}{\sqrt{\chi^2/\nu}}\)
Media con \(\sigma\) desconocida
\(\nu = n-1\)
\(\frac{\chi^2_1/\nu_1}{\chi^2_2/\nu_2}\)
Comparación de varianzas, ANOVA
\(\nu_1, \nu_2\)
\(\frac{\bar{Y}-\mu}{\sigma/\sqrt{n}}\)
Media muestral (TLC)
\(n\) grande
✅ PUNTOS CLAVE
• La distribución \(F\) se utiliza para
comparar varianzas y en ANOVA: \(\frac{S_1^2/\sigma_1^2}{S_2^2/\sigma_2^2} \sim
F_{(n_1-1, n_2-1)}\).
• El Teorema del Límite Central
(TLC) establece que \(\bar{Y} \approx
N(\mu, \sigma^2/n)\) para \(n\)
grande, independientemente de la distribución original.
• La
aproximación normal de la binomial permite calcular
probabilidades de proporciones muestrales: \(\hat{p} \approx N(p, p(1-p)/n)\).
• R y
Python permiten simular y visualizar estas distribuciones para
comprender su comportamiento y validar las aproximaciones teóricas.
📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌
El objetivo de la Estadística Inferencial es obtener una inferencia con respecto a la población basándose en la información contenida en una muestra. Como las poblaciones se describen mediante medidas numéricas denominadas parámetros, la mayoría de las investigaciones se conducen para deducir inferencias acerca de ellos.
La generalidad de los procedimientos de la Inferencia Estadística involucran ya sea la Estimación o bien la Prueba de Hipótesis, las cuales tienen muchas aplicaciones prácticas.
Proporciona un único valor como estimación del parámetro poblacional. Ejemplo: \(\bar{y} = 560/1000 = 0.56\) para estimar la proporción \(p\) de votantes.
Proporciona un rango de valores dentro del cual se espera que se encuentre el parámetro con cierta confianza. Ejemplo: \(\hat{p} \pm 2\sigma_{\hat{p}}\).
Un estimador \(\hat{\theta}\) de un parámetro poblacional \(\theta\) es una regla que establece cómo calcular una estimación del parámetro basada en las mediciones contenidas en una muestra aleatoria.
Comúnmente el estimador se expresa mediante una fórmula. Por ejemplo, la media de la muestra:
\[\bar{Y} = \frac{1}{n} \sum_{i=1}^{n} Y_i\]
es un posible estimador puntual para la media poblacional \(\mu\). Es evidente que \(\bar{Y}\) es una regla y una fórmula al mismo tiempo.
Básicamente, para que un estimador sea bueno, se desea que la varianza del estimador sea lo más pequeña posible, mientras que la distribución de muestreo debe concentrarse alrededor del valor del parámetro.
Se dice que la estadística \(\hat{\theta} = H(X_1, X_2, \ldots, X_n)\) es un estimador insesgado del parámetro \(\theta\), si:
\[E(\hat{\theta}) = \theta\]
Es decir, si los valores del estimador se centran alrededor del parámetro en cuestión. En caso contrario, se dice que es sesgado.
| Parámetro objetivo \(\theta\) | Tamaño | Estimador \(\hat{\theta}\) | \(E(\hat{\theta})\) | \(V(\hat{\theta})\) |
|---|---|---|---|---|
| \(\mu\) | \(n\) | \(\bar{Y}\) | \(\mu\) | \(\sigma^2/n\) |
| \(p\) | \(n\) | \(\hat{p} = Y/n\) | \(p\) | \(pq/n\) |
| \(\mu_1 - \mu_2\) | \(n_1, n_2\) | \(\bar{Y}_1 - \bar{Y}_2\) | \(\mu_1 - \mu_2\) | \(\frac{\sigma_1^2}{n_1} + \frac{\sigma_2^2}{n_2}\) |
| \(p_1 - p_2\) | \(n_1, n_2\) | \(\hat{p}_1 - \hat{p}_2\) | \(p_1 - p_2\) | \(\frac{p_1q_1}{n_1} + \frac{p_2q_2}{n_2}\) |
Sea \(Y_1, Y_2, \ldots, Y_n\) una muestra aleatoria con \(E(Y_i) = \mu\) y \(V(Y_i) = \sigma^2\). Demuestre que:
📝 Solución Analítica
Paso 1: Desarrollamos \((Y_i - \bar{Y})^2\):
\[(Y_i - \bar{Y})^2 = Y_i^2 - 2Y_i\bar{Y} + \bar{Y}^2\]
Paso 2: Sumamos sobre \(i\):
\[\sum_{i=1}^{n} (Y_i - \bar{Y})^2 = \sum_{i=1}^{n} Y_i^2 - 2\bar{Y}\sum_{i=1}^{n} Y_i + n\bar{Y}^2 = \sum_{i=1}^{n} Y_i^2 - n\bar{Y}^2\]
Paso 3: Tomamos esperanza:
\[E\left(\sum_{i=1}^{n} (Y_i - \bar{Y})^2\right) = \sum_{i=1}^{n} E(Y_i^2) - nE(\bar{Y}^2)\]
Paso 4: Recordamos que \(E(Y^2) = V(Y) + [E(Y)]^2 = \sigma^2 + \mu^2\) y \(E(\bar{Y}^2) = \frac{\sigma^2}{n} + \mu^2\):
\[E\left(\sum_{i=1}^{n} (Y_i - \bar{Y})^2\right) = n(\sigma^2 + \mu^2) - n\left(\frac{\sigma^2}{n} + \mu^2\right) = (n-1)\sigma^2\]
Paso 5: Por tanto:
\[E(S^2) = E\left(\frac{1}{n-1}\sum_{i=1}^{n}
(Y_i - \bar{Y})^2\right) = \sigma^2\]
\[E(S^{*2}) = E\left(\frac{1}{n}\sum_{i=1}^{n} (Y_i
- \bar{Y})^2\right) = \frac{n-1}{n}\sigma^2\]
Conclusión: \(S^2\) es insesgado, \(S^{*2}\) es sesgado (subestima \(\sigma^2\) en un factor \(\frac{n-1}{n}\)).
## === RESULTADOS DE LA SIMULACIÓN ===
## Varianza poblacional verdadera σ²: 225
## Media de S² (insesgado): 225.65
## Media de S*² (sesgado): 218.13
## Sesgo de S*²: -6.87
# ============================================
# EJEMPLO 1: ESTIMADORES DE LA VARIANZA
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Parámetros
np.random.seed(123)
n = 30
mu_verdadera = 100
sigma_verdadera = 15
n_sim = 10000
# Simulación para comparar estimadores
simulacion_S2 = []
simulacion_S2_sesgado = []
for _ in range(n_sim):
muestra = np.random.normal(mu_verdadera, sigma_verdadera, n)
S2 = np.var(muestra, ddof=1) # Insesgado (n-1)
S2_sesgado = np.var(muestra, ddof=0) # Sesgado (n)
simulacion_S2.append(S2)
simulacion_S2_sesgado.append(S2_sesgado)
# Resultados
media_S2 = np.mean(simulacion_S2)
media_S2_sesgado = np.mean(simulacion_S2_sesgado)
print("=== RESULTADOS DE LA SIMULACIÓN ===")
print(f"Varianza poblacional verdadera σ²: {sigma_verdadera**2}")
print(f"Media de S² (insesgado): {media_S2:.2f}")
print(f"Media de S*² (sesgado): {media_S2_sesgado:.2f}")
print(f"Sesgo de S*²: {media_S2_sesgado - sigma_verdadera**2:.2f}")
# ============================================
# VISUALIZACIÓN DE LA DISTRIBUCIÓN DE LOS ESTIMADORES
# ============================================
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Histograma de S² (insesgado)
axes[0].hist(simulacion_S2, bins=50, density=True, alpha=0.5,
color='steelblue', edgecolor='white')
axes[0].axvline(sigma_verdadera**2, color='red', linestyle='--',
lw=2, label=f'σ² = {sigma_verdadera**2}')
axes[0].axvline(media_S2, color='darkgreen', lw=2,
label=f'E(S²) = {media_S2:.2f}')
axes[0].set_xlabel('S²')
axes[0].set_ylabel('Densidad')
axes[0].set_title('Distribución de S² (insesgado)')
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Histograma de S*² (sesgado)
axes[1].hist(simulacion_S2_sesgado, bins=50, density=True, alpha=0.5,
color='orange', edgecolor='white')
axes[1].axvline(sigma_verdadera**2, color='red', linestyle='--',
lw=2, label=f'σ² = {sigma_verdadera**2}')
axes[1].axvline(media_S2_sesgado, color='darkgreen', lw=2,
label=f'E(S*²) = {media_S2_sesgado:.2f}')
axes[1].set_xlabel('S*²')
axes[1].set_ylabel('Densidad')
axes[1].set_title('Distribución de S*² (sesgado)')
axes[1].legend()
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
# Gráfico comparativo de sesgo
fig, ax = plt.subplots(figsize=(10, 6))
bp = ax.boxplot([simulacion_S2, simulacion_S2_sesgado],
labels=['S² (insesgado)', 'S*² (sesgado)'],
patch_artist=True)
bp['boxes'][0].set_facecolor('steelblue')
bp['boxes'][1].set_facecolor('orange')
ax.axhline(sigma_verdadera**2, color='red', linestyle='--',
lw=2, label=f'σ² = {sigma_verdadera**2}')
ax.set_ylabel('Valor estimado')
ax.set_title('Comparación de estimadores de la varianza')
ax.legend()
ax.grid(True, alpha=0.3)
plt.show()Es razonable esperar que un buen estimador de un parámetro \(\theta\) sea cada vez mejor conforme crece el tamaño de la muestra y la información se vuelve más completa. La distribución de muestreo de un buen estimador se encuentra cada vez más concentrada alrededor del parámetro \(\theta\).
Se dice que \(\hat{\theta}\) es un estimador consistente de \(\theta\) si:
\[\lim_{n \to \infty} \hat{\theta} = \theta\]
que es equivalente a:
\[\lim_{n \to \infty} V(\hat{\theta}) = 0\]
# Visualización de la consistencia en Python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
np.random.seed(123)
n_values = [5, 20, 50, 100, 500]
n_sim = 1000
mu_verdadera = 50
sigma = 10
fig, axes = plt.subplots(2, 3, figsize=(15, 10))
axes = axes.flatten()
for idx, n in enumerate(n_values):
medias = [np.mean(np.random.normal(mu_verdadera, sigma, n))
for _ in range(n_sim)]
axes[idx].hist(medias, bins=30, density=True, alpha=0.5,
color='steelblue', edgecolor='white')
x_vals = np.linspace(40, 60, 500)
y_vals = norm.pdf(x_vals, mu_verdadera, sigma/np.sqrt(n))
axes[idx].plot(x_vals, y_vals, 'r-', lw=2)
axes[idx].axvline(mu_verdadera, color='darkgreen',
linestyle='--', lw=2)
axes[idx].set_title(f'n = {n}')
axes[idx].set_xlabel(r'$\bar{Y}$')
axes[idx].set_ylabel('Densidad')
axes[idx].grid(True, alpha=0.3)
plt.suptitle('Consistencia del estimador de la media', fontsize=14)
plt.tight_layout()
plt.show()El hecho de que un estimador sea centrado no garantiza que sus realizaciones caigan cerca del valor del parámetro; hace falta además que tenga la varianza pequeña. La varianza de un estimador insesgado es la cantidad más importante para decidir qué tan bueno es el estimador para estimar el parámetro \(\theta\).
Sean \(\hat{\theta}_1\) y \(\hat{\theta}_2\) cualesquiera dos estimadores insesgados de \(\theta\). Se dice que \(\hat{\theta}_1\) es un estimador más eficiente de \(\theta\) que \(\hat{\theta}_2\), si:
\[V(\hat{\theta}_1) \leq V(\hat{\theta}_2)\]
El cociente:
\[e = \frac{V(\hat{\theta}_1)}{V(\hat{\theta}_2)}\]
se llama eficiencia relativa de \(\hat{\theta}_1\) respecto a \(\hat{\theta}_2\), y su valor está entre 0 y 1 (\(0 \leq e \leq 1\)). Si \(e\) está próximo a 0, \(\hat{\theta}_1\) es mejor que \(\hat{\theta}_2\).
## Varianza de la media: 0.03221
## Varianza de la mediana: 0.05052
## Eficiencia relativa (media/mediana): 0.6375
## La media es más eficiente (menor varianza) que la mediana
# Comparación de eficiencia en Python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
np.random.seed(123)
n = 30
n_sim = 5000
mu_verdadera = 0
sigma = 1
medias = [np.mean(np.random.normal(mu_verdadera, sigma, n))
for _ in range(n_sim)]
medianas = [np.median(np.random.normal(mu_verdadera, sigma, n))
for _ in range(n_sim)]
var_media = np.var(medias)
var_mediana = np.var(medianas)
eficiencia = var_media / var_mediana
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
axes[0].hist(medias, bins=40, density=True, alpha=0.5,
color='steelblue', edgecolor='white')
x_vals = np.linspace(-1, 1, 500)
axes[0].plot(x_vals, norm.pdf(x_vals, mu_verdadera, sigma/np.sqrt(n)),
'r-', lw=2)
axes[0].set_title('Distribución de la media muestral')
axes[0].set_xlabel('Media')
axes[0].grid(True, alpha=0.3)
axes[1].hist(medianas, bins=40, density=True, alpha=0.5,
color='orange', edgecolor='white')
axes[1].set_title('Distribución de la mediana muestral')
axes[1].set_xlabel('Mediana')
axes[1].grid(True, alpha=0.3)
print(f"Varianza de la media: {var_media:.5f}")
print(f"Varianza de la mediana: {var_mediana:.5f}")
print(f"Eficiencia relativa (media/mediana): {eficiencia:.4f}")
print("La media es más eficiente (menor varianza) que la mediana")
plt.tight_layout()
plt.show()El error de estimación \(\varepsilon\) es la distancia entre un estimador y su parámetro objetivo. Es decir:
\[\varepsilon = |\hat{\theta} - \theta|\]
Ya que el error de estimación es una cantidad aleatoria, no podemos afirmar qué tan grande o tan pequeño será para una estimación en particular, pero se pueden establecer enunciados probabilísticos al respecto.
Si se conoce la distribución de probabilidad de \(\hat{\theta}\), se pueden elegir dos puntos \((\theta - b)\) y \((\theta + b)\) localizados cerca de las colas de la distribución de manera que:
\[P(\varepsilon < b) = P(\theta - b < \hat{\theta} < \theta + b)\]
donde \(b\) se puede considerar como el límite probabilístico del error de estimación con una alta probabilidad.
Una muestra de \(n = 1000\) votantes, obtenidas al azar de una ciudad, mostró \(y = 560\) a favor del candidato Gómez. Estime \(p\), la fracción de votantes en la población que están a favor de Gómez, y utilice un límite de dos desviaciones estándar para el error de estimación.
📝 Solución Analítica
Paso 1: Utilizamos el estimador \(\hat{p} = Y/n\) para estimar \(p\). Así, la estimación es:
\[\hat{p} = \frac{560}{1000} = 0.56\]
Paso 2: La distribución de \(\hat{p}\) se aproxima con bastante exactitud mediante la distribución normal para muestras tan grandes como \(n = 1000\). Entonces, cuando \(b = 2\sigma_{\hat{p}}\), \(P(\varepsilon < b) \approx 0.95\).
Paso 3: \(b = 2\sigma_{\hat{p}} = 2\sqrt{\frac{pq}{n}}\). Desafortunadamente, se requiere conocer el valor de \(p\) para calcular \(b\), y encontrar \(p\) es exactamente el objetivo del muestreo.
Paso 4: Este impedimento aparente no es ningún obstáculo, porque \(\sigma_{\hat{p}}\) variará poco para cambios pequeños en \(p\). Por lo tanto, la sustitución de \(p\) por el estimador \(\hat{p}\) producirá poco error:
\[b = 2\sigma_{\hat{p}} \approx 2\sqrt{\frac{\hat{p}\hat{q}}{n}} = 2\sqrt{\frac{(0.56)(0.44)}{1000}} = 2\sqrt{0.0002464} = 2(0.0157) = 0.0314\]
Interpretación: La probabilidad de que el error de estimación sea menor que 0.0314 (aproximadamente 3 puntos porcentuales) es aproximadamente 0.95.
## === ESTIMACIÓN DE PROPORCIÓN ===
## Tamaño de muestra (n): 1000
## Votos a favor (y): 560
## Proporción estimada (p̂): 0.56
## Error estándar (σ_p̂): 0.0157
## Límite de 2σ: 0.0314
## IC aproximado del 95%: [ 0.5286 , 0.5914 ]
# ============================================
# EJEMPLO 2: ESTIMACIÓN DE PROPORCIÓN
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm, binom
# Parámetros
n = 1000
y = 560
p_hat = y / n
q_hat = 1 - p_hat
# Error estándar
se = np.sqrt(p_hat * q_hat / n)
b = 2 * se
print("=== ESTIMACIÓN DE PROPORCIÓN ===")
print(f"Tamaño de muestra (n): {n}")
print(f"Votos a favor (y): {y}")
print(f"Proporción estimada (p̂): {p_hat:.4f}")
print(f"Error estándar (σ_p̂): {se:.4f}")
print(f"Límite de 2σ: {b:.4f}")
print(f"IC aproximado del 95%: [{p_hat - b:.4f}, {p_hat + b:.4f}]")
# ============================================
# SIMULACIÓN Y VISUALIZACIÓN
# ============================================
np.random.seed(123)
n_sim = 10000
p_verdadero = 0.56 # Valor simulado
# Simulación de proporciones muestrales
proporciones = np.random.binomial(n, p_verdadero, n_sim) / n
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Distribución muestral de p̂
axes[0].hist(proporciones, bins=40, density=True, alpha=0.5,
color='steelblue', edgecolor='white')
x_vals = np.linspace(0.5, 0.62, 500)
y_vals = norm.pdf(x_vals, p_verdadero, se)
axes[0].plot(x_vals, y_vals, 'r-', lw=2, label='Distribución teórica')
axes[0].axvline(p_verdadero, color='darkgreen', linestyle='--',
lw=2, label='p verdadero')
axes[0].axvline(p_verdadero + b, color='orange', linestyle='--',
label='Límites ±2σ')
axes[0].axvline(p_verdadero - b, color='orange', linestyle='--')
axes[0].set_xlabel('p̂')
axes[0].set_ylabel('Densidad')
axes[0].set_title(f'Distribución muestral de p̂\nn = {n}, p = {p_verdadero}')
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Distribución del error de estimación
errores = np.abs(proporciones - p_verdadero)
axes[1].hist(errores, bins=40, density=True, alpha=0.5,
color='orange', edgecolor='white')
axes[1].axvline(b, color='red', linestyle='--', lw=2,
label=f'b = {b:.4f}')
prob_menor_b = np.mean(errores < b)
axes[1].set_xlabel('Error |p̂ - p|')
axes[1].set_ylabel('Densidad')
axes[1].set_title(f'Distribución del error de estimación\n'
f'P(error < b) = {prob_menor_b:.4f}')
axes[1].legend()
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()Una comparación de la durabilidad de dos tipos de llantas para automóviles se obtuvo de muestras de pruebas en carreteras \(n_1 = n_2 = 100\) llantas para cada tipo. Los resultados fueron:
Estime la diferencia en el uso medio y utilice un límite de dos desviaciones estándar para el error de estimación.
📝 Solución Analítica
Paso 1: El estimador puntual de \((\mu_1 - \mu_2)\) es:
\[\bar{y}_1 - \bar{y}_2 = 26400 - 25100 = 1300 \text{ millas}\]
Paso 2: El error estándar de la diferencia es:
\[\sigma_{\bar{Y}_1 - \bar{Y}_2} = \sqrt{\frac{\sigma_1^2}{n_1} + \frac{\sigma_2^2}{n_2}}\]
Paso 3: Como los tamaños de muestra son grandes (\(n_i \geq 30\)), podemos estimar \(\sigma_i^2\) con \(s_i^2\):
\[\sigma_{\bar{Y}_1 - \bar{Y}_2} \approx \sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}} = \sqrt{\frac{1440000}{100} + \frac{1960000}{100}} = \sqrt{14400 + 19600} = \sqrt{34000} \approx 184.39 \text{ millas}\]
Paso 4: Límite de dos desviaciones estándar:
\[b = 2 \times 184.39 = 368.78 \text{ millas}\]
Interpretación: Estimamos la diferencia en el uso medio en 1300 millas, y se prevé que el error de estimación sea menor que 368.78 millas con una probabilidad aproximada de 0.95.
## === COMPARACIÓN DE DOS MEDIAS ===
## Diferencia estimada (μ₁ - μ₂): 1300 millas
## Error estándar estimado: 184.39 millas
## Límite de 2σ: 368.78 millas
## IC aproximado del 95%: [ 931.22 , 1668.78 ] millas
# ============================================
# EJEMPLO 3: COMPARACIÓN DE DOS MEDIAS
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Datos
n1 = 100
n2 = 100
y1_bar = 26400
y2_bar = 25100
s1_2 = 1440000 # varianza
s2_2 = 1960000
# Estimación de la diferencia
diferencia = y1_bar - y2_bar
# Error estándar estimado
se = np.sqrt(s1_2 / n1 + s2_2 / n2)
# Límite de 2 desviaciones estándar
b = 2 * se
print("=== COMPARACIÓN DE DOS MEDIAS ===")
print(f"Diferencia estimada (μ₁ - μ₂): {diferencia:.2f} millas")
print(f"Error estándar estimado: {se:.2f} millas")
print(f"Límite de 2σ: {b:.2f} millas")
print(f"IC aproximado del 95%: [{diferencia - b:.2f}, {diferencia + b:.2f}] millas")
# ============================================
# SIMULACIÓN DE LA DISTRIBUCIÓN DE LA DIFERENCIA
# ============================================
np.random.seed(123)
n_sim = 10000
mu1_verdadero = 26400
mu2_verdadero = 25100
sigma1 = np.sqrt(s1_2)
sigma2 = np.sqrt(s2_2)
# Simulación de diferencias muestrales
diferencias_sim = []
for _ in range(n_sim):
y1 = np.random.normal(mu1_verdadero, sigma1, n1).mean()
y2 = np.random.normal(mu2_verdadero, sigma2, n2).mean()
diferencias_sim.append(y1 - y2)
diferencias_sim = np.array(diferencias_sim)
# Visualización
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Distribución muestral de la diferencia
axes[0].hist(diferencias_sim, bins=40, density=True, alpha=0.5,
color='steelblue', edgecolor='white')
x_vals = np.linspace(diferencias_sim.min(), diferencias_sim.max(), 500)
y_vals = norm.pdf(x_vals, diferencia, se)
axes[0].plot(x_vals, y_vals, 'r-', lw=2, label='Distribución teórica')
axes[0].axvline(diferencia, color='darkgreen', linestyle='--',
lw=2, label='Diferencia estimada')
axes[0].axvline(diferencia + b, color='orange', linestyle='--',
label='Límites ±2σ')
axes[0].axvline(diferencia - b, color='orange', linestyle='--')
axes[0].set_xlabel(r'$\bar{Y}_1 - \bar{Y}_2$')
axes[0].set_ylabel('Densidad')
axes[0].set_title('Distribución muestral de la diferencia')
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Distribución del error de estimación
errores = np.abs(diferencias_sim - diferencia)
axes[1].hist(errores, bins=40, density=True, alpha=0.5,
color='orange', edgecolor='white')
axes[1].axvline(b, color='red', linestyle='--', lw=2,
label=f'b = {b:.2f}')
prob_menor_b = np.mean(errores < b)
axes[1].set_xlabel('Error |(Y₁-Y₂) - (μ₁-μ₂)|')
axes[1].set_ylabel('Densidad')
axes[1].set_title(f'Distribución del error de estimación\n'
f'P(error < b) = {prob_menor_b:.4f}')
axes[1].legend()
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()📊 RESUMEN - ESTIMACIÓN PUNTUAL
\(E(\hat{\theta}) = \theta\)
El estimador se centra en el parámetro
\(\lim_{n \to \infty} V(\hat{\theta}) = 0\)
Mejora con el tamaño de muestra
\(V(\hat{\theta}_1) \leq V(\hat{\theta}_2)\)
Menor varianza entre insesgados
\(\varepsilon = |\hat{\theta} - \theta|\)
\(b = 2\sigma_{\hat{\theta}}\) da 95% confianza
✅ PUNTOS CLAVE
• Un estimador insesgado satisface \(E(\hat{\theta}) = \theta\) (ej: \(\bar{Y}\) para \(\mu\), \(S^2\) para \(\sigma^2\)).
• La varianza
muestral insesgada usa \(n-1\)
en el denominador: \(S^2 =
\frac{1}{n-1}\sum(Y_i - \bar{Y})^2\).
• Un estimador es
consistente si su varianza tiende a 0 cuando \(n \to \infty\).
• La
eficiencia compara varianzas de estimadores insesgados;
la media es más eficiente que la mediana.
• El error de
estimación puede acotarse con \(b =
2\sigma_{\hat{\theta}}\), dando aproximadamente 95% de
confianza.
• R y Python permiten simular distribuciones muestrales y
evaluar propiedades de los estimadores.
📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌
El objetivo de la estimación por intervalos es generar intervalos angostos que contengan a \(\theta\) con una alta probabilidad. En el caso ideal, sería conveniente que el intervalo tuviera dos propiedades:
Propiedades difíciles de garantizar puesto que ambos extremos del intervalo varían de manera aleatoria.
La probabilidad de que un intervalo de confianza contenga a \(\theta\) se conoce como coeficiente de confianza.
\(P(\theta_L < \theta < \theta_U) = 1 - \alpha\)
Intervalo: \((\theta_L, \theta_U)\)
\(P(\theta_L < \theta) = 1 - \alpha\) o \(P(\theta < \theta_U) = 1 - \alpha\)
Intervalo: \((\theta_L, \infty)\) o \((-\infty, \theta_U)\)
Por el Teorema del Límite Central (TLC), los estimadores puntuales insesgados más utilizados tienen aproximadamente distribuciones muestrales normales para el caso de muestras grandes. Es decir:
\[Z = \frac{\hat{\theta} - \theta}{\sigma_{\hat{\theta}}} \approx N(0,1)\]
| Parámetro \(\theta\) | Tamaño | Estimador \(\hat{\theta}\) | \(E(\hat{\theta})\) | \(\sigma_{\hat{\theta}}^2\) |
|---|---|---|---|---|
| \(\mu\) | \(n\) | \(\bar{Y}\) | \(\mu\) | \(\sigma^2/n\) |
| \(p\) | \(n\) | \(\hat{p} = Y/n\) | \(p\) | \(pq/n\) |
| \(\mu_1 - \mu_2\) | \(n_1, n_2\) | \(\bar{Y}_1 - \bar{Y}_2\) | \(\mu_1 - \mu_2\) | \(\frac{\sigma_1^2}{n_1} + \frac{\sigma_2^2}{n_2}\) |
| \(p_1 - p_2\) | \(n_1, n_2\) | \(\hat{p}_1 - \hat{p}_2\) | \(p_1 - p_2\) | \(\frac{p_1q_1}{n_1} + \frac{p_2q_2}{n_2}\) |
Sea \(\hat{\theta}\) un estadístico que tiene distribución de probabilidad normal con valor esperado \(\theta\) y varianza \(\sigma_{\hat{\theta}}^2\). Entonces, el intervalo de confianza para \(\theta\) con coeficiente de confianza \((1-\alpha)\) es:
\[IC(\theta) = \left(\hat{\theta} - z_{\alpha/2} \cdot \sigma_{\hat{\theta}},\ \hat{\theta} + z_{\alpha/2} \cdot \sigma_{\hat{\theta}}\right)\]
\[\text{LCI} = \hat{\theta} - z_{\alpha/2} \cdot \sigma_{\hat{\theta}}, \quad \text{LCS} = \hat{\theta} + z_{\alpha/2} \cdot \sigma_{\hat{\theta}}\]
Donde \(z_{\alpha/2}\) es el valor crítico de la distribución normal estándar que deja un área \(\alpha/2\) en la cola superior.
Figura: Intervalo de confianza bilateral con nivel de significancia \(\alpha\)
Se registraron los tiempos utilizados en la compra para \(n = 64\) clientes seleccionados al azar en un supermercado local. La media y la varianza de los 64 tiempos de compra fueron 33 minutos y 256, respectivamente. Estime el promedio real \(\mu\) del tiempo utilizado por los clientes en la compra, con un coeficiente de confianza del 90%.
📝 Solución Analítica
En este caso nos interesa el parámetro \(\theta = \mu\). Por lo tanto, \(\hat{\theta} = \bar{Y}\) y como la varianza poblacional \(\sigma^2\) se desconoce, se usará \(S^2\) por tener la muestra un tamaño considerable.
Para \(\alpha = 0.10\), \(z_{\alpha/2} = z_{0.05} = 1.645\). El intervalo de confianza es:
\[IC(\mu) = \bar{Y} \pm z_{\alpha/2} \cdot \frac{\sigma}{\sqrt{n}} \approx \bar{Y} \pm 1.645 \cdot \frac{S}{\sqrt{n}}\]
A partir de los datos de la muestra: \(\bar{y} = 33\), \(s^2 = 256\), \(s = 16\), \(n = 64\):
\[IC(\mu) \approx 33 \pm 1.645 \cdot \frac{16}{8} = 33 \pm 1.645 \cdot 2 = 33 \pm 3.29 = (29.71, 36.29)\]
Interpretación: Hay una certeza del 90% de que el tiempo medio real de atención de los clientes en el supermercado local se encuentra entre 29.71 y 36.29 minutos.
## === INTERVALO DE CONFIANZA PARA LA MEDIA ===
## Tamaño de muestra (n): 64
## Media muestral (ȳ): 33
## Desviación estándar muestral (s): 16
## Nivel de confianza: 90 %
## Valor crítico Z: 1.6449
## Error estándar: 2
## Margen de error: 3.2897
## IC 90%: [ 29.71 , 36.29 ]
# ============================================
# EJEMPLO 1: INTERVALO DE CONFIANZA PARA LA MEDIA
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Datos
n = 64
y_bar = 33
s2 = 256
s = np.sqrt(s2)
confianza = 0.90
# Valor crítico Z
z_alpha2 = norm.ppf((1 + confianza)/2)
# Error estándar
se = s / np.sqrt(n)
# Intervalo de confianza
margen = z_alpha2 * se
ic_inferior = y_bar - margen
ic_superior = y_bar + margen
print("=== INTERVALO DE CONFIANZA PARA LA MEDIA ===")
print(f"Tamaño de muestra (n): {n}")
print(f"Media muestral (ȳ): {y_bar}")
print(f"Desviación estándar muestral (s): {s}")
print(f"Nivel de confianza: {confianza*100}%")
print(f"Valor crítico Z: {z_alpha2:.4f}")
print(f"Error estándar: {se:.4f}")
print(f"Margen de error: {margen:.4f}")
print(f"IC 90%: [{ic_inferior:.2f}, {ic_superior:.2f}]")
# ============================================
# VISUALIZACIÓN DEL INTERVALO DE CONFIANZA
# ============================================
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Distribución muestral con IC
x_vals = np.linspace(y_bar - 4*se, y_bar + 4*se, 500)
densidad = norm.pdf(x_vals, y_bar, se)
axes[0].plot(x_vals, densidad, 'steelblue', lw=2)
x_fill = np.linspace(ic_inferior, ic_superior, 100)
y_fill = norm.pdf(x_fill, y_bar, se)
axes[0].fill_between(x_fill, y_fill, alpha=0.4, color='steelblue')
axes[0].axvline(ic_inferior, color='red', linestyle='--', lw=2)
axes[0].axvline(ic_superior, color='red', linestyle='--', lw=2)
axes[0].axvline(y_bar, color='darkgreen', lw=2)
axes[0].set_xlabel(r'$\bar{Y}$')
axes[0].set_ylabel('Densidad')
axes[0].set_title(f'Distribución muestral\nIC 90% para μ')
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Simulación de intervalos de confianza
np.random.seed(123)
n_sim = 100
mu_verdadera = 33
sigma_verdadera = 16
ic_inferiores_sim = []
ic_superiores_sim = []
contiene_mu = []
for i in range(n_sim):
muestra = np.random.normal(mu_verdadera, sigma_verdadera, n)
y_bar_sim = np.mean(muestra)
s_sim = np.std(muestra, ddof=1)
se_sim = s_sim / np.sqrt(n)
ic_inf = y_bar_sim - z_alpha2 * se_sim
ic_sup = y_bar_sim + z_alpha2 * se_sim
ic_inferiores_sim.append(ic_inf)
ic_superiores_sim.append(ic_sup)
contiene_mu.append(ic_inf <= mu_verdadera <= ic_sup)
ic_inferiores_sim = np.array(ic_inferiores_sim)
ic_superiores_sim = np.array(ic_superiores_sim)
contiene_mu = np.array(contiene_mu)
for i in range(n_sim):
color = 'steelblue' if contiene_mu[i] else 'red'
axes[1].plot([i+1, i+1], [ic_inferiores_sim[i], ic_superiores_sim[i]],
color=color, lw=1 if contiene_mu[i] else 2)
axes[1].axhline(mu_verdadera, color='darkgreen', lw=2, linestyle='--')
axes[1].set_xlabel('Muestra')
axes[1].set_ylabel('Intervalo de confianza')
axes[1].set_title(f'Simulación de {n_sim} IC 90%\nCobertura: {np.mean(contiene_mu)*100:.1f}%')
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()Dos marcas de refrigeradores, A y B, tienen (ambas) una garantía de un año. En una muestra aleatoria de 50 refrigeradores de la marca A, 12 se descompusieron antes de terminar el período de garantía. Una muestra aleatoria de 60 refrigeradores de la marca B reveló también 12 descomposturas durante el periodo de garantía. Estime la diferencia real entre las proporciones de fallas \((p_1 - p_2)\), durante el periodo de garantía, con un coeficiente de confianza del 98%.
📝 Solución Analítica
El intervalo de confianza para \((p_1 - p_2)\) es:
\[IC(p_1-p_2) = (\hat{p}_1 - \hat{p}_2) \pm z_{\alpha/2} \cdot \sqrt{\frac{\hat{p}_1\hat{q}_1}{n_1} + \frac{\hat{p}_2\hat{q}_2}{n_2}}\]
De la información proporcionada por la muestra:
Entonces:
\[IC(p_1-p_2) = (0.24 - 0.20) \pm 2.33 \cdot \sqrt{\frac{0.24(0.76)}{50} + \frac{0.20(0.80)}{60}}\]
\[= 0.04 \pm 2.33 \cdot \sqrt{0.003648 + 0.002667} = 0.04 \pm 2.33 \cdot \sqrt{0.006315}\]
\[= 0.04 \pm 2.33 \cdot 0.07946 = 0.04 \pm 0.1851 = (-0.1451, 0.2251)\]
Interpretación: Este intervalo de confianza contiene al cero, entonces la verdadera diferencia \((p_1 - p_2)\) podría ser positiva, negativa o cero. Por lo tanto, no hay evidencia estadística significativa en la muestra para afirmar que sean diferentes las proporciones de refrigeradores defectuosos.
## === INTERVALO DE CONFIANZA PARA DIFERENCIA DE PROPORCIONES ===
## Marca A - n₁: 50 , fallas: 12 , p̂₁ = 0.24
## Marca B - n₂: 60 , fallas: 12 , p̂₂ = 0.2
## Diferencia estimada (p̂₁ - p̂₂): 0.04
## Nivel de confianza: 98 %
## Valor crítico Z: 2.3263
## Error estándar: 0.0795
## Margen de error: 0.1849
## IC 98%: [ -0.1449 , 0.2249 ]
##
## El intervalo contiene el cero, no hay evidencia de diferencia significativa.
# ============================================
# EJEMPLO 2: INTERVALO DE CONFIANZA PARA DIFERENCIA DE PROPORCIONES
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm, binom
# Datos
n1 = 50
x1 = 12
n2 = 60
x2 = 12
confianza = 0.98
# Proporciones muestrales
p1_hat = x1 / n1
p2_hat = x2 / n2
q1_hat = 1 - p1_hat
q2_hat = 1 - p2_hat
diferencia = p1_hat - p2_hat
# Valor crítico Z
z_alpha2 = norm.ppf((1 + confianza)/2)
# Error estándar
se = np.sqrt(p1_hat * q1_hat / n1 + p2_hat * q2_hat / n2)
# Intervalo de confianza
margen = z_alpha2 * se
ic_inferior = diferencia - margen
ic_superior = diferencia + margen
print("=== INTERVALO DE CONFIANZA PARA DIFERENCIA DE PROPORCIONES ===")
print(f"Marca A - n₁: {n1}, fallas: {x1}, p̂₁ = {p1_hat:.4f}")
print(f"Marca B - n₂: {n2}, fallas: {x2}, p̂₂ = {p2_hat:.4f}")
print(f"Diferencia estimada (p̂₁ - p̂₂): {diferencia:.4f}")
print(f"Nivel de confianza: {confianza*100}%")
print(f"Valor crítico Z: {z_alpha2:.4f}")
print(f"Error estándar: {se:.4f}")
print(f"Margen de error: {margen:.4f}")
print(f"IC 98%: [{ic_inferior:.4f}, {ic_superior:.4f}]")
print("\nEl intervalo contiene el cero, no hay evidencia de diferencia significativa.")
# ============================================
# VISUALIZACIÓN
# ============================================
np.random.seed(123)
n_sim = 10000
diferencias_sim = []
for _ in range(n_sim):
p1_sim = np.random.binomial(n1, p1_hat, 1)[0] / n1
p2_sim = np.random.binomial(n2, p2_hat, 1)[0] / n2
diferencias_sim.append(p1_sim - p2_sim)
diferencias_sim = np.array(diferencias_sim)
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Histograma de la diferencia
axes[0].hist(diferencias_sim, bins=40, density=True, alpha=0.5,
color='steelblue', edgecolor='white')
x_vals = np.linspace(-0.3, 0.3, 500)
y_vals = norm.pdf(x_vals, diferencia, se)
axes[0].plot(x_vals, y_vals, 'r-', lw=2, label='Distribución teórica')
axes[0].axvline(ic_inferior, color='red', linestyle='--', lw=2)
axes[0].axvline(ic_superior, color='red', linestyle='--', lw=2)
axes[0].axvline(0, color='darkgreen', lw=2, label='Diferencia cero')
axes[0].set_xlabel("p̂₁ - p̂₂")
axes[0].set_ylabel("Densidad")
axes[0].set_title("Distribución muestral de p̂₁ - p̂₂")
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Intervalo de confianza
axes[1].plot(1, diferencia, 'o', color='steelblue', markersize=10)
axes[1].plot([1, 1], [ic_inferior, ic_superior], 'r-', lw=2)
axes[1].axhline(0, color='darkgreen', linestyle='--', lw=2)
axes[1].set_xlim(0.5, 1.5)
axes[1].set_ylim(-0.25, 0.25)
axes[1].set_xticks([1])
axes[1].set_xticklabels(["p̂₁ - p̂₂"])
axes[1].set_ylabel("Diferencia (p₁ - p₂)")
axes[1].set_title("Intervalo de confianza para la diferencia")
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()La reacción de un individuo con respecto a un estímulo en un experimento psicológico puede adoptar una de dos formas, A o B. Si un experimentador quiere estimar la probabilidad \(p\) de que una persona reaccione de manera A, ¿cuántas personas deben incluirse en el experimento? Supóngase que el experimentador estará satisfecho si el error de estimación es menor que 0.04 con una probabilidad igual a 0.90. Considere también que él espera que \(p\) tenga un valor alrededor de 0.6.
📝 Solución Analítica
El intervalo de confianza para \(p\) es:
\[IC(p) = \hat{p} \pm z_{\alpha/2} \cdot \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} = \hat{p} \pm \varepsilon\]
donde \(\varepsilon\) es el error de estimación.
Para \(\alpha = 0.10\), \(z_{\alpha/2} = z_{0.05} = 1.645\). Como \(\varepsilon = z_{\alpha/2} \cdot \sqrt{p(1-p)/n}\), se tiene:
\[0.04 = 1.645 \cdot \sqrt{\frac{0.6 \times 0.4}{n}}\]
\[\sqrt{\frac{0.24}{n}} = \frac{0.04}{1.645} = 0.02432\]
\[\frac{0.24}{n} = (0.02432)^2 = 0.0005915\]
\[n = \frac{0.24}{0.0005915} \approx 405.7 \approx 406\]
Respuesta: Se necesitan 406 personas en el experimento. (Si no se conociera que \(p \approx 0.6\), utilizaríamos \(p = 0.5\), que da el máximo valor \(n = 423\)).
Suponga que \(Y_1, Y_2, \ldots, Y_n\) representa una muestra aleatoria seleccionada de una población normal con media \(\mu\) y varianza \(\sigma^2\) (desconocida), y que \(\bar{Y}\) y \(S^2\) representan la media y la varianza de la muestra respectivamente. Se desea construir un \(IC(\mu)\) cuando el tamaño de la muestra es demasiado pequeño para usar la aproximación normal.
Por teoremas anteriores:
\[\bar{Y} \sim N\left(\mu, \frac{\sigma^2}{n}\right), \quad \frac{(n-1)S^2}{\sigma^2} \sim \chi^2_{(n-1)}\]
Por definición, la variable aleatoria \(T\) tiene distribución \(t\) de Student con \(\nu\) grados de libertad:
\[T = \frac{\bar{Y} - \mu}{S/\sqrt{n}} \sim t_{(n-1)}\]
El intervalo de confianza para \(\mu\) con coeficiente de confianza \((1-\alpha)\) es:
\[IC(\mu) = \left(\bar{Y} - t_{\alpha/2, (n-1)} \cdot \frac{S}{\sqrt{n}},\ \bar{Y} + t_{\alpha/2, (n-1)} \cdot \frac{S}{\sqrt{n}}\right)\]
Un fabricante de pólvora desarrolló una nueva fórmula, que se probó con ocho granadas. Las velocidades iniciales resultantes, en pies por segundo, fueron:
3005, 2995, 2925, 3005, 2935, 2937, 2965, 2905
Halle un intervalo de confianza para medir la media real de las velocidades para granadas de este tipo, con coeficiente de confianza del 95%. Suponga que las velocidades iniciales tienen aproximadamente una distribución normal.
📝 Solución Analítica
Para los datos proporcionados:
El intervalo de confianza es:
\[IC(\mu) = 2959 \pm 2.365 \cdot \frac{39.1}{\sqrt{8}} = 2959 \pm 2.365 \cdot 13.82 = 2959 \pm 32.7 = (2926.3, 2991.7)\]
Interpretación: Con un 95% de confianza, la velocidad media real de las granadas se encuentra entre 2926.3 y 2991.7 pies/segundo.
## === INTERVALO DE CONFIANZA CON t DE STUDENT ===
## Datos: 3005 2995 2925 3005 2935 2937 2965 2905
## Tamaño de muestra (n): 8
## Media muestral (ȳ): 2959
## Desviación estándar muestral (s): 39.09
## Nivel de confianza: 95 %
## Valor crítico t: 2.3646
## Error estándar: 13.82
## Margen de error: 32.68
## IC 95%: [ 2926.32 , 2991.68 ]
# ============================================
# EJEMPLO 3: INTERVALO DE CONFIANZA CON t DE STUDENT
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import t, norm
# Datos
velocidades = np.array([3005, 2995, 2925, 3005, 2935, 2937, 2965, 2905])
n = len(velocidades)
y_bar = np.mean(velocidades)
s = np.std(velocidades, ddof=1)
confianza = 0.95
# Valor crítico t
t_alpha2 = t.ppf((1 + confianza)/2, df=n-1)
# Error estándar
se = s / np.sqrt(n)
# Intervalo de confianza
margen = t_alpha2 * se
ic_inferior = y_bar - margen
ic_superior = y_bar + margen
print("=== INTERVALO DE CONFIANZA CON t DE STUDENT ===")
print(f"Datos: {velocidades}")
print(f"Tamaño de muestra (n): {n}")
print(f"Media muestral (ȳ): {y_bar:.2f}")
print(f"Desviación estándar muestral (s): {s:.2f}")
print(f"Nivel de confianza: {confianza*100}%")
print(f"Valor crítico t: {t_alpha2:.4f}")
print(f"Error estándar: {se:.2f}")
print(f"Margen de error: {margen:.2f}")
print(f"IC 95%: [{ic_inferior:.2f}, {ic_superior:.2f}]")
# ============================================
# VISUALIZACIÓN
# ============================================
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Distribución t de Student
x_vals = np.linspace(-4, 4, 500)
densidad_t = t.pdf(x_vals, df=n-1)
densidad_norm = norm.pdf(x_vals)
axes[0].plot(x_vals, densidad_t, 'purple', lw=2, label=f't({n-1})')
axes[0].plot(x_vals, densidad_norm, 'steelblue', lw=2,
linestyle='--', label='N(0,1)')
x_fill = np.linspace(-t_alpha2, t_alpha2, 100)
y_fill = t.pdf(x_fill, df=n-1)
axes[0].fill_between(x_fill, y_fill, alpha=0.4, color='purple')
axes[0].axvline(-t_alpha2, color='red', linestyle='--')
axes[0].axvline(t_alpha2, color='red', linestyle='--')
axes[0].set_xlabel('t')
axes[0].set_ylabel('Densidad')
axes[0].set_title(f'Distribución t con {n-1} grados de libertad')
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Datos con intervalo de confianza
axes[1].plot(range(1, n+1), velocidades, 'o', color='steelblue',
markersize=8, label='Datos')
axes[1].axhline(y_bar, color='darkgreen', lw=2,
label=f'Media = {y_bar:.1f}')
axes[1].axhline(ic_inferior, color='red', linestyle='--', lw=2,
label=f'IC 95%: [{ic_inferior:.1f}, {ic_superior:.1f}]')
axes[1].axhline(ic_superior, color='red', linestyle='--', lw=2)
axes[1].set_xlabel('Observación')
axes[1].set_ylabel('Velocidad (pies/seg)')
axes[1].set_title('Datos de velocidades con IC 95%')
axes[1].legend()
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()Suponga que se comparan las medias de dos poblaciones normales con \(\sigma_1^2 = \sigma_2^2 = \sigma^2\). El intervalo de confianza para \(\mu_1 - \mu_2\) con coeficiente \((1-\alpha)\) es:
\[IC(\mu_1 - \mu_2) = (\bar{Y}_1 - \bar{Y}_2) \pm t_{\alpha/2, (n_1+n_2-2)} \cdot S_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}\]
donde:
\[S_p^2 = \frac{(n_1-1)S_1^2 + (n_2-1)S_2^2}{n_1 + n_2 - 2}\]
Una operación de montaje en una fábrica manufacturera requiere aproximadamente un periodo de entrenamiento de un mes. Se sugirió un nuevo método para el entrenamiento y se realizó una prueba para comparar el método nuevo con el procedimiento estándar. Se entrenaron dos grupos de nueve empleados nuevos durante un periodo de tres semanas; un grupo realizó el nuevo método y el otro grupo el procedimiento de entrenamiento estándar. Se midió el tiempo (en minutos) que necesitó cada empleado para montar el dispositivo. Las mediciones se muestran a continuación:
| Procedimiento | Mediciones | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Estándar | 32 | 37 | 35 | 28 | 41 | 44 | 35 | 31 | 34 |
| Nuevo | 35 | 31 | 29 | 25 | 34 | 40 | 27 | 32 | 31 |
Estime la diferencia real de las medias \((\mu_1 - \mu_2)\), con un coeficiente de confianza del 95%. Suponga que los tiempos de montaje tienen aproximadamente una distribución normal y que las varianzas son aproximadamente iguales para los dos métodos.
📝 Solución Analítica
De los datos en la tabla:
La varianza combinada es:
\[s_p^2 = \frac{(9-1)24.44 + (9-1)20.03}{9+9-2} = \frac{195.52 + 160.24}{16} = \frac{355.76}{16} = 22.235\]
\(s_p = \sqrt{22.235} = 4.716\)
El intervalo de confianza es:
\[IC(\mu_1 - \mu_2) = (35.22 - 31.56) \pm 2.12 \cdot 4.716 \cdot \sqrt{\frac{1}{9} + \frac{1}{9}}\]
\[= 3.66 \pm 2.12 \cdot 4.716 \cdot 0.4714 = 3.66 \pm 2.12 \cdot 2.223 = 3.66 \pm 4.71 = (-1.05, 8.37)\]
Interpretación: El intervalo de confianza contiene tanto valores positivos como negativos, por lo tanto no se puede concluir que haya una diferencia significativa entre ambos procedimientos.
## === INTERVALO DE CONFIANZA PARA DIFERENCIA DE MEDIAS ===
## Procedimiento estándar:
## n₁ = 9 , media = 35.22 , s₁ = 4.94
## Procedimiento nuevo:
## n₂ = 9 , media = 31.56 , s₂ = 4.48
## Diferencia estimada (μ₁ - μ₂): 3.67
## Varianza combinada (sₚ²): 22.24
## Desviación combinada (sₚ): 4.72
## Valor crítico t: 2.1199
## Error estándar: 2.223
## Margen de error: 4.71
## IC 95%: [ -1.05 , 8.38 ]
##
## El intervalo contiene el cero, no hay evidencia de diferencia significativa.
# ============================================
# EJEMPLO 4: INTERVALO DE CONFIANZA PARA DIFERENCIA DE MEDIAS
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import t
# Datos
estandar = np.array([32, 37, 35, 28, 41, 44, 35, 31, 34])
nuevo = np.array([35, 31, 29, 25, 34, 40, 27, 32, 31])
n1 = len(estandar)
n2 = len(nuevo)
y1_bar = np.mean(estandar)
y2_bar = np.mean(nuevo)
s1 = np.std(estandar, ddof=1)
s2 = np.std(nuevo, ddof=1)
confianza = 0.95
# Varianza combinada
sp2 = ((n1 - 1) * s1**2 + (n2 - 1) * s2**2) / (n1 + n2 - 2)
sp = np.sqrt(sp2)
# Valor crítico t
t_alpha2 = t.ppf((1 + confianza)/2, df=n1 + n2 - 2)
# Diferencia de medias
diferencia = y1_bar - y2_bar
# Error estándar
se = sp * np.sqrt(1/n1 + 1/n2)
# Intervalo de confianza
margen = t_alpha2 * se
ic_inferior = diferencia - margen
ic_superior = diferencia + margen
print("=== INTERVALO DE CONFIANZA PARA DIFERENCIA DE MEDIAS ===")
print("Procedimiento estándar:")
print(f" n₁ = {n1}, media = {y1_bar:.2f}, s₁ = {s1:.2f}")
print("Procedimiento nuevo:")
print(f" n₂ = {n2}, media = {y2_bar:.2f}, s₂ = {s2:.2f}")
print(f"Diferencia estimada (μ₁ - μ₂): {diferencia:.2f}")
print(f"Varianza combinada (sₚ²): {sp2:.2f}")
print(f"Desviación combinada (sₚ): {sp:.2f}")
print(f"Valor crítico t: {t_alpha2:.4f}")
print(f"Error estándar: {se:.3f}")
print(f"Margen de error: {margen:.2f}")
print(f"IC 95%: [{ic_inferior:.2f}, {ic_superior:.2f}]")
print("\nEl intervalo contiene el cero, no hay evidencia de diferencia significativa.")
# ============================================
# VISUALIZACIÓN
# ============================================
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Boxplots comparativos
data_to_plot = [estandar, nuevo]
bp = axes[0].boxplot(data_to_plot, labels=['Estándar', 'Nuevo'],
patch_artist=True)
bp['boxes'][0].set_facecolor('steelblue')
bp['boxes'][1].set_facecolor('orange')
axes[0].plot(1, y1_bar, 'g*', markersize=12, label='Media')
axes[0].plot(2, y2_bar, 'g*', markersize=12)
axes[0].set_ylabel('Tiempo (minutos)')
axes[0].set_title('Comparación de tiempos de montaje')
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Intervalo de confianza para la diferencia
axes[1].plot(1, diferencia, 'o', color='steelblue', markersize=10)
axes[1].plot([1, 1], [ic_inferior, ic_superior], 'r-', lw=2)
axes[1].axhline(0, color='darkgreen', linestyle='--', lw=2)
axes[1].set_xlim(0.5, 1.5)
axes[1].set_ylim(-2, 10)
axes[1].set_xticks([1])
axes[1].set_xticklabels(['μ₁ - μ₂'])
axes[1].set_ylabel('Diferencia (μ₁ - μ₂)')
axes[1].set_title('IC 95% para la diferencia de medias')
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()\(\sigma^2\) es el número que cuantifica la cantidad de variabilidad de una población. Muchas veces un experimentador desconoce el valor real de \(\sigma^2\) y requerirá estimarlo. Se mostró anteriormente que \(S^2 = \frac{1}{n-1}\sum_{i=1}^{n}(Y_i - \bar{Y})^2\) es un estimador insesgado para \(\sigma^2\).
Suponga que \(Y_1, Y_2, \ldots, Y_n\) representa una muestra aleatoria seleccionada de una población normal con media \(\mu\) y varianza \(\sigma^2\), ambas desconocidas. Se sabe que:
\[\frac{(n-1)S^2}{\sigma^2} \sim \chi^2_{(n-1)}\]
Por el método del pivote, se encuentran dos números \(\chi_L^2\) y \(\chi_U^2\) tales que:
\[1-\alpha = P\left(\chi_L^2 \leq \frac{(n-1)S^2}{\sigma^2} \leq \chi_U^2\right) = P\left(\frac{(n-1)S^2}{\chi_U^2} \leq \sigma^2 \leq \frac{(n-1)S^2}{\chi_L^2}\right)\]
Por lo tanto, el intervalo de confianza para \(\sigma^2\) con coeficiente \((1-\alpha)\) es:
\[IC(\sigma^2) = \left(\frac{(n-1)S^2}{\chi_{\alpha/2, (n-1)}^2},\ \frac{(n-1)S^2}{\chi_{1-\alpha/2, (n-1)}^2}\right)\]
Donde \(\chi_{\alpha/2}^2\) y \(\chi_{1-\alpha/2}^2\) son los valores críticos de la distribución chi-cuadrada con \(n-1\) grados de libertad.
Un experimentador quiere verificar la variabilidad de un equipo diseñado para medir el volumen de una fuente de audio frecuencia. Tres mediciones independientes registradas con este equipo fueron: 4.1, 5.2 y 10.2. Estime \(\sigma^2\) con un coeficiente de confianza del 90%.
📝 Solución Analítica
Si se supone normalidad en las mediciones registradas por este equipo, se puede aplicar el intervalo de confianza desarrollado anteriormente.
Para los datos ofrecidos:
El intervalo de confianza pedido es:
\[IC(\sigma^2) = \left(\frac{(3-1) \cdot 10.57}{5.991},\ \frac{(3-1) \cdot 10.57}{0.103}\right) = \left(\frac{21.14}{5.991},\ \frac{21.14}{0.103}\right) = (3.53, 205.24)\]
Interpretación: Este intervalo para \(\sigma^2\) es muy amplio, básicamente porque \(n\) es muy pequeño (solo 3 observaciones). Con más datos, el intervalo se estrecharía.
Se sembró cierta variedad de trigo en parcela de cierta localidad. Se extrajo una muestra al azar de 20 parcelas y se midió el rendimiento. Se obtuvo un rendimiento de 58 kilogramos por parcela y una desviación típica de 8 kg por parcela. Estime la varianza poblacional con un nivel de confianza del 95%, sabiendo que el rendimiento se distribuye normalmente.
📝 Solución Analítica
Se supone normalidad en las mediciones. De los datos:
El intervalo de confianza pedido es:
\[IC(\sigma^2) = \left(\frac{(20-1) \cdot 64}{32.9},\ \frac{(20-1) \cdot 64}{8.91}\right) = \left(\frac{1216}{32.9},\ \frac{1216}{8.91}\right) = (36.96, 136.47)\]
Interpretación: Con un 95% de confianza, la varianza poblacional del rendimiento del trigo se encuentra entre 36.96 y 136.47 (es decir, la desviación estándar entre 6.08 y 11.68 kg).
## === EJEMPLO 5: EQUIPO DE MEDICIÓN ===
## Datos: 4.1 5.2 10.2
## n = 3 , s² = 10.57
## IC 90% para σ²: [ 3.53 , 206.07 ]
## === EJEMPLO 6: RENDIMIENTO DE TRIGO ===
## n = 20 , s² = 64
## IC 95% para σ²: [ 37.01 , 136.53 ]
## IC 95% para σ: [ 6.08 , 11.68 ]
# ============================================
# EJEMPLOS 5 Y 6: INTERVALOS DE CONFIANZA PARA LA VARIANZA
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import chi2
# Ejemplo 5: Datos de 3 mediciones
datos5 = np.array([4.1, 5.2, 10.2])
n5 = len(datos5)
s2_5 = np.var(datos5, ddof=1)
confianza5 = 0.90
alpha5 = 1 - confianza5
chi2_inf5 = chi2.ppf(alpha5/2, df=n5-1)
chi2_sup5 = chi2.ppf(1 - alpha5/2, df=n5-1)
ic_inf5 = (n5 - 1) * s2_5 / chi2_sup5
ic_sup5 = (n5 - 1) * s2_5 / chi2_inf5
print("=== EJEMPLO 5: EQUIPO DE MEDICIÓN ===")
print(f"Datos: {datos5}")
print(f"n = {n5}, s² = {s2_5:.2f}")
print(f"IC 90% para σ²: [{ic_inf5:.2f}, {ic_sup5:.2f}]")
# Ejemplo 6: Datos de 20 parcelas
n6 = 20
s2_6 = 64
confianza6 = 0.95
alpha6 = 1 - confianza6
chi2_inf6 = chi2.ppf(alpha6/2, df=n6-1)
chi2_sup6 = chi2.ppf(1 - alpha6/2, df=n6-1)
ic_inf6 = (n6 - 1) * s2_6 / chi2_sup6
ic_sup6 = (n6 - 1) * s2_6 / chi2_inf6
print("\n=== EJEMPLO 6: RENDIMIENTO DE TRIGO ===")
print(f"n = {n6}, s² = {s2_6}")
print(f"IC 95% para σ²: [{ic_inf6:.2f}, {ic_sup6:.2f}]")
print(f"IC 95% para σ: [{np.sqrt(ic_inf6):.2f}, {np.sqrt(ic_sup6):.2f}]")
# ============================================
# VISUALIZACIÓN DE LA DISTRIBUCIÓN CHI-CUADRADA
# ============================================
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Gráfico 1: Distribución χ² con 2 grados de libertad (Ejemplo 5)
gl5 = n5 - 1
x_vals5 = np.linspace(0, 20, 500)
densidad5 = chi2.pdf(x_vals5, df=gl5)
axes[0].plot(x_vals5, densidad5, 'purple', lw=2, label=f'χ²({gl5})')
axes[0].fill_between(x_vals5[(x_vals5 >= chi2_inf5) & (x_vals5 <= chi2_sup5)],
densidad5[(x_vals5 >= chi2_inf5) & (x_vals5 <= chi2_sup5)],
alpha=0.4, color='steelblue', label='Región central 90%')
axes[0].axvline(chi2_inf5, color='red', linestyle='--')
axes[0].axvline(chi2_sup5, color='red', linestyle='--')
axes[0].set_xlabel(r'$\chi^2$')
axes[0].set_ylabel('Densidad')
axes[0].set_title(f'χ² con {gl5} gl - IC 90%')
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# Gráfico 2: Distribución χ² con 19 grados de libertad (Ejemplo 6)
gl6 = n6 - 1
x_vals6 = np.linspace(0, 50, 500)
densidad6 = chi2.pdf(x_vals6, df=gl6)
axes[1].plot(x_vals6, densidad6, 'purple', lw=2, label=f'χ²({gl6})')
axes[1].fill_between(x_vals6[(x_vals6 >= chi2_inf6) & (x_vals6 <= chi2_sup6)],
densidad6[(x_vals6 >= chi2_inf6) & (x_vals6 <= chi2_sup6)],
alpha=0.4, color='steelblue', label='Región central 95%')
axes[1].axvline(chi2_inf6, color='red', linestyle='--')
axes[1].axvline(chi2_sup6, color='red', linestyle='--')
axes[1].set_xlabel(r'$\chi^2$')
axes[1].set_ylabel('Densidad')
axes[1].set_title(f'χ² con {gl6} gl - IC 95%')
axes[1].legend()
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()📊 RESUMEN - INTERVALOS DE CONFIANZA
Muestra grande: \(\bar{Y} \pm z_{\alpha/2} \cdot \frac{\sigma}{\sqrt{n}}\)
Muestra pequeña (normal): \(\bar{Y} \pm t_{\alpha/2, n-1} \cdot \frac{S}{\sqrt{n}}\)
\(\hat{p} \pm z_{\alpha/2} \cdot \sqrt{\frac{\hat{p}(1-\hat{p})}{n}}\)
Tamaño de muestra: \(n = \frac{z_{\alpha/2}^2 p(1-p)}{\varepsilon^2}\)
\((\bar{Y}_1 - \bar{Y}_2) \pm t_{\alpha/2, n_1+n_2-2} \cdot S_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}\)
\(\left(\frac{(n-1)S^2}{\chi_{\alpha/2}^2},\ \frac{(n-1)S^2}{\chi_{1-\alpha/2}^2}\right)\)
✅ PUNTOS CLAVE
• Un intervalo de confianza proporciona un rango de
valores plausibles para el parámetro poblacional.
• El
coeficiente de confianza \((1-\alpha)\) es la probabilidad de que el
intervalo contenga al parámetro.
• Para muestras grandes (\(n \geq 30\)), se usa la
distribución normal; para muestras pequeñas, la
distribución t de Student.
• El tamaño de
muestra se puede determinar para lograr un error de estimación
deseado.
• Los intervalos para la varianza utilizan la
distribución chi-cuadrada y requieren el supuesto de
normalidad.
• R y Python permiten calcular intervalos de confianza y
simular su comportamiento (cobertura).
📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌
📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌📌
En esta parte presentamos un estudio más formal y detallado de algunas de las propiedades matemáticas de los estimadores puntuales, en particular de los conceptos de eficiencia, consistencia y suficiencia. Se presentarán estadísticos de mínima suficiencia y se les utilizará para construir estimadores insesgados de varianza mínima para los parámetros. Posteriormente se considerarán otros dos métodos útiles para obtener estimadores: el método de los momentos y el método de máxima verosimilitud.
Comparación de varianzas entre estimadores insesgados
Convergencia en probabilidad al parámetro cuando \(n \to \infty\)
Estadístico que resume toda la información muestral
Dados dos estimadores \(\hat{\theta}_1\) y \(\hat{\theta}_2\) del parámetro \(\theta\), con varianzas \(V(\hat{\theta}_1)\) y \(V(\hat{\theta}_2)\), respectivamente, la eficiencia relativa de \(\hat{\theta}_1\) con respecto a \(\hat{\theta}_2\) se define como la razón entre sus varianzas:
\[\text{Eficiencia} = \frac{V(\hat{\theta}_2)}{V(\hat{\theta}_1)}\]
Si la eficiencia es mayor que 1, \(\hat{\theta}_1\) es más eficiente (tiene menor varianza). Si es menor que 1, \(\hat{\theta}_2\) es más eficiente.
Sea \(Y_1, Y_2, \ldots, Y_n\) una muestra aleatoria de la distribución uniforme en el intervalo \((0, \theta)\). Dos estimadores insesgados para \(\theta\) son:
\[\hat{\theta}_1 = 2\bar{Y}, \quad \hat{\theta}_2 = \frac{n+1}{n} Y_{(n)}\]
donde \(Y_{(n)} = \max(Y_1, Y_2, \ldots, Y_n)\). Halle la eficiencia relativa de \(\hat{\theta}_1\) con respecto a \(\hat{\theta}_2\).
📝 Solución Analítica
Paso 1: Distribución de \(Y\)
Para \(Y \sim U(0, \theta)\), la función de densidad es:
\[f(y) = \frac{1}{\theta}, \quad 0 \leq y \leq \theta\]
La media es \(\mu = \theta/2\) y la varianza es \(\sigma^2 = \theta^2/12\).
Paso 2: Distribución del máximo \(Y_{(n)}\)
La función de distribución del máximo es:
\[F_{Y_{(n)}}(y) = P(Y_{(n)} \leq y) = \left(\frac{y}{\theta}\right)^n, \quad 0 \leq y \leq \theta\]
La función de densidad es:
\[g_{Y_{(n)}}(y) = n\left(\frac{y}{\theta}\right)^{n-1} \cdot \frac{1}{\theta}, \quad 0 \leq y \leq \theta\]
Paso 3: Valor esperado y varianza de \(Y_{(n)}\)
\[E(Y_{(n)}) = \int_0^\theta y \cdot n\left(\frac{y}{\theta}\right)^{n-1} \frac{1}{\theta} dy = \frac{n}{n+1}\theta\]
\[E(Y_{(n)}^2) = \int_0^\theta y^2 \cdot n\left(\frac{y}{\theta}\right)^{n-1} \frac{1}{\theta} dy = \frac{n}{n+2}\theta^2\]
\[V(Y_{(n)}) = E(Y_{(n)}^2) - [E(Y_{(n)})]^2 = \left[\frac{n}{n+2} - \left(\frac{n}{n+1}\right)^2\right]\theta^2 = \frac{n\theta^2}{(n+2)(n+1)^2}\]
Paso 4: Insesgadez de \(\hat{\theta}_1\) y \(\hat{\theta}_2\)
\[E(\hat{\theta}_1) = 2E(\bar{Y}) = 2 \cdot \frac{\theta}{2} = \theta\]
\[E(\hat{\theta}_2) = \frac{n+1}{n} E(Y_{(n)}) = \frac{n+1}{n} \cdot \frac{n}{n+1}\theta = \theta\]
Ambos estimadores son insesgados.
Paso 5: Varianzas
\[V(\hat{\theta}_1) = V(2\bar{Y}) = 4V(\bar{Y}) = 4 \cdot \frac{\theta^2/12}{n} = \frac{\theta^2}{3n}\]
\[V(\hat{\theta}_2) = \left(\frac{n+1}{n}\right)^2 V(Y_{(n)}) = \left(\frac{n+1}{n}\right)^2 \cdot \frac{n\theta^2}{(n+2)(n+1)^2} = \frac{\theta^2}{n(n+2)}\]
Paso 6: Eficiencia relativa
\[\text{Eficiencia} = \frac{V(\hat{\theta}_2)}{V(\hat{\theta}_1)} = \frac{\theta^2 / [n(n+2)]}{\theta^2 / (3n)} = \frac{3}{n+2} < 1 \quad \text{para } n > 1\]
Interpretación: \(\hat{\theta}_2\) es más eficiente que \(\hat{\theta}_1\) para \(n > 1\), ya que su varianza es menor. Por ejemplo, para \(n = 10\), la eficiencia es \(3/12 = 0.25\), lo que significa que \(\hat{\theta}_2\) tiene una varianza 4 veces menor.
## === EFICIENCIA RELATIVA - DISTRIBUCIÓN UNIFORME ===
## n = 10 , θ verdadero = 10
## Varianza de θ̂₁ (2Ȳ): 3.3051
## Varianza de θ̂₂ ((n+1)/n * Y₍ₙ₎): 0.8065
## Eficiencia relativa (simulada): 0.244
## Eficiencia relativa (teórica): 0.25
# ============================================
# EJEMPLO 1: EFICIENCIA RELATIVA - DISTRIBUCIÓN UNIFORME
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
# Parámetros
theta_verdadero = 10
n = 10
n_sim = 10000
# Simulación para comparar eficiencia
np.random.seed(123)
theta1_sim = []
theta2_sim = []
for _ in range(n_sim):
muestra = np.random.uniform(0, theta_verdadero, n)
theta1_sim.append(2 * np.mean(muestra))
theta2_sim.append(((n + 1) / n) * np.max(muestra))
theta1_sim = np.array(theta1_sim)
theta2_sim = np.array(theta2_sim)
# Varianzas muestrales
var_theta1 = np.var(theta1_sim, ddof=1)
var_theta2 = np.var(theta2_sim, ddof=1)
eficiencia = var_theta2 / var_theta1
eficiencia_teorica = 3 / (n + 2)
print("=== EFICIENCIA RELATIVA - DISTRIBUCIÓN UNIFORME ===")
print(f"n = {n}, θ verdadero = {theta_verdadero}")
print(f"Varianza de θ̂₁ (2Ȳ): {var_theta1:.4f}")
print(f"Varianza de θ̂₂ ((n+1)/n * Y₍ₙ₎): {var_theta2:.4f}")
print(f"Eficiencia relativa (simulada): {eficiencia:.4f}")
print(f"Eficiencia relativa (teórica): {eficiencia_teorica:.4f}")
# ============================================
# VISUALIZACIÓN DE LAS DISTRIBUCIONES
# ============================================
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Histograma de θ̂₁
axes[0].hist(theta1_sim, bins=50, density=True, alpha=0.5,
color='steelblue', edgecolor='white')
axes[0].axvline(theta_verdadero, color='red', linestyle='--', lw=2)
axes[0].set_xlabel(r'$\hat{\theta}_1 = 2\bar{Y}$')
axes[0].set_ylabel('Densidad')
axes[0].set_title(r'Distribución de $\hat{\theta}_1$')
axes[0].grid(True, alpha=0.3)
# Histograma de θ̂₂
axes[1].hist(theta2_sim, bins=50, density=True, alpha=0.5,
color='orange', edgecolor='white')
axes[1].axvline(theta_verdadero, color='red', linestyle='--', lw=2)
axes[1].set_xlabel(r'$\hat{\theta}_2 = \frac{n+1}{n} Y_{(n)}$')
axes[1].set_ylabel('Densidad')
axes[1].set_title(r'Distribución de $\hat{\theta}_2$')
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
# Gráfico de eficiencia para diferentes n
n_values = np.arange(2, 31)
eficiencia_teorica_n = 3 / (n_values + 2)
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(n_values, eficiencia_teorica_n, 'b-', lw=2, label=r'$3/(n+2)$')
ax.plot(n, eficiencia_teorica, 'ro', markersize=8, label=f'n = {n}')
ax.set_xlabel('Tamaño de muestra (n)')
ax.set_ylabel('Eficiencia relativa')
ax.set_title('Eficiencia de θ̂₂ respecto a θ̂₁')
ax.legend()
ax.grid(True, alpha=0.3)
plt.show()La notación \(\hat{\theta}_n\) se utiliza para expresar el hecho de que el estimador de \(\theta\) se calcula mediante una muestra de tamaño \(n\).
El estimador \(\hat{\theta}_n\) es un estimador consistente de \(\theta\) si para cualquier número positivo \(\varepsilon\):
\[\lim_{n \to \infty} P(|\hat{\theta}_n - \theta| \leq \varepsilon) = 1\]
o en forma equivalente:
\[\lim_{n \to \infty} P(|\hat{\theta}_n - \theta| > \varepsilon) = 0\]
En otras palabras: \(\hat{\theta}_n\) es un estimador consistente de \(\theta\) si y sólo si \(\hat{\theta}_n\) converge en probabilidad a \(\theta\).
Teorema: Si \(\hat{\theta}_n\) es un estimador insesgado para \(\theta\) y \(\displaystyle \lim_{n \to \infty} V(\hat{\theta}_n) = 0\), entonces \(\hat{\theta}_n\) es un estimador consistente de \(\theta\).
Sea \(Y_1, Y_2, \ldots, Y_n\) una muestra aleatoria de una distribución con media \(\mu\) y varianza \(\sigma^2 < \infty\). Demuestre que \(\bar{Y}\) es un estimador consistente de \(\mu\).
Solución: \(\bar{Y}\) es insesgado: \(E(\bar{Y}) = \mu\). Además, \(V(\bar{Y}) = \sigma^2/n \to 0\) cuando \(n \to \infty\). Por el teorema, \(\bar{Y}\) es consistente para \(\mu\).
Supóngase que \(\hat{\theta}_n\) es un estimador consistente de \(\theta\) y \(\hat{\theta}_n'\) es un estimador consistente de \(\theta'\). Entonces:
Consecuencia de la ley de los grandes números. Sea \(Y_1, Y_2, \ldots, Y_n\) una muestra aleatoria de una distribución tal que \(E(Y_i) = \mu\), \(E(Y_i^2) = \mu_2'\), \(E(Y_i^4) = \mu_4'\) son todos finitos. Demuestre que \(S^2 = \frac{1}{n-1}\sum_{i=1}^n (Y_i - \bar{Y})^2\) es un estimador consistente de \(\sigma^2 = V(Y_i)\).
Solución: Se puede demostrar que \(S^2\) es insesgado (\(E(S^2) = \sigma^2\)) y que \(V(S^2) \to 0\) cuando \(n \to \infty\), por lo tanto es consistente.
# ============================================
# DEMOSTRACIÓN DE CONSISTENCIA
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Parámetros
mu_verdadera = 50
sigma_verdadera = 10
n_values = [5, 10, 20, 50, 100, 200, 500]
n_sim = 1000
# Almacenar resultados
medias_por_n = {}
varianzas_por_n = {}
np.random.seed(123)
for n in n_values:
medias = [np.mean(np.random.normal(mu_verdadera, sigma_verdadera, n))
for _ in range(n_sim)]
medias_por_n[n] = medias
varianzas_por_n[n] = np.var(medias)
# Visualización
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
# Gráfico 1: Boxplots para diferentes n
data_to_plot = [medias_por_n[n] for n in n_values]
bp = axes[0, 0].boxplot(data_to_plot, labels=n_values, patch_artist=True)
for patch in bp['boxes']:
patch.set_facecolor('steelblue')
patch.set_alpha(0.5)
axes[0, 0].axhline(mu_verdadera, color='red', linestyle='--', lw=2)
axes[0, 0].set_xlabel('Tamaño de muestra (n)')
axes[0, 0].set_ylabel(r'$\bar{Y}$')
axes[0, 0].set_title('Distribución de la media muestral para diferentes n')
axes[0, 0].grid(True, alpha=0.3)
# Gráfico 2: Varianza de la media vs n
n_list = list(varianzas_por_n.keys())
var_list = list(varianzas_por_n.values())
axes[0, 1].loglog(n_list, var_list, 'o-', color='steelblue', label='Varianza simulada')
axes[0, 1].loglog(n_list, [sigma_verdadera**2 / n for n in n_list],
'r--', lw=2, label='σ²/n')
axes[0, 1].set_xlabel('Tamaño de muestra (n)')
axes[0, 1].set_ylabel('Varianza de la media')
axes[0, 1].set_title('Varianza de la media vs tamaño de muestra')
axes[0, 1].legend()
axes[0, 1].grid(True, alpha=0.3)
# Gráficos 3-6: Histogramas para diferentes n
n_subset = [5, 10, 50, 200]
for idx, n in enumerate(n_subset):
ax = axes[1, idx] if idx < 2 else axes[2, idx-2] if hasattr(axes, '__len__') and len(axes) > 2 else axes[1, idx]
if idx >= 2:
ax = axes[1, idx-2] if len(axes[1]) > 2 else axes[2, idx-2]
medias = medias_por_n[n]
ax.hist(medias, bins=30, density=True, alpha=0.5,
color='steelblue', edgecolor='white')
x_vals = np.linspace(40, 60, 500)
y_vals = norm.pdf(x_vals, mu_verdadera, sigma_verdadera/np.sqrt(n))
ax.plot(x_vals, y_vals, 'r-', lw=2)
ax.axvline(mu_verdadera, color='darkgreen', linestyle='--', lw=2)
ax.set_title(f'n = {n}')
ax.set_xlabel(r'$\bar{Y}$')
ax.set_ylabel('Densidad')
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()Sea \(\mathbf{Y} = (Y_1, Y_2, \ldots, Y_n)\) una muestra aleatoria con distribución de probabilidad de parámetro \(\theta\), \(f_{\mathbf{Y}}(\mathbf{y}, \theta)\). Se dice que el estadístico \(S(\mathbf{Y}) = S(Y_1, Y_2, \ldots, Y_n)\) es suficiente para \(\theta\) si:
\[f_{\mathbf{Y}}(\mathbf{y}, \theta) = H(\mathbf{y}) \cdot G(S(\mathbf{y}), \theta)\]
Es decir, la función de densidad conjunta se puede factorizar en un producto de una función que depende solo de los datos (\(H(\mathbf{y})\)) y otra que depende solo del estadístico \(S(\mathbf{y})\) y del parámetro \(\theta\).
Sea \(\mathbf{Y} = (Y_1, Y_2, \ldots, Y_n)\) una muestra aleatoria con función de densidad:
\[f_{Y_i}(y_i, \alpha) = \frac{1}{\alpha} e^{-y_i/\alpha}, \quad 0 \leq y_i < \infty\]
Pruebe que \(\bar{Y}\) es un estimador suficiente para \(\alpha\).
Solución: La función de densidad conjunta es:
\[f_{\mathbf{Y}}(\mathbf{y}, \alpha) = \prod_{i=1}^n \frac{1}{\alpha} e^{-y_i/\alpha} = \frac{1}{\alpha^n} e^{-\sum_{i=1}^n y_i / \alpha}\]
Podemos escribir:
\[f_{\mathbf{Y}}(\mathbf{y}, \alpha) = \underbrace{1}_{H(\mathbf{y})} \cdot \underbrace{\frac{1}{\alpha^n} e^{-n\bar{y} / \alpha}}_{G(\bar{y}, \alpha)}\]
Por lo tanto, \(\bar{Y}\) es suficiente para \(\alpha\).
Sea \(\mathbf{Y} = (Y_1, Y_2, \ldots, Y_n)\) una muestra aleatoria con distribución de probabilidad conjunta \(L(\mathbf{y}) = f_{\mathbf{Y}}(\mathbf{y}, \theta)\), donde \(\mathbf{y} = (y_1, y_2, \ldots, y_n)\) es una observación tomada de las v.a. \(Y_1, Y_2, \ldots, Y_n\).
Suponga que \(\mathbf{x} = (x_1, x_2, \ldots, x_n)\) es otra observación tomada de las v.a. \(Y_1, Y_2, \ldots, Y_n\) y se construye el cociente:
\[\frac{L(\mathbf{x})}{L(\mathbf{y})} = \frac{f_{\mathbf{Y}}(\mathbf{x}, \theta)}{f_{\mathbf{Y}}(\mathbf{y}, \theta)}\]
Si existe una función \(S(\mathbf{x})\) tal que \(\frac{L(\mathbf{x})}{L(\mathbf{y})}\) no contiene al parámetro \(\theta\) si y solo si \(S(\mathbf{x}) = S(\mathbf{y})\), entonces \(S(\mathbf{Y})\) se llama un estimador de mínima suficiencia.
Teorema: Sea \(S(\mathbf{Y})\) un estimador de mínima suficiencia. Si \(\hat{\theta} = \hat{\theta}(S(\mathbf{Y}))\) es un estimador insesgado, entonces \(\hat{\theta}\) se llama un Estimador Insesgado de Mínima Varianza (EIMV).
Suponga que \(Y_1, Y_2, \ldots, Y_n\) representa una muestra aleatoria seleccionada de una población normal con media \(\mu\) y varianza \(\sigma^2\) desconocidas. Pruebe que \(\bar{Y} = \frac{1}{n}\sum_{i=1}^n Y_i\) y \(S^2 = \frac{1}{n-1}\sum_{i=1}^n (Y_i - \bar{Y})^2\) son estimadores EIMV para \(\mu\) y \(\sigma^2\).
📝 Solución
La función de verosimilitud para una muestra normal es:
\[L(\mathbf{y}) = \left(\frac{1}{\sigma\sqrt{2\pi}}\right)^n \exp\left\{-\frac{1}{2\sigma^2} \sum_{i=1}^n (y_i - \mu)^2\right\}\]
El cociente de verosimilitudes es:
\[\frac{L(\mathbf{x})}{L(\mathbf{y})} = \exp\left\{-\frac{1}{2\sigma^2}\left[\sum_{i=1}^n (x_i - \mu)^2 - \sum_{i=1}^n (y_i - \mu)^2\right]\right\}\]
\[= \exp\left\{-\frac{1}{2\sigma^2}\left[\left(\sum_{i=1}^n x_i^2 - \sum_{i=1}^n y_i^2\right) - 2\mu\left(\sum_{i=1}^n x_i - \sum_{i=1}^n y_i\right)\right]\right\}\]
Para que esta razón no presente a \(\mu\) y \(\sigma^2\), debe tenerse que:
\[\sum_{i=1}^n x_i = \sum_{i=1}^n y_i \quad \text{y} \quad \sum_{i=1}^n x_i^2 = \sum_{i=1}^n y_i^2\]
Por lo tanto, \(\sum_{i=1}^n Y_i\) y \(\sum_{i=1}^n Y_i^2\) forman conjuntamente los estadísticos de mínima suficiencia para \(\mu\) y \(\sigma^2\).
También se conoce que \(\bar{Y} = \frac{1}{n}\sum_{i=1}^n Y_i\) y \(S^2 = \frac{1}{n-1}\left[\sum_{i=1}^n Y_i^2 - n\bar{Y}^2\right]\) son estadísticos insesgados para \(\mu\) y \(\sigma^2\) respectivamente, y por lo tanto son sus respectivos EIMV.
El método de los momentos consiste en igualar los momentos poblacionales con los momentos muestrales. Se eligen como estimaciones aquellos valores de los parámetros que son soluciones de las ecuaciones:
\[\mu_k' = E(Y^k) = \frac{1}{n} \sum_{i=1}^n Y_i^k = m_k', \quad k = 1, 2, \ldots, t\]
donde \(t\) es igual al número de parámetros a estimar.
El método de máxima verosimilitud consiste en elegir como estimaciones aquellos valores de los parámetros que maximizan la función de verosimilitud:
\[L(\mathbf{y}) = L(y_1, y_2, \ldots, y_n) = f_{\mathbf{Y}}(\mathbf{y}, \theta)\]
Es decir, se busca \(\hat{\theta}_{MLE}\) tal que:
\[\hat{\theta}_{MLE} = \arg\max_{\theta} L(\mathbf{y}; \theta)\]
Suponga que \(Y_1, Y_2, \ldots, Y_n\) representa una muestra aleatoria seleccionada de una población normal con media \(\mu\) y varianza \(\sigma^2\) desconocidas. Pruebe que \(\bar{Y} = \frac{1}{n}\sum_{i=1}^n Y_i\) y \(S'^2 = \frac{1}{n}\sum_{i=1}^n (Y_i - \bar{Y})^2\) son estimadores de máxima verosimilitud para \(\mu\) y \(\sigma^2\).
📝 Solución
La función de verosimilitud es:
\[L(\mu, \sigma^2) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left\{-\frac{(y_i - \mu)^2}{2\sigma^2}\right\} = (2\pi\sigma^2)^{-n/2} \exp\left\{-\frac{1}{2\sigma^2}\sum_{i=1}^n (y_i - \mu)^2\right\}\]
Tomando logaritmo natural (log-verosimilitud):
\[\ell(\mu, \sigma^2) = -\frac{n}{2}\ln(2\pi) - \frac{n}{2}\ln(\sigma^2) - \frac{1}{2\sigma^2}\sum_{i=1}^n (y_i - \mu)^2\]
Derivando respecto a \(\mu\) e igualando a cero:
\[\frac{\partial \ell}{\partial \mu} = \frac{1}{\sigma^2}\sum_{i=1}^n (y_i - \mu) = 0 \quad \Rightarrow \quad \sum_{i=1}^n y_i - n\mu = 0 \quad \Rightarrow \quad \hat{\mu}_{MLE} = \bar{y}\]
Derivando respecto a \(\sigma^2\) e igualando a cero:
\[\frac{\partial \ell}{\partial \sigma^2} = -\frac{n}{2\sigma^2} + \frac{1}{2\sigma^4}\sum_{i=1}^n (y_i - \mu)^2 = 0\]
\[\Rightarrow \hat{\sigma}^2_{MLE} = \frac{1}{n}\sum_{i=1}^n (y_i - \bar{y})^2 = S'^2\]
Por lo tanto, \(\bar{Y}\) y \(S'^2\) son los estimadores de máxima verosimilitud para \(\mu\) y \(\sigma^2\).
## === COMPARACIÓN DE ESTIMADORES ===
## n = 30 , μ verdadera = 100 , σ² verdadera = 225
## Estimador MLE de μ:
## Media: 100.03
## Sesgo: 0.03
## Varianza: 7.25
## Estimador MLE de σ²:
## Media: 218.37
## Sesgo: -6.63
## Varianza: 3266.75
## Estimador insesgado de σ²:
## Media: 225.9
## Sesgo: 0.9
## Varianza: 3495.92
# ============================================
# COMPARACIÓN DE ESTIMADORES: MLE vs INSESGADO
# ============================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Simulación para comparar MLE y estimador insesgado de la varianza
np.random.seed(123)
n = 30
mu_verdadera = 100
sigma_verdadera = 15
n_sim = 5000
# Almacenar resultados
mle_mu = []
mle_sigma2 = []
insesgado_sigma2 = []
for _ in range(n_sim):
muestra = np.random.normal(mu_verdadera, sigma_verdadera, n)
mle_mu.append(np.mean(muestra))
mle_sigma2.append(np.var(muestra, ddof=0)) # MLE (divide por n)
insesgado_sigma2.append(np.var(muestra, ddof=1)) # Insesgado (divide por n-1)
mle_mu = np.array(mle_mu)
mle_sigma2 = np.array(mle_sigma2)
insesgado_sigma2 = np.array(insesgado_sigma2)
# Resultados
print("=== COMPARACIÓN DE ESTIMADORES ===")
print(f"n = {n}, μ verdadera = {mu_verdadera}, σ² verdadera = {sigma_verdadera**2}\n")
print("Estimador MLE de μ:")
print(f" Media: {np.mean(mle_mu):.2f}")
print(f" Sesgo: {np.mean(mle_mu) - mu_verdadera:.2f}")
print(f" Varianza: {np.var(mle_mu):.2f}\n")
print("Estimador MLE de σ²:")
print(f" Media: {np.mean(mle_sigma2):.2f}")
print(f" Sesgo: {np.mean(mle_sigma2) - sigma_verdadera**2:.2f}")
print(f" Varianza: {np.var(mle_sigma2):.2f}\n")
print("Estimador insesgado de σ²:")
print(f" Media: {np.mean(insesgado_sigma2):.2f}")
print(f" Sesgo: {np.mean(insesgado_sigma2) - sigma_verdadera**2:.2f}")
print(f" Varianza: {np.var(insesgado_sigma2):.2f}")
# Visualización
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Histogramas de los estimadores de σ²
axes[0].hist(mle_sigma2, bins=40, density=True, alpha=0.5,
color='red', edgecolor='white', label='MLE (sesgado)')
axes[0].hist(insesgado_sigma2, bins=40, density=True, alpha=0.5,
color='steelblue', edgecolor='white', label='Insesgado')
axes[0].axvline(sigma_verdadera**2, color='darkgreen', linestyle='--', lw=2,
label='σ² verdadera')
axes[0].set_xlabel('σ² estimada')
axes[0].set_ylabel('Densidad')
axes[0].set_title('Estimadores de σ² (n=30)')
axes[0].legend()
axes[0].grid(True, alpha=0.3)
# Boxplot comparativo
data_to_plot = [mle_sigma2, insesgado_sigma2]
bp = axes[1].boxplot(data_to_plot, labels=['MLE', 'Insesgado'], patch_artist=True)
bp['boxes'][0].set_facecolor('red')
bp['boxes'][0].set_alpha(0.5)
bp['boxes'][1].set_facecolor('steelblue')
bp['boxes'][1].set_alpha(0.5)
axes[1].axhline(sigma_verdadera**2, color='darkgreen', linestyle='--', lw=2)
axes[1].set_ylabel('σ² estimada')
axes[1].set_title('Comparación de estimadores de σ²')
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()📊 RESUMEN - PROPIEDADES DE ESTIMADORES
\(E(\hat{\theta}) = \theta\)
Ej: \(\bar{Y}\), \(S^2\)
\(V(\hat{\theta}_1) \leq V(\hat{\theta}_2)\)
Eficiencia relativa = \(V(\hat{\theta}_2)/V(\hat{\theta}_1)\)
\(\lim_{n\to\infty} P(|\hat{\theta}_n - \theta| \leq \varepsilon) = 1\)
Convergencia en probabilidad
\(f_{\mathbf{Y}}(\mathbf{y}, \theta) = H(\mathbf{y}) \cdot G(S(\mathbf{y}), \theta)\)
Resume toda la información
✅ PUNTOS CLAVE
• La eficiencia relativa compara la varianza de
estimadores insesgados: \(\text{Eficiencia} =
V(\hat{\theta}_2)/V(\hat{\theta}_1)\).
• Un estimador es
consistente si converge en probabilidad al parámetro
cuando \(n \to \infty\); la condición
suficiente es que sea insesgado y su varianza tienda a cero.
• Un
estadístico es suficiente si contiene toda la
información muestral sobre el parámetro (factorización de la
verosimilitud).
• El método de los momentos iguala
momentos poblacionales y muestrales.
• El método de máxima
verosimilitud (MLE) maximiza la función de verosimilitud; para
la distribución normal, \(\hat{\mu}_{MLE} =
\bar{Y}\) y \(\hat{\sigma}^2_{MLE} =
\frac{1}{n}\sum(Y_i - \bar{Y})^2\) (sesgado).
• R y Python
permiten simular y comparar las propiedades de diferentes estimadores.
⭐⭐⭐⭐⭐
Las siguientes obras constituyen los textos fundamentales que han servido como base para la elaboración de estas notas de clase. Se recomienda encarecidamente su consulta para profundizar en los temas tratados y para complementar los ejemplos y ejercicios presentados.
Diseño y Análisis de Experimentos
Segunda Edición.
Editorial Limusa Wiley.
Texto clásico y referencia internacional
en el campo del diseño experimental. Cubre desde conceptos básicos hasta
diseños avanzados como factoriales fraccionados, superficies de
respuesta y diseños robustos.
Análisis y Diseño de Experimentos
Segunda Edición.
McGraw-Hill Interamericana.
Excelente texto en español con
numerosos ejemplos aplicados a la industria y los negocios. Enfoque
práctico y accesible para estudiantes de ingeniería y ciencias
administrativas.
Diseño de Experimentos
Segunda Edición. Thomson
Learning.
Aborda de manera exhaustiva los principios del diseño
experimental con énfasis en aplicaciones en agricultura, biología e
industrias químicas. Incluye numerosos ejemplos con datos reales.
Diseño de Experimentos
Pearson Prentice Hall.
Texto con enfoque pedagógico que combina teoría y práctica. Incluye
ejercicios resueltos y propuestos, así como aplicaciones en diversos
campos de la ingeniería.
Probabilidad y Estadística para Ingeniería y
Ciencias
Sexta Edición. International Thomson Editores.
Texto ampliamente utilizado en cursos introductorios. Presenta los
conceptos fundamentales de probabilidad y estadística con aplicaciones
reales en ingeniería y ciencias.
Probabilidad y Estadística
Cuarta Edición.
McGraw-Hill.
Clásico en la enseñanza de la estadística. Cubre
desde conceptos básicos hasta temas avanzados como regresión y análisis
de varianza, con numerosos ejemplos y ejercicios.
Mathematical Statistics with Applications
Séptima
Edición. Thomson/Brooks-Cole.
Texto fundamental en inglés para
el estudio de la estadística matemática. Aborda con rigor los
fundamentos teóricos de la inferencia estadística, incluyendo
estimación, pruebas de hipótesis y modelos lineales.
| Tema | Montgomery | Gutiérrez & de la Vara | Kuehl | Devore | Walpole |
|---|---|---|---|---|---|
| Estadística Inferencial | Cap. 3 | Cap. 2 | Cap. 2 | Cap. 6-7 | Cap. 7-8 |
| Distribuciones Muestrales | Cap. 3 | Cap. 2 | Cap. 2 | Cap. 5 | Cap. 7 |
| Estimación Puntual | Cap. 3 | Cap. 2 | Cap. 2 | Cap. 6 | Cap. 8 |
| Intervalos de Confianza | Cap. 3 | Cap. 2 | Cap. 2 | Cap. 7 | Cap. 8 |
| Prueba de Hipótesis | Cap. 3 | Cap. 2 | Cap. 3 | Cap. 8-9 | Cap. 9-10 |
| Diseños de Experimentos | Cap. 1-14 | Cap. 3-12 | Cap. 4-14 | Cap. 10-11 | Cap. 13-15 |
| ANOVA | Cap. 4 | Cap. 3-5 | Cap. 4-5 | Cap. 10 | Cap. 13 |
| Diseños Factoriales | Cap. 5-7 | Cap. 6-8 | Cap. 6-8 | Cap. 11 | Cap. 14 |
Nota: Las referencias a capítulos son aproximadas y pueden variar según la edición de cada texto. Se recomienda consultar el índice detallado de cada obra para una ubicación precisa de los temas.
Autor(es). (Año). Título de la obra (Edición). Editorial.
Ejemplo:
Montgomery, D. C. (2004). Diseño y
Análisis de Experimentos (2ª ed.). Limusa Wiley.
AUTOR, Nombre. Título. Edición. Lugar de publicación: Editorial, año.
Ejemplo:
GUTIÉRREZ, Humberto y DE LA VARA, Román.
Análisis y Diseño de Experimentos. 2ª ed. México: McGraw-Hill,
2008.
Maestría en Ingenierías y Especialización en Estadística Aplicada. (2026). Diseño de Experimentos - Notas de Clase. Universidad Tecnológica de Bolívar.
📚 “El diseño experimental es el arte de la investigación planificada, donde la estadística proporciona el rigor y la creatividad proporciona el camino”
— Adaptado de George E. P. Box