####################################################################################################################################
Sea \[Y_1, Y_2, ..., Y_n\] una muestra aleatoria de una distribución normal con media \[\mu\] y varianza \[\sigma^2\].
\[ \sum_{i=1}^n \frac{(Y_i - \mu)^2}{\sigma^2} \sim \chi^2_{(n)} \]
Problema: \[Z_1, ..., Z_6 \sim N(0,1)\], hallar \[b\] tal que \[P(\sum Z_i^2 \leq b) = 0.95\]
\[ \sum_{i=1}^6 Z_i^2 \sim \chi^2_{(6)} \] \[ P(\chi^2_{(6)} \leq 12.5916) = 0.95 \] \[ \Rightarrow b = 12.5916 \]
Implementación R: qchisq(0.95,
df=6)
Teorema: Para muestra normal:
\[ \frac{(n-1)S^2}{\sigma^2} \sim \chi^2_{(n-1)} \]
Propiedad clave: \[\bar{Y}\] y \[S^2\] son independientes
📊 Problema
🎯 Solución
Una fábrica produce piezas con diámetro que sigue una distribución normal con varianza \[\sigma^2 = 0.01 \text{ mm}^2\]. Se toma una muestra de \[n=15\] piezas cada hora. El proceso se detiene si la varianza muestral \[S^2\] supera 0.025 \[\text{ mm}^2\]. ¿Cuál es la probabilidad de detener el proceso innecesariamente?
Solución:
\[ P(S^2 > 0.025) = P\left(\frac{(n-1)S^2}{\sigma^2} > \frac{14 \times 0.025}{0.01}\right) = P(\chi^2_{(14)} > 35) \] \[ P(\chi^2_{(14)} > 35) \approx 0.0015 \]
La probabilidad de una falsa alarma es solo del 0.15%.
Aquí tienes varios ejemplos similares sobre diferentes aplicaciones de la distribución chi-cuadrado:
Una máquina envasadora de café debe llenar paquetes con varianza máxima de \[\sigma^2 = 4 \text{ g}^2\] en el peso. Se selecciona una muestra aleatoria de \[n=20\] paquetes y se encuentra una varianza muestral \[S^2 = 7.2 \text{ g}^2\]. ¿Existe evidencia suficiente para concluir que la variabilidad ha aumentado?
Solución:
\[ \chi^2_{\text{calc}} = \frac{(n-1)S^2}{\sigma^2} = \frac{19 \times 7.2}{4} = 34.2 \] \[ P(\chi^2_{(19)} > 34.2) \approx 0.018 \]
Con un valor p de 0.018, hay evidencia significativa de aumento en la variabilidad.
Un proceso químico requiere que la concentración de un compuesto tenga varianza \[\sigma^2 = 0.5 \text{ (mg/L)}^2\]. Se toman \[n=25\] muestras y se obtiene una varianza muestral \[S^2 = 0.82 \text{ (mg/L)}^2\]. Calcular la probabilidad de obtener una varianza muestral tan alta o más si el proceso está bajo control.
Solución:
\[ P(S^2 > 0.82) = P\left(\chi^2_{(24)} > \frac{24 \times 0.82}{0.5}\right) = P(\chi^2_{(24)} > 39.36) \] \[ P(\chi^2_{(24)} > 39.36) \approx 0.025 \]
Hay un 2.5% de probabilidad de observar tal variabilidad por azar.
Un glucómetro debe tener una varianza máxima de \[\sigma^2 = 0.04 \text{ (mg/dL)}^2\] en sus mediciones. En una prueba con \[n=12\] muestras de control, se obtiene \[S^2 = 0.07 \text{ (mg/dL)}^2\]. ¿Cuál es la probabilidad de que esta variabilidad se deba al azar?
Solución:
\[ P(S^2 > 0.07) = P\left(\chi^2_{(11)} > \frac{11 \times 0.07}{0.04}\right) = P(\chi^2_{(11)} > 19.25) \] \[ P(\chi^2_{(11)} > 19.25) \approx 0.056 \]
La probabilidad es del 5.6%, marginalmente significativa.
La longitud de ejes metálicos debe tener varianza \[\sigma^2 = 0.0025 \text{ mm}^2\]. Cada lote de \[n=30\] piezas se rechaza si la varianza muestral supera 0.004 mm². Determinar la probabilidad de rechazar incorrectamente un lote bueno.
Solución:
\[ P(S^2 > 0.004) = P\left(\chi^2_{(29)} > \frac{29 \times 0.004}{0.0025}\right) = P(\chi^2_{(29)} > 46.4) \] \[ P(\chi^2_{(29)} > 46.4) \approx 0.022 \]
El riesgo de error tipo I es del 2.2%.
Un laboratorio de calibración requiere que la varianza en mediciones de pH sea \[\sigma^2 = 0.01\]. En 16 mediciones de una solución estándar, se obtiene \[S^2 = 0.018\]. ¿Existe evidencia de excesiva variabilidad?
Solución:
\[ \chi^2_{\text{calc}} = \frac{15 \times 0.018}{0.01} = 27 \] \[ P(\chi^2_{(15)} > 27) \approx 0.029 \]
Con p = 0.029, se concluye que la variabilidad es significativamente mayor.
Aquí tienes cada ejercicio completo y por separado, con todo el código R necesario:
# ============================================================
# EJERCICIO ORIGINAL: Control de Calidad en Fábrica de Piezas
# ============================================================
# DATOS DEL PROBLEMA
# -----------------
# Una fábrica produce piezas con diámetro que sigue una distribución normal
# Varianza poblacional: σ² = 0.01 mm²
# Tamaño de muestra: n = 15 piezas cada hora
# El proceso se detiene si la varianza muestral S² supera 0.025 mm²
# ¿Probabilidad de detener el proceso innecesariamente?
# PASO 1: Definir los datos
sigma2 <- 0.01 # Varianza poblacional
n <- 15 # Tamaño de muestra
S2_limite <- 0.025 # Límite para detener el proceso
gl <- n - 1 # Grados de libertad = 14
# PASO 2: Calcular el estadístico chi-cuadrado
chi2_calc <- (n - 1) * S2_limite / sigma2
# Resultado: (14 * 0.025) / 0.01 = 35
# PASO 3: Calcular la probabilidad (valor p)
prob_error <- pchisq(chi2_calc, df = gl, lower.tail = FALSE)
# lower.tail = FALSE calcula P(X > valor)
# PASO 4: Mostrar resultados
cat("========================================\n")
## ========================================
cat("EJERCICIO ORIGINAL: Control de Calidad\n")
## EJERCICIO ORIGINAL: Control de Calidad
cat("========================================\n")
## ========================================
cat("Datos:\n")
## Datos:
cat(" Varianza poblacional (σ²):", sigma2, "mm²\n")
## Varianza poblacional (σ²): 0.01 mm²
cat(" Tamaño de muestra (n):", n, "\n")
## Tamaño de muestra (n): 15
cat(" Límite de varianza muestral:", S2_limite, "mm²\n")
## Límite de varianza muestral: 0.025 mm²
cat(" Grados de libertad:", gl, "\n\n")
## Grados de libertad: 14
cat("Cálculos:\n")
## Cálculos:
cat(" χ² = (n-1) × S² / σ² =", gl, "×", S2_limite, "/", sigma2, "=", chi2_calc, "\n")
## χ² = (n-1) × S² / σ² = 14 × 0.025 / 0.01 = 35
cat(" P(χ²(14) >", chi2_calc, ") =", round(prob_error * 100, 4), "%\n\n")
## P(χ²(14) > 35 ) = 0.147 %
cat("Resultado:\n")
## Resultado:
cat(" La probabilidad de una falsa alarma es del",
round(prob_error * 100, 3), "%\n")
## La probabilidad de una falsa alarma es del 0.147 %
cat(" Es decir, solo el", round(prob_error * 100, 3),
"% de las veces se detendrá el proceso innecesariamente.\n\n")
## Es decir, solo el 0.147 % de las veces se detendrá el proceso innecesariamente.
# PASO 5: VERIFICACIÓN CON TABLA
cat("Verificación con valores tabulados:\n")
## Verificación con valores tabulados:
cat(" Según tablas: P(χ²(14) > 35) ≈ 0.0015\n")
## Según tablas: P(χ²(14) > 35) ≈ 0.0015
cat(" Cálculo exacto en R:", round(prob_error, 6), "\n")
## Cálculo exacto en R: 0.00147
diferencia <- abs(0.0015 - prob_error)
cat(" Diferencia:", round(diferencia, 8), "\n\n")
## Diferencia: 2.998e-05
# PASO 6: GRÁFICO DE LA DISTRIBUCIÓN
par(mfrow = c(1, 2)) # Dos gráficos: uno con región sombreada y otro con curva
# Gráfico 1: Distribución con región sombreada
x <- seq(0, 60, length.out = 500)
y <- dchisq(x, df = gl)
plot(x, y, type = "l", lwd = 2, col = "blue",
main = paste("Distribución χ² con", gl, "grados de libertad"),
xlab = "Valor chi-cuadrado",
ylab = "Densidad de probabilidad",
cex.main = 1.1, cex.lab = 1)
# Sombreado de la región de rechazo (P(S² > 0.025))
x_rechazo <- seq(chi2_calc, 60, length.out = 100)
y_rechazo <- dchisq(x_rechazo, df = gl)
polygon(c(chi2_calc, x_rechazo, 60),
c(0, y_rechazo, 0),
col = rgb(1, 0, 0, 0.3), border = NA)
# Línea vertical en el valor crítico
abline(v = chi2_calc, col = "red", lwd = 2, lty = 2)
# Texto explicativo
text(45, 0.03, paste("P(χ² >", chi2_calc, ") =",
round(prob_error, 4)), col = "red", cex = 1)
text(45, 0.025, paste("=", round(prob_error * 100, 2), "%"),
col = "red", cex = 1, font = 2)
# Leyenda
legend("topright",
legend = c("Distribución χ²",
paste("Región de rechazo (", round(prob_error*100, 2), "%)"),
paste("Valor crítico =", chi2_calc)),
col = c("blue", rgb(1, 0, 0, 0.3), "red"),
lty = c(1, NA, 2), lwd = c(2, NA, 2),
fill = c(NA, rgb(1, 0, 0, 0.3), NA),
border = c(NA, NA, NA), bty = "n", cex = 0.8)
# Gráfico 2: Función de distribución acumulada
x <- seq(0, 60, length.out = 500)
y_acum <- pchisq(x, df = gl)
plot(x, y_acum, type = "l", lwd = 2, col = "darkgreen",
main = "Función de Distribución Acumulada",
xlab = "Valor chi-cuadrado",
ylab = "P(χ² ≤ x)",
cex.main = 1.1, cex.lab = 1)
# Marcar el punto crítico
points(chi2_calc, pchisq(chi2_calc, gl), col = "red", pch = 19, cex = 1.5)
abline(v = chi2_calc, col = "red", lty = 2)
abline(h = pchisq(chi2_calc, gl), col = "red", lty = 2)
# Texto explicativo
text(chi2_calc + 5, 0.5,
paste("P(χ² ≤", chi2_calc, ") =", round(1 - prob_error, 4)),
col = "darkred", cex = 0.9)
text(chi2_calc + 5, 0.45,
paste("P(χ² >", chi2_calc, ") =", round(prob_error, 4)),
col = "red", cex = 0.9)
# PASO 7: INTERVALO DE CONFIANZA PARA LA VARIANZA
cat("\n--- Intervalo de Confianza para la Varianza ---\n")
##
## --- Intervalo de Confianza para la Varianza ---
cat("Si se observara S² =", S2_limite, ", el IC del 95% sería:\n")
## Si se observara S² = 0.025 , el IC del 95% sería:
chi2_inf <- qchisq(0.025, gl) # Valor crítico inferior
chi2_sup <- qchisq(0.975, gl) # Valor crítico superior
IC_inf <- (n-1) * S2_limite / chi2_sup
IC_sup <- (n-1) * S2_limite / chi2_inf
cat(" IC 95%: [", round(IC_inf, 5), ", ", round(IC_sup, 5), "] mm²\n")
## IC 95%: [ 0.0134 , 0.06218 ] mm²
cat(" ¿Incluye a σ² =", sigma2, "?",
ifelse(sigma2 >= IC_inf & sigma2 <= IC_sup, "SÍ", "NO"), "\n")
## ¿Incluye a σ² = 0.01 ? NO
# ============================================================
# EJERCICIO 1: Control de Variabilidad en Envasado de Café
# ============================================================
# DATOS DEL PROBLEMA
# -----------------
# Máquina envasadora de café con varianza máxima σ² = 4 g²
# Muestra aleatoria de n = 20 paquetes
# Varianza muestral observada: S² = 7.2 g²
# ¿Existe evidencia de que la variabilidad ha aumentado?
# PASO 1: Definir los datos
sigma2 <- 4 # Varianza poblacional hipotética (bajo control)
n <- 20 # Tamaño de muestra
S2_obs <- 7.2 # Varianza muestral observada
gl <- n - 1 # Grados de libertad = 19
# PASO 2: Calcular el estadístico de prueba
chi2_calc <- (n - 1) * S2_obs / sigma2
# Resultado: (19 * 7.2) / 4 = 34.2
# PASO 3: Calcular el valor p (prueba de una cola)
p_valor <- pchisq(chi2_calc, df = gl, lower.tail = FALSE)
# PASO 4: Mostrar resultados detallados
cat("========================================\n")
## ========================================
cat("EJERCICIO 1: Control de Variabilidad en Envasado\n")
## EJERCICIO 1: Control de Variabilidad en Envasado
cat("========================================\n")
## ========================================
cat("PLANTEAMIENTO DEL PROBLEMA:\n")
## PLANTEAMIENTO DEL PROBLEMA:
cat(" H₀: σ² = 4 g² (la variabilidad está bajo control)\n")
## H₀: σ² = 4 g² (la variabilidad está bajo control)
cat(" H₁: σ² > 4 g² (la variabilidad ha aumentado)\n\n")
## H₁: σ² > 4 g² (la variabilidad ha aumentado)
cat("DATOS:\n")
## DATOS:
cat(" Varianza poblacional hipotética (σ²):", sigma2, "g²\n")
## Varianza poblacional hipotética (σ²): 4 g²
cat(" Tamaño de muestra (n):", n, "\n")
## Tamaño de muestra (n): 20
cat(" Varianza muestral observada (S²):", S2_obs, "g²\n")
## Varianza muestral observada (S²): 7.2 g²
cat(" Grados de libertad:", gl, "\n\n")
## Grados de libertad: 19
cat("CÁLCULOS:\n")
## CÁLCULOS:
cat(" Estadístico de prueba:\n")
## Estadístico de prueba:
cat(" χ² = (n-1) × S² / σ²\n")
## χ² = (n-1) × S² / σ²
cat(" χ² =", gl, "×", S2_obs, "/", sigma2, "\n")
## χ² = 19 × 7.2 / 4
cat(" χ² =", chi2_calc, "\n\n")
## χ² = 34.2
cat(" Valor p:\n")
## Valor p:
cat(" p = P(χ²(", gl, ") > ", chi2_calc, ")\n", sep="")
## p = P(χ²(19) > 34.2)
cat(" p =", round(p_valor, 6), "\n")
## p = 0.017404
cat(" p =", round(p_valor * 100, 2), "%\n\n")
## p = 1.74 %
cat("CONCLUSIÓN:\n")
## CONCLUSIÓN:
alpha <- 0.05
cat(" Nivel de significación α =", alpha, "\n")
## Nivel de significación α = 0.05
if(p_valor < alpha) {
cat(" Como p =", round(p_valor, 4), "<", alpha, "\n")
cat(" RECHAZAMOS H₀\n")
cat(" → Existe evidencia significativa de que la variabilidad ha aumentado.\n")
} else {
cat(" Como p =", round(p_valor, 4), "≥", alpha, "\n")
cat(" NO RECHAZAMOS H₀\n")
cat(" → No hay evidencia suficiente de aumento en la variabilidad.\n")
}
## Como p = 0.0174 < 0.05
## RECHAZAMOS H₀
## → Existe evidencia significativa de que la variabilidad ha aumentado.
# PASO 5: GRÁFICOS
par(mfrow = c(2, 2)) # 4 gráficos en una página
# Gráfico 1: Distribución chi-cuadrado con región crítica
x <- seq(0, 60, length.out = 500)
y <- dchisq(x, df = gl)
plot(x, y, type = "l", lwd = 2, col = "blue",
main = paste("Distribución χ² con", gl, "gl"),
xlab = "Valor chi-cuadrado",
ylab = "Densidad",
sub = paste("χ² observado =", round(chi2_calc, 2)))
# Región de rechazo (valor p)
x_rechazo <- seq(chi2_calc, 60, length.out = 100)
y_rechazo <- dchisq(x_rechazo, df = gl)
polygon(c(chi2_calc, x_rechazo, 60),
c(0, y_rechazo, 0),
col = rgb(1, 0, 0, 0.3), border = NA)
abline(v = chi2_calc, col = "red", lwd = 2, lty = 2)
text(45, 0.03, paste("p =", round(p_valor, 4)), col = "red", cex = 1.2)
# Gráfico 2: Comparación con valor crítico (α = 0.05)
valor_critico <- qchisq(0.95, gl)
plot(x, y, type = "l", lwd = 2, col = "blue",
main = paste("Comparación con α = 0.05"),
xlab = "Valor chi-cuadrado",
ylab = "Densidad")
# Región crítica (α = 0.05)
x_crit <- seq(valor_critico, 60, length.out = 100)
y_crit <- dchisq(x_crit, df = gl)
polygon(c(valor_critico, x_crit, 60),
c(0, y_crit, 0),
col = rgb(1, 0.5, 0, 0.2), border = NA)
# Valor observado
abline(v = chi2_calc, col = "red", lwd = 2, lty = 2)
abline(v = valor_critico, col = "orange", lwd = 2, lty = 3)
legend("topright",
legend = c("Región crítica (α=0.05)",
paste("χ² obs =", round(chi2_calc, 2)),
paste("χ² crítico =", round(valor_critico, 2))),
col = c(rgb(1, 0.5, 0, 0.2), "red", "orange"),
lty = c(NA, 2, 3), lwd = c(NA, 2, 2),
fill = c(rgb(1, 0.5, 0, 0.2), NA, NA),
border = NA, bty = "n", cex = 0.8)
# Gráfico 3: Función de potencia
gl_alt <- 5:40
potencia <- sapply(gl_alt, function(g) {
pchisq(qchisq(0.95, gl), df = g, lower.tail = FALSE)
})
plot(gl_alt, potencia, type = "l", lwd = 2, col = "purple",
main = "Función de Potencia",
xlab = "Verdaderos grados de libertad",
ylab = "Potencia (1 - β)",
ylim = c(0, 1))
abline(h = 0.05, lty = 2, col = "gray")
abline(v = gl, lty = 2, col = "red")
points(gl, 0.05, col = "red", pch = 19, cex = 1.5)
# Gráfico 4: Diagrama de caja de la distribución
set.seed(123)
muestras_chi2 <- rchisq(1000, gl)
boxplot(muestras_chi2, horizontal = TRUE,
main = "Distribución de valores χ²",
xlab = "Valores chi-cuadrado",
col = "lightblue")
abline(v = chi2_calc, col = "red", lwd = 2, lty = 2)
abline(v = median(muestras_chi2), col = "blue", lwd = 2)
legend("bottomright",
legend = c("Mediana", "χ² observado"),
col = c("blue", "red"), lty = c(1, 2), lwd = 2, cex = 0.8)
# PASO 6: ANÁLISIS ADICIONAL
cat("\n--- ANÁLISIS ADICIONAL ---\n")
##
## --- ANÁLISIS ADICIONAL ---
cat("Intervalo de confianza del 95% para la varianza:\n")
## Intervalo de confianza del 95% para la varianza:
chi2_inf <- qchisq(0.025, gl)
chi2_sup <- qchisq(0.975, gl)
IC_inf <- gl * S2_obs / chi2_sup
IC_sup <- gl * S2_obs / chi2_inf
cat(" IC 95%: [", round(IC_inf, 3), ", ", round(IC_sup, 3), "] g²\n")
## IC 95%: [ 4.164 , 15.36 ] g²
cat(" El intervalo", ifelse(sigma2 >= IC_inf & sigma2 <= IC_sup,
"SÍ", "NO"), "contiene a σ² =", sigma2, "\n")
## El intervalo NO contiene a σ² = 4
cat("\nTamaño del efecto:\n")
##
## Tamaño del efecto:
efecto <- S2_obs / sigma2
cat(" Razón de varianzas (S²/σ²):", round(efecto, 3), "\n")
## Razón de varianzas (S²/σ²): 1.8
cat(" La varianza muestral es", round(efecto * 100, 1),
"% de la varianza poblacional hipotética\n")
## La varianza muestral es 180 % de la varianza poblacional hipotética
# ============================================================
# EJERCICIO 2: Homogeneidad en Proceso Químico
# ============================================================
# DATOS DEL PROBLEMA
# -----------------
# Proceso químico requiere varianza σ² = 0.5 (mg/L)²
# Muestra de n = 25 mediciones
# Varianza muestral observada: S² = 0.82 (mg/L)²
# Calcular probabilidad de obtener una varianza tan alta o más
# PASO 1: Definir los datos
sigma2 <- 0.5 # Varianza poblacional bajo control
n <- 25 # Tamaño de muestra
S2_obs <- 0.82 # Varianza muestral observada
gl <- n - 1 # Grados de libertad = 24
# PASO 2: Calcular estadístico
chi2_calc <- (n - 1) * S2_obs / sigma2
# PASO 3: Calcular probabilidad
probabilidad <- pchisq(chi2_calc, df = gl, lower.tail = FALSE)
# PASO 4: Resultados
cat("========================================\n")
## ========================================
cat("EJERCICIO 2: Homogeneidad en Proceso Químico\n")
## EJERCICIO 2: Homogeneidad en Proceso Químico
cat("========================================\n")
## ========================================
cat("ENUNCIADO:\n")
## ENUNCIADO:
cat(" Un proceso químico requiere que la concentración de un compuesto\n")
## Un proceso químico requiere que la concentración de un compuesto
cat(" tenga varianza σ² = 0.5 (mg/L)². Se toman n = 25 muestras y se\n")
## tenga varianza σ² = 0.5 (mg/L)². Se toman n = 25 muestras y se
cat(" obtiene una varianza muestral S² = 0.82 (mg/L)².\n")
## obtiene una varianza muestral S² = 0.82 (mg/L)².
cat(" Calcular la probabilidad de obtener una varianza muestral tan\n")
## Calcular la probabilidad de obtener una varianza muestral tan
cat(" alta o más si el proceso está bajo control.\n\n")
## alta o más si el proceso está bajo control.
cat("DATOS:\n")
## DATOS:
cat(" σ² =", sigma2, "(mg/L)²\n")
## σ² = 0.5 (mg/L)²
cat(" n =", n, "\n")
## n = 25
cat(" S² =", S2_obs, "(mg/L)²\n")
## S² = 0.82 (mg/L)²
cat(" gl =", gl, "\n\n")
## gl = 24
cat("SOLUCIÓN:\n")
## SOLUCIÓN:
cat(" Paso 1: Calcular el estadístico chi-cuadrado\n")
## Paso 1: Calcular el estadístico chi-cuadrado
cat(" χ² = (n-1) × S² / σ²\n")
## χ² = (n-1) × S² / σ²
cat(" χ² =", gl, "×", S2_obs, "/", sigma2, "\n")
## χ² = 24 × 0.82 / 0.5
cat(" χ² =", chi2_calc, "\n\n")
## χ² = 39.36
cat(" Paso 2: Calcular la probabilidad\n")
## Paso 2: Calcular la probabilidad
cat(" P(S² > 0.82) = P(χ²(", gl, ") > ", chi2_calc, ")\n", sep="")
## P(S² > 0.82) = P(χ²(24) > 39.36)
cat(" =", round(probabilidad, 6), "\n")
## = 0.025025
cat(" =", round(probabilidad * 100, 2), "%\n\n")
## = 2.5 %
cat("RESPUESTA:\n")
## RESPUESTA:
cat(" La probabilidad de observar una varianza muestral tan alta o más\n")
## La probabilidad de observar una varianza muestral tan alta o más
cat(" es del", round(probabilidad * 100, 2), "%.\n")
## es del 2.5 %.
cat(" Esto significa que si el proceso está bajo control, solo en el\n")
## Esto significa que si el proceso está bajo control, solo en el
cat(" ", round(probabilidad * 100, 2), "% de las muestras se observaría\n", sep="")
## 2.5% de las muestras se observaría
cat(" una variabilidad tan alta por puro azar.\n\n")
## una variabilidad tan alta por puro azar.
# PASO 5: GRÁFICOS DETALLADOS
par(mfrow = c(2, 2))
# Gráfico 1: Densidad con área sombreada
x <- seq(0, 60, length.out = 500)
y <- dchisq(x, df = gl)
plot(x, y, type = "l", lwd = 2.5, col = "darkblue",
main = paste("Distribución χ² con", gl, "gl"),
xlab = "Valor chi-cuadrado",
ylab = "Densidad de probabilidad",
cex.main = 1.2)
# Área de probabilidad
x_area <- seq(chi2_calc, 60, length.out = 100)
y_area <- dchisq(x_area, df = gl)
polygon(c(chi2_calc, x_area, 60),
c(0, y_area, 0),
col = rgb(0.8, 0.2, 0.2, 0.4), border = NA)
# Líneas y texto
abline(v = chi2_calc, col = "darkred", lwd = 2.5, lty = 2)
text(45, 0.025, paste("P =", round(probabilidad, 4)),
col = "darkred", cex = 1.3, font = 2)
text(45, 0.02, paste("(", round(probabilidad*100, 2), "%)", sep=""),
col = "darkred", cex = 1.2)
# Gráfico 2: Comparación con diferentes niveles de significación
alfa_niveles <- c(0.10, 0.05, 0.01)
colores_alfa <- c("orange", "red", "darkred")
plot(x, y, type = "l", lwd = 2, col = "blue",
main = "Comparación con niveles de significación",
xlab = "Valor chi-cuadrado", ylab = "Densidad")
for(i in 1:length(alfa_niveles)) {
valor_crit <- qchisq(1 - alfa_niveles[i], gl)
abline(v = valor_crit, col = colores_alfa[i], lty = i+1, lwd = 1.5)
}
abline(v = chi2_calc, col = "black", lwd = 2, lty = 1)
legend("topright",
legend = c(paste("χ² obs =", round(chi2_calc, 2)),
paste("α = 0.10 (", round(qchisq(0.90, gl), 2), ")", sep=""),
paste("α = 0.05 (", round(qchisq(0.95, gl), 2), ")", sep=""),
paste("α = 0.01 (", round(qchisq(0.99, gl), 2), ")", sep="")),
col = c("black", colores_alfa),
lty = c(1, 2, 3, 4), lwd = c(2, 1.5, 1.5, 1.5),
bty = "n", cex = 0.8)
# Gráfico 3: Histograma de simulación
set.seed(456)
sim_chi2 <- rchisq(10000, gl)
hist(sim_chi2, breaks = 30, probability = TRUE,
main = "Simulación de 10000 valores χ²",
xlab = "Valor chi-cuadrado",
col = "lightblue", border = "white")
lines(x, y, col = "blue", lwd = 2.5)
abline(v = chi2_calc, col = "red", lwd = 2.5, lty = 2)
# Añadir la probabilidad empírica
prob_empirica <- mean(sim_chi2 > chi2_calc)
text(45, 0.03, paste("Probabilidad empírica:",
round(prob_empirica, 4)), cex = 0.9)
text(45, 0.025, paste("Probabilidad teórica:",
round(probabilidad, 4)), cex = 0.9)
# Gráfico 4: QQ-plot de la simulación
qqplot(qchisq(ppoints(500), gl), sim_chi2[1:500],
main = "QQ-plot de valores simulados",
xlab = "Cuantiles teóricos",
ylab = "Cuantiles simulados",
col = rgb(0, 0, 1, 0.5), pch = 19, cex = 0.5)
abline(0, 1, col = "red", lwd = 2)
# PASO 6: CÁLCULOS ADICIONALES
cat("--- ANÁLISIS COMPLEMENTARIO ---\n")
## --- ANÁLISIS COMPLEMENTARIO ---
cat("Valores críticos para diferentes niveles:\n")
## Valores críticos para diferentes niveles:
cat(" Para α = 0.10: χ² =", round(qchisq(0.90, gl), 3), "\n")
## Para α = 0.10: χ² = 33.196
cat(" Para α = 0.05: χ² =", round(qchisq(0.95, gl), 3), "\n")
## Para α = 0.05: χ² = 36.415
cat(" Para α = 0.01: χ² =", round(qchisq(0.99, gl), 3), "\n\n")
## Para α = 0.01: χ² = 42.98
cat("Comparación con valores tipificados:\n")
## Comparación con valores tipificados:
cat(" El valor observado", round(chi2_calc, 2), "supera al:\n")
## El valor observado 39.36 supera al:
cat(" - Percentil 90:", ifelse(chi2_calc > qchisq(0.90, gl), "SÍ", "NO"), "\n")
## - Percentil 90: SÍ
cat(" - Percentil 95:", ifelse(chi2_calc > qchisq(0.95, gl), "SÍ", "NO"), "\n")
## - Percentil 95: SÍ
cat(" - Percentil 99:", ifelse(chi2_calc > qchisq(0.99, gl), "SÍ", "NO"), "\n")
## - Percentil 99: NO
# ============================================================
# EJERCICIO 3: Precisión en Equipo Médico (Glucómetro)
# ============================================================
# DATOS DEL PROBLEMA
# -----------------
# Glucómetro debe tener varianza máxima σ² = 0.04 (mg/dL)²
# Prueba con n = 12 muestras de control
# Varianza muestral obtenida: S² = 0.07 (mg/dL)²
# ¿Probabilidad de que esta variabilidad se deba al azar?
# PASO 1: Definir datos
sigma2 <- 0.04 # Varianza máxima permitida
n <- 12 # Tamaño de muestra
S2_obs <- 0.07 # Varianza observada
gl <- n - 1 # Grados de libertad = 11
# PASO 2: Calcular estadístico
chi2_calc <- (n - 1) * S2_obs / sigma2
# PASO 3: Calcular probabilidad
probabilidad <- pchisq(chi2_calc, df = gl, lower.tail = FALSE)
# PASO 4: Mostrar resultados
cat("========================================\n")
## ========================================
cat("EJERCICIO 3: Precisión en Equipo Médico (Glucómetro)\n")
## EJERCICIO 3: Precisión en Equipo Médico (Glucómetro)
cat("========================================\n")
## ========================================
cat("CONTEXTO CLÍNICO:\n")
## CONTEXTO CLÍNICO:
cat(" Un glucómetro es un dispositivo para medir glucosa en sangre.\n")
## Un glucómetro es un dispositivo para medir glucosa en sangre.
cat(" La precisión es crucial para el diagnóstico y tratamiento de diabetes.\n")
## La precisión es crucial para el diagnóstico y tratamiento de diabetes.
cat(" La varianza máxima aceptable es σ² = 0.04 (mg/dL)².\n\n")
## La varianza máxima aceptable es σ² = 0.04 (mg/dL)².
cat("DATOS DEL ESTUDIO:\n")
## DATOS DEL ESTUDIO:
cat(" Número de muestras de control (n):", n, "\n")
## Número de muestras de control (n): 12
cat(" Varianza muestral observada (S²):", S2_obs, "(mg/dL)²\n")
## Varianza muestral observada (S²): 0.07 (mg/dL)²
cat(" Varianza poblacional hipotética (σ²):", sigma2, "(mg/dL)²\n")
## Varianza poblacional hipotética (σ²): 0.04 (mg/dL)²
cat(" Grados de libertad (gl):", gl, "\n\n")
## Grados de libertad (gl): 11
cat("CÁLCULO DE LA PROBABILIDAD:\n")
## CÁLCULO DE LA PROBABILIDAD:
cat(" Bajo la hipótesis de que el glucómetro funciona correctamente,\n")
## Bajo la hipótesis de que el glucómetro funciona correctamente,
cat(" el estadístico sigue una distribución chi-cuadrado con", gl, "gl.\n\n")
## el estadístico sigue una distribución chi-cuadrado con 11 gl.
cat(" χ²_calc = (n-1) × S² / σ²\n")
## χ²_calc = (n-1) × S² / σ²
cat(" =", gl, "×", S2_obs, "/", sigma2, "\n")
## = 11 × 0.07 / 0.04
cat(" =", chi2_calc, "\n\n")
## = 19.25
cat(" P(S² > 0.07) = P(χ²(", gl, ") > ", chi2_calc, ")\n", sep="")
## P(S² > 0.07) = P(χ²(11) > 19.25)
cat(" =", round(probabilidad, 6), "\n")
## = 0.056751
cat(" =", round(probabilidad * 100, 2), "%\n\n")
## = 5.68 %
cat("INTERPRETACIÓN CLÍNICA:\n")
## INTERPRETACIÓN CLÍNICA:
cat(" Si el glucómetro está funcionando correctamente (σ² = 0.04),\n")
## Si el glucómetro está funcionando correctamente (σ² = 0.04),
cat(" la probabilidad de observar una variabilidad tan alta como\n")
## la probabilidad de observar una variabilidad tan alta como
cat(" S² = 0.07 por puro azar es del", round(probabilidad * 100, 2), "%.\n\n")
## S² = 0.07 por puro azar es del 5.68 %.
cat("CONCLUSIÓN PARA EL PERSONAL MÉDICO:\n")
## CONCLUSIÓN PARA EL PERSONAL MÉDICO:
if(probabilidad < 0.05) {
cat(" 🚨 La probabilidad es menor al 5%.\n")
cat(" → Existe evidencia significativa de que el glucómetro\n")
cat(" tiene una variabilidad mayor a la aceptable.\n")
cat(" → Se recomienda calibrar o reemplazar el equipo.\n")
} else if(probabilidad < 0.10) {
cat(" ⚠️ La probabilidad es entre 5% y 10%.\n")
cat(" → Hay evidencia marginal de problemas de precisión.\n")
cat(" → Se recomienda realizar más pruebas de control.\n")
} else {
cat(" ✅ La probabilidad es mayor al 10%.\n")
cat(" → No hay evidencia suficiente para concluir que\n")
cat(" el glucómetro tiene problemas de precisión.\n")
cat(" → La variabilidad observada puede deberse al azar.\n")
}
## ⚠️ La probabilidad es entre 5% y 10%.
## → Hay evidencia marginal de problemas de precisión.
## → Se recomienda realizar más pruebas de control.
# PASO 5: GRÁFICOS ESPECIALIZADOS PARA ÁMBITO MÉDICO
par(mfrow = c(2, 2))
# Gráfico 1: Distribución con interpretación médica
x <- seq(0, 35, length.out = 500)
y <- dchisq(x, df = gl)
plot(x, y, type = "l", lwd = 3, col = "darkblue",
main = "Control de Calidad de Glucómetro",
xlab = "Valor chi-cuadrado",
ylab = "Densidad",
sub = paste("gl =", gl, "| χ² observado =", round(chi2_calc, 2)))
# Área de probabilidad
x_area <- seq(chi2_calc, 35, length.out = 100)
y_area <- dchisq(x_area, df = gl)
polygon(c(chi2_calc, x_area, 35),
c(0, y_area, 0),
col = rgb(0.8, 0, 0, 0.3), border = NA)
abline(v = chi2_calc, col = "red", lwd = 2.5, lty = 2)
# Añadir interpretación médica
if(probabilidad < 0.05) {
text(25, 0.06, "⚠️ ZONA DE ALERTA", col = "red", cex = 1.3, font = 2)
text(25, 0.05, paste("p =", round(probabilidad, 4)),
col = "red", cex = 1.2)
} else {
text(25, 0.06, "✅ ZONA ACEPTABLE", col = "darkgreen", cex = 1.3, font = 2)
text(25, 0.05, paste("p =", round(probabilidad, 4)),
col = "darkgreen", cex = 1.2)
}
# Gráfico 2: Regiones de decisión clínica
valores_criticos <- c(
"Precisión excelente" = qchisq(0.5, gl),
"Límite de alerta (90%)" = qchisq(0.90, gl),
"Límite de acción (95%)" = qchisq(0.95, gl),
"Límite crítico (99%)" = qchisq(0.99, gl)
)
plot(x, y, type = "l", lwd = 2, col = "blue",
main = "Regiones de Decisión Clínica",
xlab = "Valor chi-cuadrado", ylab = "Densidad")
colores_reg <- c("green", "yellow", "orange", "red")
for(i in 1:length(valores_criticos)) {
abline(v = valores_criticos[i], col = colores_reg[i],
lwd = 2, lty = i)
}
abline(v = chi2_calc, col = "black", lwd = 3, lty = 1)
legend("topright",
legend = c("χ² observado", names(valores_criticos)),
col = c("black", colores_reg),
lty = c(1, 1:4), lwd = c(3, rep(2, 4)),
bty = "n", cex = 0.7)
# Gráfico 3: Simulación de controles de calidad mensuales
set.seed(789)
meses <- 1:24
simulaciones <- matrix(rchisq(24 * 100, gl), ncol = 24)
Una muestra de \[n=20\] mediciones de una prueba de laboratorio tiene varianza muestral \[s^2 = 4.5\]. Construir un intervalo de confianza del 95% para la varianza poblacional \[\sigma^2\].
\[ \left(\frac{(n-1)s^2}{\chi^2_{n-1, \alpha/2}}, \frac{(n-1)s^2}{\chi^2_{n-1, 1-\alpha/2}}\right) \] \[ \chi^2_{19, 0.025} = 8.907, \quad \chi^2_{19, 0.975} = 32.852 \] \[ \left(\frac{19 \times 4.5}{32.852}, \frac{19 \times 4.5}{8.907}\right) = (2.60, 9.60) \]
Con un 95% de confianza, la varianza poblacional está entre 2.60 y 9.60.
Un fabricante de baterías afirma que la variabilidad en la duración de sus baterías tiene una desviación estándar de \[\sigma = 5\] horas. Se toma una muestra de \[n = 16\] baterías y se obtiene una desviación estándar muestral de \[s = 6.5\] horas. ¿Hay evidencia suficiente para concluir que la variabilidad es mayor que la afirmada? Use \[\alpha = 0.05\].
Solución:
1. Hipótesis: \[H_0: \sigma^2 = 25\] vs \[H_1: \sigma^2 > 25\]
2. Estadístico de prueba: \[\chi^2 = \frac{(n-1)s^2}{\sigma_0^2} = \frac{15 \times 42.25}{25} = 25.35\]
3. Valor crítico: \[\chi^2_{15, 0.05} = 24.996\]
4. Decisión: Como \[25.35 > 24.996\], se rechaza \[H_0\].
5. Conclusión: Hay evidencia suficiente para concluir que la variabilidad es mayor que la afirmada.
## [1] "El valor de b tal que P(∑Z_i² ≤ b) = 0.95 es: 12.5916"
## [1] "El valor de b1 es: 0.3695"
## [1] "El valor de b2 es: 1.8799"
## [1] "Valores chi-cuadrado: inferior = 3.3251 , superior = 16.919"
##
## --- Verificación de propiedades ---
## Media teórica de S²: 4
## Media simulada de S²: 4.004122
## Varianza teórica de S²: 3.555556
## Varianza simulada de S²: 3.569374
## --- Intervalo de confianza para la varianza ---
## Varianza muestral: 6.701
## Intervalo del 95 %: [ 3.8755 , 14.2951 ]
## Varianza real: 5
## ¿Contiene al valor real? TRUE
## --- Prueba de hipótesis para la varianza ---
## H0: σ² = 4 vs H1: σ² > 4
## Varianza muestral: 3.4237
## Estadístico de prueba χ² = 20.5424
## Grados de libertad: 24
## Valor crítico (α=0.05): 36.415
## p-valor: 0.665551
## Decisión: No rechazar H0
En líneas de producción, la varianza muestral se utiliza para monitorear la consistencia de procesos. Por ejemplo, en la fabricación de medicamentos, la concentración del principio activo debe tener baja variabilidad para garantizar dosis consistentes.
La varianza de los rendimientos de activos financieros (volatilidad) es crucial para la gestión de riesgos. Los intervalos de confianza para la varianza ayudan a determinar si la volatilidad de un activo ha cambiado significativamente.
En experimentos científicos, la homogeneidad de varianzas entre grupos es un supuesto clave para ANOVA. La prueba de Bartlett, basada en la distribución chi-cuadrado, verifica este supuesto.
En pruebas de vida útil de productos, la variabilidad en el tiempo hasta fallo es fundamental. Los intervalos de confianza para la varianza ayudan a establecer garantías realistas.
En laboratorios de calibración, la repetibilidad (varianza de mediciones repetidas) determina la incertidumbre de los instrumentos de medida.
En estudios clínicos, la variabilidad en la respuesta a un tratamiento es tan importante como la respuesta promedio. La prueba de hipótesis para la varianza permite comparar la consistencia de diferentes tratamientos.
| Propiedad | Fórmula | Aplicación |
|---|---|---|
| Relación con chi-cuadrado | \[\frac{(n-1)S^2}{\sigma^2} \sim \chi^2_{(n-1)}\] | Base para inferencia sobre varianza |
| Esperanza de S² | \[E[S^2] = \sigma^2\] | S² es un estimador insesgado |
| Varianza de S² | \[Var[S^2] = \frac{2\sigma^4}{n-1}\] | Precisión del estimador |
| Intervalo de confianza | \[\left(\frac{(n-1)S^2}{\chi^2_{sup}}, \frac{(n-1)S^2}{\chi^2_{inf}}\right)\] | Estimación por intervalo |
| Prueba de hipótesis | \[\chi^2 = \frac{(n-1)S^2}{\sigma_0^2}\] | Contraste de hipótesis |
La distribución chi-cuadrado es fundamental para la inferencia sobre varianzas en poblaciones normales, permitiendo construir intervalos de confianza y realizar pruebas de hipótesis sobre la variabilidad de procesos y mediciones. La correcta comprensión de esta distribución es esencial en campos como la industria, la investigación científica y el control de calidad.
Comportamiento estadístico de proporciones muestrales en inferencia paramétrica
Proporción Poblacional (parámetro):
p = éxitos /
N (población)
q = 1 - p (fracasos)
Proporción Muestral (estadístico):
p̂ = X / n
Donde:
• X = número de éxitos en muestra
• n = tamaño
muestral
Media (valor esperado):
μp̂ = E(p̂) =
p
Varianza:
σ²p̂ = Var(p̂) = p(1-p)/n
= pq/n
Error estándar:
σp̂ = √[p(1-p)/n]
= √(pq/n)
Regla general (más usada):
np ≥ 10
y n(1-p) ≥ 10
Regla más conservadora:
np ≥ 5
y n(1-p) ≥ 5
Interpretación:
• np = número esperado de
éxitos
• n(1-p) = número esperado de fracasos
Características clave:
1.
Normalidad: Aproximación normal buena
2.
Media: μp̂ = p (insesgado)
3.
Error estándar: σp̂ = √(pq/n)
4.
Simetría: Mejor si p ≈ 0.5
Intervalo de confianza aproximado:
p̂ ±
zα/2√[p̂(1-p̂)/n]
Contexto:
Encuesta preelectoral. Se estima p =
0.45 (45% votaría por candidato A).
Problema:
n = 400 votantes:
• ¿Distribución
de p̂?
• P(p̂ > 0.48) = ?
Verificación:
np = 400×0.45 = 180 ≥ 10 ✓
n(1-p) = 400×0.55 = 220 ≥ 10 ✓
Contexto:
Línea producción, tasa defectos
histórica p = 0.02.
Problema:
n = 600 productos:
• Error
estándar de p̂?
• P(p̂ < 0.015)?
Verificación:
np = 600×0.02 = 12 ≥ 10 ✓
n(1-p) = 600×0.98 = 588 ≥ 10 ✓
Contexto:
Universidad, proporción que aprueba
cálculo p = 0.70.
Problema:
Muestras n = 250 estudiantes:
• IC
95% para p̂?
• Tamaño efecto?
Verificación:
np = 250×0.70 = 175 ≥ 10 ✓
n(1-p) = 250×0.30 = 75 ≥ 10 ✓
Cuando NO se cumplen np ≥ 10 y n(1-p) ≥ 10:
•
Usar distribución binomial exacta
• X ∼ Binomial(n, p)
• p̂ =
X/n
Probabilidad exacta:
P(X = k) = C(n,k) p^k
(1-p)^{n-k}
Cuando usar:
1. n pequeño
2. p muy cercano a
0 o 1
3. np < 10 o n(1-p) < 10
Intervalo de confianza exacto (Clopper-Pearson):
Usa distribución binomial
Más conservador
Adecuado para n
pequeños
Intervalo de Wilson:
\(\frac{\hat{p} + \frac{z^2}{2n} \pm
z\sqrt{\frac{\hat{p}(1-\hat{p})}{n} + \frac{z^2}{4n^2}}}{1 +
\frac{z^2}{n}}\)
Mejor para p cercano a 0 o 1
Contexto:
Medicamento, efecto secundario grave p
= 0.005.
Problema:
Estudio con n = 100 pacientes:
•
np = 100×0.005 = 0.5 (<10)
• n(1-p) = 99.5 (>10)
• Usar
binomial exacta
Contexto:
Proceso alta calidad, p(defecto) =
0.001.
Problema:
Control calidad n = 50 unidades:
•
np = 0.05 (<10)
• Usar Poisson como aproximación
Solución Poisson:
λ = np = 0.05
P(X ≥ 1) = 1
- P(X=0)
= 1 - e^{-0.05}
= 1 - 0.9512 = 0.0488
Contexto:
Encuesta piloto nueva app.
n = 20
usuarios, 3 la recomiendan.
Problema:
p̂ = 3/20 = 0.15
• IC 95% exacto
(Clopper-Pearson)
• Comparar con normal aproximado
Solución exacta:
Usando binomial:
Límite
inferior: 0.032
Límite superior: 0.379
IC exacto: [0.032,
0.379]
| Método | Fórmula | Ventajas | Cuándo usar |
|---|---|---|---|
| Wald (Normal) | p̂ ± z√[p̂(1-p̂)/n] | Sencillo | n grande, p moderado |
| Wilson | (p̂+z²/(2n)±z√[·])/(1+z²/n) | Mejor para p extremos | Cualquier n, p |
| Clopper-Pearson | Exacto binomial | Conservador | n pequeño |
| Agresti-Coull | p̃ ± z√[p̃(1-p̃)/ñ] | Buen balance | Propósito general |
Contexto:
Referéndum, se espera p = 0.52 a
favor.
Parte A (encuesta grande):
n = 1000
encuestados:
np = 520 ≥ 10 ✓
n(1-p) = 480 ≥ 10 ✓
• Usar
aproximación normal
σp̂ = √[0.52×0.48/1000] = 0.0158
IC 95%: 0.52 ± 1.96×0.0158 = [0.489, 0.551]
Contexto:
Fábrica, defectos históricos p =
0.01.
Caso 1 (lote grande):
n = 500 unidades:
np =
5 (<10!)
n(1-p) = 495 ≥ 10
• np < 10 → usar binomial
exacta
• O Poisson: λ = 5
Contexto:
Nuevo tratamiento, éxito esperado p =
0.85.
Fase I (n pequeño):
n = 20 pacientes, 18
éxitos:
p̂ = 0.90
np̂ = 18 ≥ 10 ✓
n(1-p̂) = 2 (<10!)
•
Usar método exacto
• Clopper-Pearson IC 95%: [0.683,
0.988]
| Aspecto | Muestras Grandes | Muestras Pequeñas | Recomendación |
|---|---|---|---|
| Condición | np ≥ 10 y n(1-p) ≥ 10 | np < 10 o n(1-p) < 10 | Verificar siempre |
| Distribución | Normal aproximada | Binomial exacta | Usar la apropiada |
| Error estándar | √[p̂(1-p̂)/n] | No aplica directamente | Cuidado con p extremos |
| Intervalo confianza | Wald, Agresti-Coull | Clopper-Pearson, Wilson | Wilson para general |
| Precisión | Buena, mejora con √n | Limitada, intervalos amplios | Mayor n para más precisión |
| Aplicaciones | Encuestas, control calidad | Estudios piloto, eventos raros | Contexto determina método |
1. Propiedades de p̂:
• Media: E(p̂) = p
(insesgado)
• Varianza: Var(p̂) = p(1-p)/n
• Error estándar:
σp̂ = √[p(1-p)/n]
2. Condiciones aproximación normal:
• np ≥ 10 y
n(1-p) ≥ 10 (estándar)
• Más conservador: np ≥ 5 y n(1-p) ≥ 5
•
p̂ ∼ N(p, p(1-p)/n) aproximadamente
3. Métodos intervalos confianza:
• Wald: simple
pero pobre para p extremos
• Wilson: recomendado para uso
general
• Clopper-Pearson: exacto pero conservador
•
Agresti-Coull: buen balance
Para investigación aplicada:
1.
Verificar condiciones: Siempre calcular np y n(1-p)
2. Elegir método apropiado:
• np ≥ 10: usar
aproximación normal
• np < 10: usar métodos exactos
3.
Reportar claramente:
• Tamaño muestral n
•
Proporción observada p̂
• Método usado para inferencia
•
Condiciones verificadas
Para diseño de estudios:
• Calcular tamaño
muestral necesario
• Considerar p esperada y precisión deseada
•
Planificar para análisis apropiado
• Considerar métodos robustos
(Wilson)
Paso 1
Calcular
np y n(1-p)
Paso 2
np ≥ 10 y
n(1-p) ≥ 10?
Paso 3
Elegir método
apropiado
SI
Usar métodos normales
• Wald
• Agresti-Coull
• Wilson
(recomendado)
NO
Usar métodos exactos
• Clopper-Pearson
• Wilson
• Binomial
exacta
En ciencias sociales:
• Encuestas de opinión
pública
• Estudios de mercado
• Investigación educativa
•
Análisis de preferencias
En medicina y salud:
• Tasas de éxito
tratamiento
• Prevalencia enfermedades
• Efectos secundarios
• Estudios epidemiológicos
En ingeniería y calidad:
• Tasa de defectos
•
Control de procesos
• Fiabilidad sistemas
• Mejora continua
# ======================================================
# 11.3.1. DISTRIBUCIÓN MUESTRAL DE LA PROPORCIÓN EN R
# ======================================================
# ------------------------------------------------------
# 1. EJEMPLO DE MUESTRAS GRANDES - INTENCIÓN DE VOTO
# ------------------------------------------------------
# Parámetros del problema
p_poblacional <- 0.45 # Proporción poblacional
n <- 400 # Tamaño muestral
# Verificar condiciones para aproximación normal
cat("=== VERIFICACIÓN DE CONDICIONES ===\n")
np <- n * p_poblacional
nq <- n * (1 - p_poblacional)
cat("np =", np, "\n")
cat("n(1-p) =", nq, "\n")
if(np >= 10 & nq >= 10) {
cat("✓ Condiciones cumplidas: se puede usar aproximación normal\n\n")
} else {
cat("✗ Condiciones NO cumplidas: usar métodos exactos\n\n")
}
# Calcular error estándar
error_estandar <- sqrt(p_poblacional * (1 - p_poblacional) / n)
cat("Error estándar de p̂ =", round(error_estandar, 4), "\n\n")
# Calcular P(p̂ > 0.48)
p_limite <- 0.48
z <- (p_limite - p_poblacional) / error_estandar
probabilidad <- 1 - pnorm(z)
cat("=== CÁLCULO DE PROBABILIDAD ===\n")
cat("Z =", round(z, 3), "\n")
cat("P(p̂ >", p_limite, ") = P(Z >", round(z, 3), ") =", round(probabilidad, 4), "\n\n")
# Visualización de la distribución muestral
x <- seq(p_poblacional - 4*error_estandar,
p_poblacional + 4*error_estandar,
length.out = 1000)
y <- dnorm(x, mean = p_poblacional, sd = error_estandar)
# Crear gráfico
par(mar = c(5, 4, 4, 2) + 0.1)
plot(x, y, type = "l", lwd = 3, col = "#9B59B6",
main = "Distribución Muestral de la Proporción (n=400, p=0.45)",
xlab = "Proporción muestral (p̂)",
ylab = "Densidad",
cex.main = 1.2, cex.lab = 1.1)
# Añadir línea vertical en el valor límite
abline(v = p_limite, col = "#E74C3C", lty = 2, lwd = 2.5)
# Sombrear área P(p̂ > 0.48)
x_shade <- seq(p_limite, p_poblacional + 4*error_estandar, length.out = 500)
y_shade <- dnorm(x_shade, mean = p_poblacional, sd = error_estandar)
polygon(c(p_limite, x_shade, max(x_shade)),
c(0, y_shade, 0),
col = rgb(155, 89, 182, 100, maxColorValue = 255),
border = NA)
# Añadir leyenda
legend("topright",
legend = c("Distribución de p̂",
paste("P(p̂ >", p_limite, ") =", round(probabilidad, 3)),
paste("p̂ =", p_limite)),
col = c("#9B59B6", rgb(155, 89, 182, 100, maxColorValue = 255), "#E74C3C"),
lwd = c(3, NA, 2.5),
lty = c(1, NA, 2),
fill = c(NA, rgb(155, 89, 182, 100, maxColorValue = 255), NA),
border = NA,
bty = "n")
## === VERIFICACIÓN DE CONDICIONES ===
## np = 180
## n(1-p) = 220
## ✓ Condiciones cumplidas: se puede usar aproximación normal
## Error estándar de p̂ = 0.0249
## === CÁLCULO DE PROBABILIDAD ===
## Z = 1.206
## P(p̂ > 0.48 ) = P(Z > 1.206 ) = 0.1139
# ------------------------------------------------------
# 11.4. EJEMPLO DE MUESTRAS PEQUEÑAS - EFECTO SECUNDARIO
# ------------------------------------------------------
# Parámetros
p_poblacional <- 0.005 # Probabilidad de efecto secundario
n <- 100 # Tamaño muestral
# Verificar condiciones
np <- n * p_poblacional
nq <- n * (1 - p_poblacional)
cat("=== VERIFICACIÓN DE CONDICIONES ===\n")
cat("np =", np, "\n")
cat("n(1-p) =", nq, "\n")
if(np >= 10 & nq >= 10) {
cat("Condiciones cumplidas: aproximación normal aceptable\n\n")
} else {
cat("⚠️ np < 10: usar distribución binomial exacta\n\n")
}
# Cálculo exacto usando distribución binomial
# P(X ≥ 2) donde X es número de pacientes con efecto
# Método 1: usando pbinom (función de distribución acumulada)
prob_exacta <- 1 - pbinom(1, size = n, prob = p_poblacional)
cat("=== PROBABILIDAD EXACTA ===\n")
cat("P(X ≥ 2) =", round(prob_exacta, 4), "\n\n")
# Método 2: cálculo término a término
prob_0 <- dbinom(0, size = n, prob = p_poblacional)
prob_1 <- dbinom(1, size = n, prob = p_poblacional)
prob_2_mas <- 1 - (prob_0 + prob_1)
cat("Verificación término a término:\n")
cat("P(X=0) =", round(prob_0, 4), "\n")
cat("P(X=1) =", round(prob_1, 4), "\n")
cat("P(X≥2) =", round(prob_2_mas, 4), "\n\n")
# Visualización de la distribución binomial
x_binom <- 0:10 # Mostrar hasta 10 para mejor visualización
prob_binom <- dbinom(x_binom, size = n, prob = p_poblacional)
barplot(prob_binom,
names.arg = x_binom,
col = ifelse(x_binom >= 2, "#E74C3C", "#9B59B6"),
main = "Distribución Binomial (n=100, p=0.005)",
xlab = "Número de pacientes con efecto secundario",
ylab = "Probabilidad",
ylim = c(0, max(prob_binom)*1.1))
# Añadir línea para el valor crítico
abline(v = 2.5, col = "#2C3E50", lty = 2, lwd = 2)
legend("topright",
legend = c("P(X < 2)", "P(X ≥ 2)"),
fill = c("#9B59B6", "#E74C3C"),
bty = "n")
## === VERIFICACIÓN DE CONDICIONES ===
## np = 0.5
## n(1-p) = 99.5
## ⚠️ np < 10: usar distribución binomial exacta
## === PROBABILIDAD EXACTA ===
## P(X ≥ 2) = 0.0898
## Verificación término a término:
## P(X=0) = 0.6058
## P(X=1) = 0.3044
## P(X≥2) = 0.0898
# ------------------------------------------------------
# 11.5. COMPARACIÓN DE MÉTODOS PARA INTERVALOS DE CONFIANZA (CORREGIDO)
# ------------------------------------------------------
# Datos del ejemplo de encuesta piloto
n <- 20
exitos <- 3
p_hat <- exitos / n
nivel_confianza <- 0.95
z <- qnorm(1 - (1 - nivel_confianza)/2)
cat("=== DATOS DEL PROBLEMA ===\n")
cat("n =", n, "\n")
cat("Éxitos =", exitos, "\n")
cat("p̂ =", p_hat, "\n\n")
# 1. Método de Wald (aproximación normal)
ee_wald <- sqrt(p_hat * (1 - p_hat) / n)
ic_wald_inf <- p_hat - z * ee_wald
ic_wald_sup <- p_hat + z * ee_wald
ic_wald <- c(max(0, ic_wald_inf), min(1, ic_wald_sup))
# 2. Método de Wilson
termino_central <- p_hat + z^2/(2*n)
termino_error <- z * sqrt(p_hat*(1-p_hat)/n + z^2/(4*n^2))
denominador <- 1 + z^2/n
ic_wilson_inf <- (termino_central - termino_error) / denominador
ic_wilson_sup <- (termino_central + termino_error) / denominador
ic_wilson <- c(ic_wilson_inf, ic_wilson_sup)
# 3. Método de Clopper-Pearson (exacto)
ic_exacto_inf <- qbeta((1 - nivel_confianza)/2, exitos, n - exitos + 1)
ic_exacto_sup <- qbeta(1 - (1 - nivel_confianza)/2, exitos + 1, n - exitos)
ic_exacto <- c(ic_exacto_inf, ic_exacto_sup)
# 4. Método de Agresti-Coull
n_tilde <- n + z^2
p_tilde <- (exitos + z^2/2) / n_tilde
ee_ac <- sqrt(p_tilde * (1 - p_tilde) / n_tilde)
ic_ac_inf <- p_tilde - z * ee_ac
ic_ac_sup <- p_tilde + z * ee_ac
ic_ac <- c(ic_ac_inf, ic_ac_sup)
# Mostrar resultados
cat("=== INTERVALOS DE CONFIANZA DEL 95% ===\n")
cat("Método de Wald: [", round(ic_wald[1], 3), ",", round(ic_wald[2], 3), "]\n")
cat("Método de Wilson: [", round(ic_wilson[1], 3), ",", round(ic_wilson[2], 3), "]\n")
cat("Método Clopper-Pearson:[", round(ic_exacto[1], 3), ",", round(ic_exacto[2], 3), "]\n")
cat("Método Agresti-Coull: [", round(ic_ac[1], 3), ",", round(ic_ac[2], 3), "]\n\n")
# Visualización comparativa (CORREGIDO)
metodos <- c("Wald", "Wilson", "Clopper-Pearson", "Agresti-Coull")
inferiores <- c(ic_wald[1], ic_wilson[1], ic_exacto[1], ic_ac[1])
superiores <- c(ic_wald[2], ic_wilson[2], ic_exacto[2], ic_ac[2])
# Crear gráfico de intervalos - CORREGIDO: usar vector de 4 puntos para p_hat
p_hat_vector <- rep(p_hat, 4) # Repetir p_hat para cada método
plot(1:4, p_hat_vector, pch = 19, cex = 1.5, col = "#9B59B6",
xlim = c(0.5, 4.5), ylim = c(0, 0.5),
xaxt = "n", xlab = "Método", ylab = "Proporción",
main = "Comparación de Intervalos de Confianza del 95%")
axis(1, at = 1:4, labels = metodos)
# Añadir intervalos
for(i in 1:4) {
lines(c(i, i), c(inferiores[i], superiores[i]),
lwd = 3, col = "#3498DB")
lines(c(i-0.1, i+0.1), c(inferiores[i], inferiores[i]),
lwd = 2, col = "#3498DB")
lines(c(i-0.1, i+0.1), c(superiores[i], superiores[i]),
lwd = 2, col = "#3498DB")
}
# Línea horizontal en p̂
abline(h = p_hat, lty = 2, col = "#E74C3C", lwd = 1.5)
text(4.3, p_hat, paste("p̂ =", p_hat), col = "#E74C3C", cex = 0.9)
# Añadir grid para mejor visualización
grid(nx = NA, ny = NULL, lty = 1, col = "lightgray", lwd = 0.5)
# Leyenda explicativa
legend("topright",
legend = c("Estimación puntual p̂", "Intervalo de confianza"),
col = c("#9B59B6", "#3498DB"),
pch = c(19, NA),
lwd = c(NA, 2),
pt.cex = 1.5,
bty = "n")
## === DATOS DEL PROBLEMA ===
## n = 20
## Éxitos = 3
## p̂ = 0.15
## === INTERVALOS DE CONFIANZA DEL 95% ===
## Método de Wald: [ 0 , 0.306 ]
## Método de Wilson: [ 0.052 , 0.36 ]
## Método Clopper-Pearson:[ 0.032 , 0.379 ]
## Método Agresti-Coull: [ 0.044 , 0.369 ]
pu
# ------------------------------------------------------
# 11.6. SIMULACIÓN DE LA DISTRIBUCIÓN MUESTRAL
# ------------------------------------------------------
# Parámetros
p_real <- 0.45 # Proporción real en la población
n <- 100 # Tamaño de cada muestra
num_simulaciones <- 10000 # Número de muestras a simular
set.seed(123) # Para reproducibilidad
# Simular múltiples muestras
proporciones_muestrales <- replicate(num_simulaciones, {
muestra <- rbinom(1, size = n, prob = p_real)
muestra / n
})
# Calcular estadísticos de la simulación
media_simulada <- mean(proporciones_muestrales)
ee_simulado <- sd(proporciones_muestrales)
# Valores teóricos
media_teorica <- p_real
ee_teorico <- sqrt(p_real * (1 - p_real) / n)
cat("=== COMPARACIÓN TEORÍA vs SIMULACIÓN ===\n")
cat("Media teórica: ", round(media_teorica, 4), "\n")
cat("Media simulada: ", round(media_simulada, 4), "\n")
cat("Error estándar teórico:", round(ee_teorico, 4), "\n")
cat("Error estándar simulado:", round(ee_simulado, 4), "\n\n")
# Verificar normalidad
cat("Verificación de normalidad:\n")
cat("Proporción dentro de 1 EE teórico:",
mean(abs(proporciones_muestrales - media_teorica) < ee_teorico), "\n")
cat("Proporción dentro de 2 EE teórico:",
mean(abs(proporciones_muestrales - media_teorica) < 2*ee_teorico), "\n")
# Visualización
hist(proporciones_muestrales,
breaks = 30,
col = rgb(155, 89, 182, 100, maxColorValue = 255),
main = "Distribución Muestral Simulada de la Proporción (n=100)",
xlab = "Proporción muestral (p̂)",
ylab = "Frecuencia",
probability = TRUE)
# Superponer densidad teórica normal
x_teorico <- seq(min(proporciones_muestrales),
max(proporciones_muestrales),
length.out = 1000)
y_teorico <- dnorm(x_teorico, mean = media_teorica, sd = ee_teorico)
lines(x_teorico, y_teorico, col = "#E74C3C", lwd = 3)
# Añadir leyenda
legend("topright",
legend = c("Distribución simulada", "Densidad teórica normal"),
fill = c(rgb(155, 89, 182, 100, maxColorValue = 255), NA),
col = c(NA, "#E74C3C"),
lwd = c(NA, 3),
bty = "n")
## === COMPARACIÓN TEORÍA vs SIMULACIÓN ===
## Media teórica: 0.45
## Media simulada: 0.4503
## Error estándar teórico: 0.0497
## Error estándar simulado: 0.0496
## Verificación de normalidad:
## Proporción dentro de 1 EE teórico: 0.6297
## Proporción dentro de 2 EE teórico: 0.9454
# ------------------------------------------------------
# 11.7. CÁLCULO DE TAMAÑO MUESTRAL PARA PROPORCIONES
# ------------------------------------------------------
# Función para calcular tamaño muestral necesario
calcular_n <- function(p_esperado, margen_error, nivel_confianza = 0.95) {
z <- qnorm(1 - (1 - nivel_confianza)/2)
n <- (z^2 * p_esperado * (1 - p_esperado)) / (margen_error^2)
return(ceiling(n)) # Redondear hacia arriba
}
# Escenarios diferentes
cat("=== TAMAÑO MUESTRAL NECESARIO ===\n")
cat("(para margen de error del 3% y 95% confianza)\n\n")
# Escenario 1: p esperado = 0.5 (máxima varianza)
n1 <- calcular_n(p_esperado = 0.5, margen_error = 0.03)
cat("p = 0.50 (máxima varianza): n =", n1, "\n")
# Escenario 2: p esperado = 0.45
n2 <- calcular_n(p_esperado = 0.45, margen_error = 0.03)
cat("p = 0.45: n =", n2, "\n")
# Escenario 3: p esperado = 0.30
n3 <- calcular_n(p_esperado = 0.30, margen_error = 0.03)
cat("p = 0.30: n =", n3, "\n")
# Escenario 4: p esperado = 0.10
n4 <- calcular_n(p_esperado = 0.10, margen_error = 0.03)
cat("p = 0.10: n =", n4, "\n\n")
# Gráfico de tamaño muestral según p
p_valores <- seq(0.1, 0.9, by = 0.05)
n_valores <- sapply(p_valores, function(p) {
calcular_n(p, margen_error = 0.03)
})
plot(p_valores, n_valores, type = "b", lwd = 2, col = "#9B59B6",
pch = 19, cex = 1.2,
xlab = "Proporción esperada (p)",
ylab = "Tamaño muestral necesario (n)",
main = "Tamaño muestral para margen de error del 3% (95% confianza)")
grid()
abline(v = 0.5, lty = 2, col = "#E74C3C")
abline(h = max(n_valores), lty = 2, col = "#3498DB")
text(0.52, max(n_valores) + 20, paste("Máximo:", max(n_valores)), col = "#3498DB")
## === TAMAÑO MUESTRAL NECESARIO ===
## (para margen de error del 3% y 95% confianza)
## p = 0.50 (máxima varianza): n = 1068
## p = 0.45: n = 1057
## p = 0.30: n = 897
## p = 0.10: n = 385
# ------------------------------------------------------
# 11.8. FUNCIÓN GENERAL PARA ANÁLISIS COMPLETO DE PROPORCIÓN
# ------------------------------------------------------
analisis_proporcion <- function(exitos, n, nivel_confianza = 0.95) {
# Esta función realiza un análisis completo de una proporción
# Incluye: estimación, verificación de condiciones, IC múltiples
# Cálculos básicos
p_hat <- exitos / n
z <- qnorm(1 - (1 - nivel_confianza)/2)
# Verificación de condiciones para aproximación normal
np_hat <- n * p_hat
nq_hat <- n * (1 - p_hat)
cat("\n", paste(rep("=", 60), collapse = ""), "\n")
cat(" ANÁLISIS COMPLETO DE PROPORCIÓN\n")
cat(paste(rep("=", 60), collapse = ""), "\n\n")
cat("DATOS:\n")
cat(" Número de éxitos:", exitos, "\n")
cat(" Tamaño muestral (n):", n, "\n")
cat(" Proporción observada (p̂):", round(p_hat, 4), "\n")
cat(" Nivel de confianza:", nivel_confianza * 100, "%\n\n")
cat("VERIFICACIÓN DE CONDICIONES:\n")
cat(" np̂ =", round(np_hat, 2), "\n")
cat(" n(1-p̂) =", round(nq_hat, 2), "\n")
if(np_hat >= 10 & nq_hat >= 10) {
cat(" ✅ Condiciones cumplidas para aproximación normal\n")
metodo_recomendado <- "normal"
} else if(np_hat >= 5 & nq_hat >= 5) {
cat(" ⚠️ Condiciones mínimas cumplidas (usar con precaución)\n")
metodo_recomendado <- "wilson"
} else {
cat(" ❌ Condiciones NO cumplidas: usar métodos exactos\n")
metodo_recomendado <- "exacto"
}
cat("\nINTERVALOS DE CONFIANZA DEL", nivel_confianza*100, "%:\n")
# Wald
ee_wald <- sqrt(p_hat * (1 - p_hat) / n)
ic_wald <- c(max(0, p_hat - z*ee_wald), min(1, p_hat + z*ee_wald))
cat(" Wald (normal): [", round(ic_wald[1], 4), ",", round(ic_wald[2], 4), "]\n")
# Wilson
termino_central <- p_hat + z^2/(2*n)
termino_error <- z * sqrt(p_hat*(1-p_hat)/n + z^2/(4*n^2))
denominador <- 1 + z^2/n
ic_wilson <- c((termino_central - termino_error)/denominador,
(termino_central + termino_error)/denominador)
cat(" Wilson: [", round(ic_wilson[1], 4), ",", round(ic_wilson[2], 4), "]\n")
# Clopper-Pearson (exacto)
if(exitos > 0 & exitos < n) {
ic_exacto_inf <- qbeta((1 - nivel_confianza)/2, exitos, n - exitos + 1)
ic_exacto_sup <- qbeta(1 - (1 - nivel_confianza)/2, exitos + 1, n - exitos)
ic_exacto <- c(ic_exacto_inf, ic_exacto_sup)
cat(" Clopper-Pearson: [", round(ic_exacto[1], 4), ",", round(ic_exacto[2], 4), "]\n")
} else {
cat(" Clopper-Pearson: No aplicable (éxitos=0 o éxitos=n)\n")
ic_exacto <- c(NA, NA)
}
cat("\nRECOMENDACIÓN:\n")
if(metodo_recomendado == "normal") {
cat(" Usar intervalo de Wilson para mayor robustez\n")
cat(" Wald es aceptable pero menos preciso\n")
} else if(metodo_recomendado == "wilson") {
cat(" Usar intervalo de Wilson (funciona bien con estas condiciones)\n")
} else {
cat(" Usar intervalo exacto de Clopper-Pearson\n")
}
cat(paste(rep("=", 60), collapse = ""), "\n")
# Retornar resultados invisibly
return(invisible(list(
p_hat = p_hat,
n = n,
exitos = exitos,
ic_wald = ic_wald,
ic_wilson = ic_wilson,
ic_exacto = ic_exacto,
condiciones = c(np_hat, nq_hat),
metodo_recomendado = metodo_recomendado
)))
}
# Ejemplo de uso
analisis_proporcion(exitos = 18, n = 20, nivel_confianza = 0.95)
analisis_proporcion(exitos = 3, n = 20, nivel_confianza = 0.95)
analisis_proporcion(exitos = 255, n = 300, nivel_confianza = 0.95)
##
## ============================================================
## ANÁLISIS COMPLETO DE PROPORCIÓN
## ============================================================
##
## DATOS:
## Número de éxitos: 18
## Tamaño muestral (n): 20
## Proporción observada (p̂): 0.9
## Nivel de confianza: 95 %
##
## VERIFICACIÓN DE CONDICIONES:
## np̂ = 18
## n(1-p̂) = 2
## ❌ Condiciones NO cumplidas: usar métodos exactos
##
## INTERVALOS DE CONFIANZA DEL 95 %:
## Wald (normal): [ 0.7685 , 1 ]
## Wilson: [ 0.699 , 0.9721 ]
## Clopper-Pearson: [ 0.683 , 0.9877 ]
##
## RECOMENDACIÓN:
## Usar intervalo exacto de Clopper-Pearson
## ============================================================
##
## ============================================================
## ANÁLISIS COMPLETO DE PROPORCIÓN
## ============================================================
##
## DATOS:
## Número de éxitos: 3
## Tamaño muestral (n): 20
## Proporción observada (p̂): 0.15
## Nivel de confianza: 95 %
##
## VERIFICACIÓN DE CONDICIONES:
## np̂ = 3
## n(1-p̂) = 17
## ❌ Condiciones NO cumplidas: usar métodos exactos
##
## INTERVALOS DE CONFIANZA DEL 95 %:
## Wald (normal): [ 0 , 0.3065 ]
## Wilson: [ 0.0524 , 0.3604 ]
## Clopper-Pearson: [ 0.0321 , 0.3789 ]
##
## RECOMENDACIÓN:
## Usar intervalo exacto de Clopper-Pearson
## ============================================================
##
## ============================================================
## ANÁLISIS COMPLETO DE PROPORCIÓN
## ============================================================
##
## DATOS:
## Número de éxitos: 255
## Tamaño muestral (n): 300
## Proporción observada (p̂): 0.85
## Nivel de confianza: 95 %
##
## VERIFICACIÓN DE CONDICIONES:
## np̂ = 255
## n(1-p̂) = 45
## ✅ Condiciones cumplidas para aproximación normal
##
## INTERVALOS DE CONFIANZA DEL 95 %:
## Wald (normal): [ 0.8096 , 0.8904 ]
## Wilson: [ 0.8052 , 0.886 ]
## Clopper-Pearson: [ 0.8045 , 0.8884 ]
##
## RECOMENDACIÓN:
## Usar intervalo de Wilson para mayor robustez
## Wald es aceptable pero menos preciso
## ============================================================
# ------------------------------------------------------
# 11.9. COMPARACIÓN DE DOS PROPORCIONES INDEPENDIENTES
# ------------------------------------------------------
# Datos: tratamiento vs control
exitos_trat <- 45
n_trat <- 100
p_trat <- exitos_trat / n_trat
exitos_control <- 30
n_control <- 100
p_control <- exitos_control / n_control
cat("=== COMPARACIÓN DE DOS PROPORCIONES ===\n\n")
cat("Grupo tratamiento: p̂₁ =", p_trat, "(", exitos_trat, "/", n_trat, ")\n")
cat("Grupo control: p̂₂ =", p_control, "(", exitos_control, "/", n_control, ")\n\n")
# Diferencia de proporciones
diferencia <- p_trat - p_control
cat("Diferencia observada:", round(diferencia, 4), "\n\n")
# Prueba de hipótesis para igualdad de proporciones
# Usando prop.test de R
prueba <- prop.test(x = c(exitos_trat, exitos_control),
n = c(n_trat, n_control),
correct = FALSE) # Sin corrección de continuidad
print(prueba)
# Intervalo de confianza para la diferencia
# Método de Wald
ee_diferencia <- sqrt(p_trat*(1-p_trat)/n_trat + p_control*(1-p_control)/n_control)
z <- qnorm(0.975)
ic_dif_inf <- diferencia - z * ee_diferencia
ic_dif_sup <- diferencia + z * ee_diferencia
cat("\nIntervalo de confianza del 95% para la diferencia:\n")
cat("[", round(ic_dif_inf, 4), ",", round(ic_dif_sup, 4), "]\n")
if(ic_dif_inf > 0) {
cat("El intervalo NO contiene 0 → hay diferencia significativa\n")
} else if(ic_dif_sup < 0) {
cat("El intervalo NO contiene 0 → hay diferencia significativa\n")
} else {
cat("El intervalo contiene 0 → no hay evidencia de diferencia\n")
}
# Visualización
proporciones <- c(p_trat, p_control)
nombres <- c("Tratamiento", "Control")
colores <- c("#9B59B6", "#3498DB")
barplot(proporciones,
names.arg = nombres,
col = colores,
ylim = c(0, 1),
main = "Comparación de Proporciones",
ylab = "Proporción de éxito")
# Añadir intervalos de confianza individuales
for(i in 1:2) {
n_actual <- if(i==1) n_trat else n_control
p_actual <- proporciones[i]
ee <- sqrt(p_actual * (1 - p_actual) / n_actual)
ic_inf <- p_actual - 1.96 * ee
ic_sup <- p_actual + 1.96 * ee
segments(i, ic_inf, i, ic_sup, lwd = 2, col = "#2C3E50")
segments(i-0.1, ic_inf, i+0.1, ic_inf, lwd = 2, col = "#2C3E50")
segments(i-0.1, ic_sup, i+0.1, ic_sup, lwd = 2, col = "#2C3E50")
}
# Añadir línea para la diferencia
segments(1, p_trat, 2, p_control, lwd = 2, lty = 2, col = "#E74C3C")
text(1.5, (p_trat + p_control)/2,
paste("Diferencia =", round(diferencia, 3)),
pos = 3, col = "#E74C3C")
## === COMPARACIÓN DE DOS PROPORCIONES ===
## Grupo tratamiento: p̂₁ = 0.45 ( 45 / 100 )
## Grupo control: p̂₂ = 0.3 ( 30 / 100 )
## Diferencia observada: 0.15
##
## 2-sample test for equality of proportions without continuity correction
##
## data: c(exitos_trat, exitos_control) out of c(n_trat, n_control)
## X-squared = 4.8, df = 1, p-value = 0.02846
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## 0.01743049 0.28256951
## sample estimates:
## prop 1 prop 2
## 0.45 0.30
##
## Intervalo de confianza del 95% para la diferencia:
## [ 0.0174 , 0.2826 ]
## El intervalo NO contiene 0 → hay diferencia significativa
✅ DISTRIBUCIÓN MUESTRAL DE LA PROPORCIÓN: TEORÍA COMPLETA + CÓDIGO R
7 ejemplos prácticos • 6 funciones en R • Simulación • Intervalos de confianza • Tamaño muestral • Comparación de grupos
Condición clave: np ≥ 10 y n(1-p) ≥ 10 • Métodos exactos vs aproximación normal • Wilson recomendado para uso general
Comparación estadística de rendimiento promedio entre dos tipos de gasolina usando distribución normal
“Se prueba el rendimiento (km/l) de dos tipos de gasolina: la primera
tiene desviación estándar σ₁ = 1.23 km/l y se prueba en 35 vehículos; la
segunda tiene σ₂ = 1.37 km/l y se prueba en 42 vehículos.
a)
¿Cuál es la probabilidad de que la primera gasolina dé un rendimiento
promedio mayor de 0.45 km/l que la segunda?
b) ¿Cuál es la
probabilidad de que la diferencia en rendimientos promedio se encuentre
entre 0.65 y 0.83 km/l a favor de la primera gasolina?”
Datos proporcionados:
• Gasolina 1: σ₁ = 1.23 km/l,
n₁ = 35
• Gasolina 2: σ₂ = 1.37 km/l, n₂ = 42
Variables de interés:
• \(\bar{X}_1\): Rendimiento promedio gasolina
1
• \(\bar{X}_2\): Rendimiento
promedio gasolina 2
• Diferencia: \(D =
\bar{X}_1 - \bar{X}_2\)
Supuestos:
• Rendimientos siguen distribución normal
• Muestras
independientes
• Varianzas poblacionales conocidas
Parte a: P(\(\bar{X}_1 -
\bar{X}_2\) > 0.45)
Teorema fundamental:
Si \(\bar{X}_1\) ~ N(μ₁, σ₁²/n₁)
y \(\bar{X}_2\) ~ N(μ₂, σ₂²/n₂)
independientes, entonces:
\(D =
\bar{X}_1 - \bar{X}_2\) ~ N(μ₁-μ₂, σ_D²)
Varianza de la diferencia:
σ_D² = \(\frac{σ₁²}{n₁} + \frac{σ₂²}{n₂}\)
Suponiendo medias iguales (H₀):
μ₁ = μ₂ ⇒ μ_D =
0
Cálculo de σ_D²:
σ_D² = \(\frac{1.23²}{35} + \frac{1.37²}{42}\)
σ_D² = \(\frac{1.5129}{35} +
\frac{1.8769}{42}\)
Cálculo detallado:
σ₁² = 1.23² = 1.5129
σ₂² =
1.37² = 1.8769
Término 1: σ₁²/n₁ =
1.5129/35
= 0.0432257
Término 2: σ₂²/n₂ =
1.8769/42
= 0.0446881
Varianza total:
σ_D² = 0.0432257 + 0.0446881
σ_D² = 0.0879138
Desviación estándar:
σ_D = √0.0879138
σ_D ≈
0.2965
Distribución:
D ~ N(0, 0.0879138)
Parte a: P(D > 0.45)
Estandarización:
Z = \(\frac{D - μ_D}{σ_D}\)
Z = \(\frac{0.45 - 0}{0.2965}\)
Z =
0.45/0.2965
Cálculo exacto:
Z =
0.45/√0.0879138
Z = 0.45/0.296502
Z ≈ 1.5180
Probabilidad:
P(D > 0.45) = P(Z > 1.5180)
= 1 - P(Z < 1.5180)
Usando tabla
normal:
P(Z < 1.51) = 0.93448
P(Z < 1.52) =
0.93574
Interpolación:
P(Z < 1.518) ≈
0.9356
Resultado parte a:
P = 1 - 0.9356 =
0.0644
≈ 0.0644 (6.44%)
Parte b: P(0.65 < D < 0.83)
Interpretación:
“a favor de la primera
gasolina”
significa \(\bar{X}_1 >
\bar{X}_2\)
∴ D > 0 siempre
Distribución:
D ~ N(0, 0.0879138)
σ_D ≈
0.2965
Probabilidad requerida:
P(0.65 <
D < 0.83)
Estandarización para límites:
Z₁ = (0.65 - 0)/σ_D
Z₂ = (0.83 - 0)/σ_D
Relación
con tabla normal:
P(a < D < b) = P(Z₁ < Z <
Z₂)
= P(Z < Z₂) - P(Z < Z₁)
Cálculo Z-scores:
Z₁ = 0.65/0.2965 ≈ 2.1922
Z₂
= 0.83/0.2965 ≈ 2.7993
Valores tabla
normal:
P(Z < 2.19) = 0.98574
P(Z < 2.20) =
0.98610
P(Z < 2.79) = 0.99736
P(Z < 2.80) = 0.99744
Interpolación lineal:
P(Z < 2.192) ≈
0.9858
P(Z < 2.799) ≈ 0.9974
Probabilidad:
P(0.65 < D < 0.83)
=
P(2.192 < Z < 2.799)
= 0.9974 - 0.9858
= 0.0116
Resultado parte b:
P ≈ 0.0116 (1.16%)
Cálculo exacto σ_D²:
σ_D² = \(\frac{1.5129}{35} + \frac{1.8769}{42}\)
= 0.043225714 + 0.044688095
= 0.087913809
σ_D
exacto:
σ_D = √0.087913809
= 0.296502631
Parte a exacta:
Z = 0.45/0.296502631
=
1.517698
P(Z > 1.517698) = 0.0646
Parte b
exacta:
Z₁ = 0.65/0.296502631 = 2.1922
Z₂ =
0.83/0.296502631 = 2.7993
P = Φ(2.7993) - Φ(2.1922)
= 0.99744 -
0.98586
= 0.01158
Interpretación parte a:
• Probabilidad 6.44%
•
Significa: Si ambas gasolinas tienen
igual rendimiento promedio
(μ₁=μ₂)
• Solo 6.44% de muestras mostrarían
diferencia >0.45
km/l
• Diferencia de 0.45 km/l sería poco común
Interpretación parte b:
• Probabilidad 1.16%
•
Muy baja probabilidad
• Diferencia entre 0.65-0.83 km/l
sería
muy inusual si μ₁=μ₂
• Sugeriría diferencia real si se observa
P(D > 0.45) = 0.0646
≈ 6.46%
Z-score: 1.518
Interpretación: Baja probabilidad
P(0.65 < D < 0.83) = 0.0116
≈ 1.16%
Z₁: 2.192, Z₂: 2.799
Interpretación: Muy baja probabilidad
Distribución Diferencia
D ~ N(μ₁-μ₂, σ₁²/n₁+σ₂²/n₂)
Estandarización
Z = (D - μ_D)/σ_D
Hipótesis Nula
Asume μ₁ = μ₂ ⇒ μ_D = 0
Parte a (6.46%): Si en pruebas reales se observa una
diferencia mayor a 0.45 km/l, hay evidencia moderada (p=0.0646) contra
la hipótesis de igual rendimiento. En investigación, esto podría
considerarse “marginalmente significativo”.
Parte b
(1.16%): Una diferencia entre 0.65-0.83 km/l sería muy inusual
si las gasolinas fueran iguales. Esto proporcionaría evidencia más
fuerte para concluir que la primera gasolina es realmente mejor.
Varianza de Diferencia:
σ_D² = σ₁²/n₁ + σ₂²/n₂
= 1.5129/35 + 1.8769/42
= 0.0879138
Estandarización:
Z = (D - μ_D)/σ_D
Parte a: Z =
0.45/0.2965
Parte b: Z₁ = 0.65/0.2965
Z₂ = 0.83/0.2965
⛽ RESULTADOS FINALES - COMPARACIÓN DE GASOLINAS
Parte a:
P(D > 0.45) = 0.0646
(6.46%)
Parte b:
P(0.65 < D < 0.83) = 0.0116
(1.16%)
Diferencia de Medias • Distribución Normal • Pruebas de Hipótesis • Análisis Comparativo
Sean \(\chi^2_{\nu_1}\) y \(\chi^2_{\nu_2}\) variables aleatorias independientes con distribución chi-cuadrado con \(\nu_1\) y \(\nu_2\) grados de libertad respectivamente.
\[ F = \frac{\chi^2_{\nu_1} / \nu_1}{\chi^2_{\nu_2} / \nu_2} \sim F_{(\nu_1, \nu_2)} \]
Su función de densidad es:
\[ f(x; \nu_1, \nu_2) = \frac{\sqrt{\frac{(\nu_1 x)^{\nu_1} \nu_2^{\nu_2}}{(\nu_1 x + \nu_2)^{\nu_1+\nu_2}}}}{x \cdot B\left(\frac{\nu_1}{2}, \frac{\nu_2}{2}\right)} \]
Problema: Se tienen dos muestras independientes de poblaciones normales con igual varianza: \(n_1=6\), \(n_2=10\). Calcular el valor \(b\) tal que \(P\left(\frac{S_1^2}{S_2^2} \leq b\right) = 0.95\).
\[ \frac{S_1^2}{S_2^2} \sim F_{(5,9)} \\ P\left(\frac{S_1^2}{S_2^2} \leq b\right) = 0.95 \\ \Rightarrow b = F_{0.95}(5,9) = 3.48 \]
Aplicación: Pruebas de homogeneidad de varianzas (Levene, Bartlett), comparación de dos varianzas poblacionales.
Problema: Comparar 3 tratamientos con \(n_1=n_2=n_3=5\) observaciones. La tabla ANOVA muestra \(MS_{trat}=25.6\) y \(MS_{error}=8.2\).
\[ F_{cal} = \frac{MS_{trat}}{MS_{error}} = \frac{25.6}{8.2} = 3.122 \\ F_{crit} = F_{0.95}(2,12) = 3.885 \]
Aplicación: Como \(F_{cal} < F_{crit}\), no se rechaza \(H_0\) al 5% de significancia.
# ======================================================
# DISTRIBUCIÓN F EN R: FUNCIONES Y APLICACIONES
# ======================================================
# ------------------------------------------------------
# 1. EJEMPLO DE RAZÓN DE VARIANZAS
# ------------------------------------------------------
# Parámetros dados
n1 <- 6; n2 <- 10
df1 <- n1 - 1; df2 <- n2 - 1 # Grados de libertad
# Valor crítico b para P(F ≤ b) = 0.95
b <- qf(0.95, df1, df2)
cat("Valor crítico b =", round(b, 4), "\n")
cat("Interpretación: P(F(5,9) ≤", round(b, 4), ") = 0.95\n\n")
# ------------------------------------------------------
# 2. GRÁFICO DE LA DENSIDAD F CON ÁREA SOMBREADA
# ------------------------------------------------------
# Crear secuencia de valores
x <- seq(0, 6, length.out = 1000)
y <- df(x, df1, df2)
# Configurar gráfico
par(mar = c(5, 5, 4, 2) + 0.1)
# Graficar densidad
plot(x, y, type = "l", lwd = 3, col = "#27AE60",
xlab = "Valores de F = S₁²/S₂²",
ylab = "Densidad de probabilidad",
main = "Distribución F con (5, 9) grados de libertad",
cex.lab = 1.2, cex.main = 1.3)
# Añadir grid
grid(nx = 10, ny = 10, col = "lightgray", lty = "dotted")
# Sombrear área P(F ≤ b)
x_shade <- seq(0, b, length.out = 500)
y_shade <- df(x_shade, df1, df2)
polygon(c(0, x_shade, b), c(0, y_shade, 0),
col = rgb(46, 204, 113, 100, maxColorValue = 255),
border = NA)
# Línea vertical en b
abline(v = b, col = "#E74C3C", lty = 2, lwd = 2.5)
# Leyenda
legend("topright",
legend = c("Densidad F(5,9)",
paste("P(F ≤", round(b, 2), ") = 0.95"),
paste("b =", round(b, 2))),
col = c("#27AE60", rgb(46, 204, 113, 100, maxColorValue = 255), "#E74C3C"),
lwd = c(3, NA, 2.5),
lty = c(1, NA, 2),
fill = c(NA, rgb(46, 204, 113, 100, maxColorValue = 255), NA),
border = NA,
bty = "n", cex = 0.9)
# ------------------------------------------------------
# 3. EJEMPLO DE ANOVA
# ------------------------------------------------------
cat("\n--- EJEMPLO DE ANOVA ---\n")
# Datos del ejemplo
MS_trat <- 25.6; MS_error <- 8.2
gl_trat <- 2; gl_error <- 12
# Calcular F calculado
F_cal <- MS_trat / MS_error
cat("F calculado =", round(F_cal, 3), "\n")
# Valor crítico al 95% confianza
F_crit <- qf(0.95, gl_trat, gl_error)
cat("F crítico (α=0.05) =", round(F_crit, 3), "\n")
# p-valor
p_valor <- 1 - pf(F_cal, gl_trat, gl_error)
cat("p-valor =", round(p_valor, 4), "\n")
# Decisión
if(F_cal > F_crit) {
cat("Decisión: Rechazar H₀ (hay diferencias significativas)\n")
} else {
cat("Decisión: No rechazar H₀ (no hay evidencias de diferencias)\n")
}
# ------------------------------------------------------
# 4. PROPIEDADES Y CUANTILES ESPECIALES
# ------------------------------------------------------
cat("\n--- PROPIEDADES DE LA DISTRIBUCIÓN F ---\n")
# Media y varianza teóricas
if(df2 > 2) {
media_F <- df2/(df2 - 2)
cat("Media teórica =", round(media_F, 4), "\n")
} else {
cat("Media no definida (ν₂ ≤ 2)\n")
}
if(df2 > 4) {
var_F <- 2*df2^2*(df1+df2-2)/(df1*(df2-2)^2*(df2-4))
cat("Varianza teórica =", round(var_F, 4), "\n")
} else {
cat("Varianza no definida (ν₂ ≤ 4)\n")
}
# Relación con t-Student
cat("\nRelación con t-Student: t²(ν) = F(1, ν)\n")
t_crit <- qt(0.975, 9) # t con 9 gl al 97.5% (dos colas 5%)
F_crit_rel <- t_crit^2
cat("t(9, 0.975) =", round(t_crit, 3), "\n")
cat("t² =", round(F_crit_rel, 3), "\n")
cat("F(1,9, 0.95) =", round(qf(0.95, 1, 9), 3), "\n")
# ------------------------------------------------------
# 5. COMPARACIÓN DE VARIANZAS (PRUEBA BILATERAL)
# ------------------------------------------------------
cat("\n--- PRUEBA BILATERAL DE IGUALDAD DE VARIANZAS ---\n")
# Simular dos muestras
set.seed(123)
muestra1 <- rnorm(15, mean = 10, sd = 2)
muestra2 <- rnorm(12, mean = 12, sd = 2.5)
# Calcular varianzas muestrales
var1 <- var(muestra1)
var2 <- var(muestra2)
F_obs <- var1/var2
cat("Varianza muestra 1 =", round(var1, 2), "\n")
cat("Varianza muestra 2 =", round(var2, 2), "\n")
cat("F observado =", round(F_obs, 3), "\n")
# Prueba F bilateral
gl1 <- length(muestra1) - 1
gl2 <- length(muestra2) - 1
# Valores críticos
F_inf <- qf(0.025, gl1, gl2)
F_sup <- qf(0.975, gl1, gl2)
cat("F crítico inferior (2.5%) =", round(F_inf, 3), "\n")
cat("F crítico superior (97.5%) =", round(F_sup, 3), "\n")
# p-valor bilateral
p_bilateral <- 2 * min(pf(F_obs, gl1, gl2), 1 - pf(F_obs, gl1, gl2))
cat("p-valor bilateral =", round(p_bilateral, 4), "\n")
# ------------------------------------------------------
# 6. GRÁFICO INTERACTIVO DE DIFERENTES F
# ------------------------------------------------------
# Comparar diferentes grados de libertad
par(mfrow = c(2, 2))
# Configuración de diferentes combinaciones
dfs <- list(
c(1, 1), # F(1,1)
c(5, 20), # F(5,20)
c(10, 10), # F(10,10)
c(50, 50) # F(50,50) ~ 1
)
títulos <- c("F(1,1) - Cauchy-like", "F(5,20)", "F(10,10)", "F(50,50) - Aprox. Normal")
for(i in 1:4) {
df1_i <- dfs[[i]][1]
df2_i <- dfs[[i]][2]
x <- seq(0, 5, length.out = 1000)
y <- df(x, df1_i, df2_i)
plot(x, y, type = "l", lwd = 2, col = "#3498DB",
main = títulos[i],
xlab = "F", ylab = "Densidad",
ylim = c(0, max(y)*1.1))
# Línea vertical en 1 (valor esperado bajo H₀)
abline(v = 1, col = "#E74C3C", lty = 2, lwd = 1.5)
# Media si existe
if(df2_i > 2) {
media <- df2_i/(df2_i - 2)
abline(v = media, col = "#F39C12", lty = 3, lwd = 1.5)
}
}
par(mfrow = c(1, 1))
# ------------------------------------------------------
# 7. CÁLCULO DE POTENCIA PARA PRUEBA F
# ------------------------------------------------------
cat("\n--- CÁLCULO DE POTENCIA PARA PRUEBA F ---\n")
# Parámetros para prueba de igualdad de varianzas
n1 <- 10; n2 <- 15
sigma1 <- 2; sigma2 <- 3 # Varianzas poblacionales diferentes
alfa <- 0.05
gl1 <- n1 - 1; gl2 <- n2 - 1
# Valor crítico superior
F_crit <- qf(1 - alfa/2, gl1, gl2)
# Parámetro de no-centralidad (para razón de varianzas real)
lambda <- (sigma1^2/sigma2^2)
# Potencia (probabilidad de rechazar H₀ cuando es falsa)
potencia <- 1 - pf(F_crit, gl1, gl2, ncp = lambda) +
pf(1/F_crit, gl1, gl2, ncp = 1/lambda)
cat("Potencia de la prueba =", round(potencia, 4), "\n")
cat("(con varianzas poblacionales", sigma1^2, "y", sigma2^2, ")\n")
📊 Normal
\(\bar{Y} \sim N(\mu, \frac{\sigma^2}{n})\)
Teorema Central del Límite
📐 Chi-cuadrada
\(\frac{(n-1)S^2}{\sigma^2} \sim \chi^2_{(n-1)}\)
Inferencia sobre varianzas
📈 t-Student
\(\frac{\bar{Y}-\mu}{S/\sqrt{n}} \sim t_{(n-1)}\)
Inferencia sobre medias
📊 F
\(\frac{S_1^2}{S_2^2} \sim F_{(n_1-1,n_2-1)}\)
ANOVA, comparación varianzas
📊 ANOVA
Comparación de múltiples medias mediante razón de varianzas
📈 Regresión Lineal
Prueba F global de significancia del modelo
🧪 Diseño Experimental
Análisis de efectos en diseños factoriales
# ======================================================
# EJEMPLOS PRÁCTICOS DE DISTRIBUCIÓN F EN R
# ======================================================
# ------------------------------------------------------
# EJEMPLO 1: VALOR CRÍTICO PARA RAZÓN DE VARIANZAS
# ------------------------------------------------------
# Parámetros dados
n1 <- 6 # Tamaño de la primera muestra
n2 <- 10 # Tamaño de la segunda muestra
prob <- 0.95 # Probabilidad deseada
# Grados de libertad
df1 <- n1 - 1 # Grados de libertad para S1²
df2 <- n2 - 1 # Grados de libertad para S2²
# Encontrar el valor crítico b usando la distribución F
b <- qf(prob, df1 = df1, df2 = df2)
# Mostrar el valor de b
print(paste("El valor de b tal que P(S1²/S2² ≤ b) = 0.95 es:", round(b, 4)))
## [1] "El valor de b tal que P(S1²/S2² ≤ b) = 0.95 es: 3.4817"
# Verificar con la función de distribución
prob_verificacion <- pf(b, df1 = df1, df2 = df2)
print(paste("Verificación: P(F ≤", round(b, 4), ") =", round(prob_verificacion, 4)))
## [1] "Verificación: P(F ≤ 3.4817 ) = 0.95"
# Crear una secuencia de valores para la distribución F
x <- seq(0, 5, length.out = 1000)
# Calcular la densidad de la distribución F
y <- df(x, df1 = df1, df2 = df2)
# Graficar la distribución F
plot(x, y, type = "l", lwd = 2, col = "blue",
xlab = "Valores de F = S1²/S2²", ylab = "Densidad",
main = "Distribución F con (5, 9) grados de libertad")
# Sombrear el área correspondiente a P(F ≤ b)
x_shade <- seq(0, b, length.out = 1000)
y_shade <- df(x_shade, df1 = df1, df2 = df2)
polygon(c(0, x_shade, b), c(0, y_shade, 0), col = "lightblue", border = NA)
# Añadir una línea vertical en el valor crítico b
abline(v = b, col = "red", lty = 2, lwd = 2)
# Añadir texto con el valor de b
text(b, 0.1, paste("b =", round(b, 2)), pos = 4, col = "red", cex = 0.9)
# Añadir leyenda
legend("topright", legend = c("Distribución F", "Área sombreada (P(F ≤ b) = 0.95)"),
col = c("blue", "lightblue"), lwd = 2, lty = c(1, NA), fill = c(NA, "lightblue"), border = NA)
# ------------------------------------------------------
# EJEMPLO 2: APLICACIÓN EN ANOVA (COMPARACIÓN DE TRES GRUPOS)
# ------------------------------------------------------
cat("\n\n=== EJEMPLO 2: ANOVA DE UN FACTOR ===\n")
##
##
## === EJEMPLO 2: ANOVA DE UN FACTOR ===
# Simular datos de tres grupos
set.seed(123)
grupo1 <- rnorm(8, mean = 10, sd = 2)
grupo2 <- rnorm(10, mean = 12, sd = 2)
grupo3 <- rnorm(7, mean = 11, sd = 2)
# Crear data frame para ANOVA
datos <- data.frame(
valor = c(grupo1, grupo2, grupo3),
grupo = factor(rep(c("A", "B", "C"), times = c(8, 10, 7)))
)
# Realizar ANOVA
modelo_anova <- aov(valor ~ grupo, data = datos)
resumen_anova <- summary(modelo_anova)
print(resumen_anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## grupo 2 22.11 11.05 3.141 0.0631 .
## Residuals 22 77.43 3.52
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Extraer el valor F y p-valor
F_calculado <- resumen_anova[[1]]$"F value"[1]
p_valor <- resumen_anova[[1]]$"Pr(>F)"[1]
gl_grupos <- resumen_anova[[1]]$Df[1]
gl_error <- resumen_anova[[1]]$Df[2]
cat("\nResultados del ANOVA:\n")
##
## Resultados del ANOVA:
cat("F calculado =", round(F_calculado, 4), "\n")
## F calculado = 3.1406
cat("Grados de libertad = (", gl_grupos, ",", gl_error, ")\n")
## Grados de libertad = ( 2 , 22 )
cat("p-valor =", format(p_valor, scientific = FALSE, digits = 4), "\n")
## p-valor = 0.06312
# Valor crítico al 95% de confianza
F_critico <- qf(0.95, gl_grupos, gl_error)
cat("F crítico (α=0.05) =", round(F_critico, 4), "\n")
## F crítico (α=0.05) = 3.4434
# Decisión
if(F_calculado > F_critico) {
cat("Decisión: Rechazar H₀ - Existen diferencias significativas entre grupos\n")
} else {
cat("Decisión: No rechazar H₀ - No hay evidencias de diferencias entre grupos\n")
}
## Decisión: No rechazar H₀ - No hay evidencias de diferencias entre grupos
# Gráfico de cajas comparativo
boxplot(valor ~ grupo, data = datos,
col = c("lightblue", "lightgreen", "lightcoral"),
main = "Comparación de grupos",
xlab = "Grupo", ylab = "Valores")
# ------------------------------------------------------
# EJEMPLO 3: PRUEBA DE HOMOGENEIDAD DE VARIANZAS (BARTLETT)
# ------------------------------------------------------
cat("\n\n=== EJEMPLO 3: PRUEBA DE BARTLETT PARA HOMOGENEIDAD DE VARIANZAS ===\n")
##
##
## === EJEMPLO 3: PRUEBA DE BARTLETT PARA HOMOGENEIDAD DE VARIANZAS ===
# Realizar prueba de Bartlett
bartlett_test <- bartlett.test(valor ~ grupo, data = datos)
print(bartlett_test)
##
## Bartlett test of homogeneity of variances
##
## data: valor by grupo
## Bartlett's K-squared = 1.9961, df = 2, p-value = 0.3686
# El estadístico de Bartlett sigue aproximadamente una distribución chi-cuadrado,
# pero se relaciona con la F en el contexto de comparación de varianzas
# ------------------------------------------------------
# EJEMPLO 4: INTERVALO DE CONFIANZA PARA RAZÓN DE VARIANZAS
# ------------------------------------------------------
cat("\n\n=== EJEMPLO 4: INTERVALO DE CONFIANZA PARA RAZÓN DE VARIANZAS ===\n")
##
##
## === EJEMPLO 4: INTERVALO DE CONFIANZA PARA RAZÓN DE VARIANZAS ===
# Calcular varianzas muestrales
var_grupo1 <- var(grupo1)
var_grupo2 <- var(grupo2)
razon_varianzas <- var_grupo1 / var_grupo2
cat("Varianza grupo 1 =", round(var_grupo1, 4), "\n")
## Varianza grupo 1 = 4.0751
cat("Varianza grupo 2 =", round(var_grupo2, 4), "\n")
## Varianza grupo 2 = 4.4604
cat("Razón de varianzas (S1²/S2²) =", round(razon_varianzas, 4), "\n")
## Razón de varianzas (S1²/S2²) = 0.9136
# Grados de libertad
gl1 <- length(grupo1) - 1
gl2 <- length(grupo2) - 1
# Intervalo de confianza del 95% para σ1²/σ2²
F_inf <- qf(0.025, gl1, gl2)
F_sup <- qf(0.975, gl1, gl2)
LI <- razon_varianzas / F_sup
LS <- razon_varianzas / F_inf
cat("\nIntervalo de confianza del 95% para σ1²/σ2²:\n")
##
## Intervalo de confianza del 95% para σ1²/σ2²:
cat("[", round(LI, 4), ", ", round(LS, 4), "]\n")
## [ 0.2177 , 4.4065 ]
if(LI <= 1 && 1 <= LS) {
cat("El intervalo contiene al 1 - No se rechaza igualdad de varianzas\n")
} else {
cat("El intervalo NO contiene al 1 - Evidencia de varianzas diferentes\n")
}
## El intervalo contiene al 1 - No se rechaza igualdad de varianzas
# ======================================================
# CÁLCULO DE VALORES CRÍTICOS DE LA DISTRIBUCIÓN F
# ======================================================
# Parámetros dados
n1 <- 6 # Tamaño de la primera muestra
n2 <- 10 # Tamaño de la segunda muestra
prob <- 0.95 # Probabilidad deseada
# Grados de libertad
df1 <- n1 - 1 # Grados de libertad para S1²
df2 <- n2 - 1 # Grados de libertad para S2²
# Encontrar el valor crítico b usando la distribución F
b <- qf(prob, df1 = df1, df2 = df2)
# Mostrar el valor de b
print(paste("El valor de b tal que P(S1²/S2² ≤ b) = 0.95 es:", round(b, 4)))
## [1] "El valor de b tal que P(S1²/S2² ≤ b) = 0.95 es: 3.4817"
# Verificar con la función de distribución acumulada
prob_verificacion <- pf(b, df1 = df1, df2 = df2)
print(paste("Verificación: P(F ≤", round(b, 4), ") =", round(prob_verificacion, 4)))
## [1] "Verificación: P(F ≤ 3.4817 ) = 0.95"
# Crear una secuencia de valores para la distribución F
x <- seq(0, 5, length.out = 1000)
# Calcular la densidad de la distribución F
y <- df(x, df1 = df1, df2 = df2)
# Graficar la distribución F
plot(x, y, type = "l", lwd = 2, col = "blue",
xlab = "Valores de F = S1²/S2²", ylab = "Densidad",
main = "Distribución F con (5, 9) grados de libertad")
# Sombrear el área correspondiente a P(F ≤ b)
x_shade <- seq(0, b, length.out = 1000)
y_shade <- df(x_shade, df1 = df1, df2 = df2)
polygon(c(0, x_shade, b), c(0, y_shade, 0), col = "lightblue", border = NA)
# Añadir una línea vertical en el valor crítico b
abline(v = b, col = "red", lty = 2, lwd = 2)
# Añadir texto con el valor de b
text(b, 0.1, paste("b =", round(b, 2)), pos = 4, col = "red", cex = 0.9)
# Añadir leyenda
legend("topright", legend = c("Distribución F", "Área sombreada (P(F ≤ b) = 0.95)"),
col = c("blue", "lightblue"), lwd = 2, lty = c(1, NA), fill = c(NA, "lightblue"), border = NA)
# ------------------------------------------------------
# TABLA DE VALORES CRÍTICOS PARA DIFERENTES NIVELES
# ------------------------------------------------------
cat("\n\n=== TABLA DE VALORES CRÍTICOS PARA F(5,9) ===\n")
##
##
## === TABLA DE VALORES CRÍTICOS PARA F(5,9) ===
niveles <- c(0.90, 0.95, 0.975, 0.99, 0.995)
for(alpha in niveles) {
valor_critico <- qf(alpha, df1 = df1, df2 = df2)
cat("F", alpha, "(5,9) =", round(valor_critico, 4), "\n")
}
## F 0.9 (5,9) = 2.6106
## F 0.95 (5,9) = 3.4817
## F 0.975 (5,9) = 4.4844
## F 0.99 (5,9) = 6.0569
## F 0.995 (5,9) = 7.4712
# ------------------------------------------------------
# RELACIÓN CON LA DISTRIBUCIÓN T-STUDENT
# ------------------------------------------------------
cat("\n\n=== RELACIÓN CON T-STUDENT ===\n")
##
##
## === RELACIÓN CON T-STUDENT ===
# Para ν₂ = 9 y ν₁ = 1, se cumple: t²(9) = F(1,9)
t_valor <- qt(0.975, df = 9) # t con 9 gl al 97.5% (dos colas 5%)
F_equivalente <- t_valor^2
F_directo <- qf(0.95, df1 = 1, df2 = 9)
cat("t(9, 0.975) =", round(t_valor, 4), "\n")
## t(9, 0.975) = 2.2622
cat("t² =", round(F_equivalente, 4), "\n")
## t² = 5.1174
cat("F(1,9, 0.95) =", round(F_directo, 4), "\n")
## F(1,9, 0.95) = 5.1174
cat("Verificación de la relación: t²(ν) = F(1,ν)\n")
## Verificación de la relación: t²(ν) = F(1,ν)
🎓 07. DISTRIBUCIONES MUESTRALES COMPLETAS
Teoremas fundamentales • Aplicaciones prácticas • Implementación en R • Bases para inferencia estadística
El pilar fundamental de la inferencia estadística moderna y sus aplicaciones en contextos reales
“El Teorema del Límite Central (TLC) es uno de los resultados más importantes en estadística y probabilidad. Establece que, bajo ciertas condiciones, la distribución de la media muestral de una muestra aleatoria se aproxima a una distribución normal, independientemente de la forma de la distribución de la población original, siempre que el tamaño de la muestra sea suficientemente grande.”
Sean \(Y_1, Y_2, \dots, Y_n\) variables aleatorias i.i.d. con:
\[ U_n = \frac{\bar{Y} - \mu}{\sigma / \sqrt{n}} \xrightarrow{d} N(0, 1) \]
Convergencia en distribución: \(U_n \xrightarrow{d} N(0, 1)\) cuando \(n \to \infty\)
Objetivo: Mostrar cómo la distribución de medias muestrales de una población exponencial (no normal) converge a normalidad conforme aumenta \(n\).
📊
📈
📐
# Parámetros de simulación
set.seed(123)
mu <- 1 # Media exponencial
n_sim <- 1000 # Número de simulaciones
sample_sizes <- c(5, 30, 100)
# Función de simulación
simulate_sample_means <- function(n) {
sapply(1:n_sim, function(i) mean(rexp(n, rate = 1/mu)))
}
# Gráficos comparativos
par(mfrow = c(1, 3))
for (n in sample_sizes) {
sample_means <- simulate_sample_means(n)
hist(sample_means, breaks = 30, freq = FALSE,
main = paste("n =", n), xlab = "Media muestral",
col = "lightblue", border = "white")
# Curva normal teórica
curve(dnorm(x, mean = mu, sd = mu/sqrt(n)),
add = TRUE, col = "red", lwd = 2)
}
# Parámetros
set.seed(123) # Para reproducibilidad
mu <- 1 # Media de la distribución exponencial
n_sim <- 1000 # Número de simulaciones
sample_sizes <- c(5, 30, 100) # Tamaños de muestra
# Función para simular medias muestrales
simulate_sample_means <- function(n) {
sapply(1:n_sim, function(i) mean(rexp(n, rate = 1/mu)))
}
# Crear gráficos
par(mfrow = c(1, 3)) # 1 fila, 3 columnas
for (n in sample_sizes) {
sample_means <- simulate_sample_means(n)
hist(sample_means, breaks = 30, freq = FALSE, main = paste("n =", n),
xlab = "Media muestral", col = "lightblue", border = "white")
curve(dnorm(x, mean = mu, sd = mu/sqrt(n)), add = TRUE, col = "red", lwd = 2)
}
Contexto: Candidato A necesita al menos 55% de votos en el Distrito I para ganar. Encuestas muestran que aproximadamente 50% de votantes le favorecen. Con \(n = 100\) votantes esperados en el distrito, ¿cuál es la probabilidad de que gane?
\[ \begin{aligned} P\left(\frac{Y}{100} \geq 0.55\right) &= P\left(\frac{\bar{X} - p}{\sqrt{p(1-p)/n}} \geq \frac{0.55 - 0.5}{\sqrt{0.25/100}}\right) \\ &= P\left(Z \geq \frac{0.05}{0.05}\right) = P(Z \geq 1) \\ &= 1 - P(Z \leq 1) = 1 - 0.8413 = 0.1587 \end{aligned} \]
Interpretación: Solo 15.87% de probabilidad de ganar
📉 Riesgo Alto
🎯 Decisiones de Campaña
Contexto: Pruebas estatales tienen media 60, varianza 64. Una preparatoria con \(n = 100\) estudiantes obtiene media 58. ¿Es esta institución inferior al promedio estatal?
\[ \begin{aligned} \text{Parámetros: } &\mu = 60, \sigma^2 = 64, n = 100 \\ \text{Error estándar: } &SE = \frac{\sigma}{\sqrt{n}} = \frac{8}{10} = 0.8 \\ \text{Estadístico Z: } &Z = \frac{58 - 60}{0.8} = -2.5 \\ \text{Valor p: } &P(Z \leq -2.5) = 0.0062 \end{aligned} \]
Significancia: \(p = 0.0062 < 0.05\) → Evidencia estadística fuerte
# Análisis de desempeño escolar
mu_poblacion <- 60
var_poblacion <- 64
n <- 100
media_muestral <- 58
# Cálculos
se <- sqrt(var_poblacion / n) # 0.8
z <- (media_muestral - mu_poblacion) / se # -2.5
p_valor <- pnorm(z) # 0.0062
# Conclusión estadística
alpha <- 0.05
if (p_valor < alpha) {
print("Rechazar H₀: La escuela es inferior")
} else {
print("No rechazar H₀: Sin evidencia de inferioridad")
}
📉 Hallazgos Estadísticos
🏫 Acciones Recomendadas
# Parámetros dados
mu_poblacion <- 60 # Media poblacional
var_poblacion <- 64 # Varianza poblacional
n <- 100 # Tamaño de la muestra
media_muestral <- 58 # Media muestral
# Error estándar de la media
se <- sqrt(var_poblacion / n)
# Estadístico de prueba Z
z <- (media_muestral - mu_poblacion) / se
# Valor p (prueba de una cola, cola inferior)
p_valor <- pnorm(z)
# Mostrar resultados
print(paste("Estadístico de prueba Z:", round(z, 4)))
## [1] "Estadístico de prueba Z: -2.5"
print(paste("Valor p:", round(p_valor, 4)))
## [1] "Valor p: 0.0062"
# Conclusión
alpha <- 0.05 # Nivel de significancia
if (p_valor < alpha) {
print("Rechazamos la hipótesis nula: La preparatoria es inferior.")
} else {
print("No rechazamos la hipótesis nula: No hay evidencia suficiente para afirmar que la preparatoria es inferior.")
}
## [1] "Rechazamos la hipótesis nula: La preparatoria es inferior."
# Gráfica de la distribución normal estándar
x <- seq(-4, 4, length.out = 1000) # Rango de valores para Z
y <- dnorm(x) # Densidad de la distribución normal estándar
# Crear la gráfica
plot(x, y, type = "l", lwd = 2, col = "blue", xlab = "Z", ylab = "Densidad",
main = "Distribución normal estándar y región de rechazo")
# Sombrear la región correspondiente al valor p (cola inferior)
x_shade <- seq(-4, z, length.out = 1000)
y_shade <- dnorm(x_shade)
polygon(c(-4, x_shade, z), c(0, y_shade, 0), col = "lightblue", border = NA)
# Añadir una línea vertical en el estadístico de prueba Z
abline(v = z, col = "red", lty = 2, lwd = 2)
# Añadir leyenda
legend("topright", legend = c("Distribución normal", "Región de rechazo (Valor p)", "Estadístico Z"),
col = c("blue", "lightblue", "red"), lwd = 2, lty = c(1, NA, 2), fill = c(NA, "lightblue", NA))
# Cargar librería para gráficos
#install.packages("ggplot2")
library(ggplot2)
# Parámetros
media_poblacion <- 60
desviacion_estandar <- 8 / sqrt(100) # Error estándar
nivel_significancia <- 0.05
valor_critico <- qnorm(nivel_significancia) # Valor crítico Z
# Crear un rango de valores para la distribución
x <- seq(media_poblacion - 4 * desviacion_estandar,
media_poblacion + 4 * desviacion_estandar,
length.out = 1000)
y <- dnorm(x, mean = media_poblacion, sd = desviacion_estandar)
# Crear un data frame para ggplot
datos <- data.frame(x = x, y = y)
# Gráfico
ggplot(datos, aes(x = x, y = y)) +
geom_line(color = "blue", size = 1) + # Curva de la distribución
geom_area(data = subset(datos, x <= media_poblacion + valor_critico * desviacion_estandar),
aes(x = x, y = y),
fill = "red", alpha = 0.5) + # Región de rechazo
geom_vline(xintercept = media_poblacion + valor_critico * desviacion_estandar,
color = "black", linetype = "dashed", size = 1) + # Línea del valor crítico
annotate("text", x = media_poblacion + valor_critico * desviacion_estandar,
y = 0.1, label = "Z crítico = -1.645",
hjust = 1.2, color = "black") + # Etiqueta del valor crítico
labs(title = "Región de rechazo para prueba de una cola (cola izquierda)",
x = "Media muestral",
y = "Densidad") +
theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Contexto: Tienda minorista con tiempos de espera promedio 1.5 minutos, varianza 1.0. ¿Cuál es la probabilidad de atender 100 clientes en menos de 2 horas (120 minutos)?
\[ \begin{aligned} \text{Datos: } &\mu = 1.5 \text{ min}, \sigma^2 = 1.0, n = 100 \\ \text{Tiempo total: } &T = \sum_{i=1}^{100} Y_i \\ \text{Objetivo: } &P(T \leq 120) = P\left(\frac{T}{100} \leq 1.2\right) \\ &= P(\bar{Y} \leq 1.2) \end{aligned} \]
Aplicación TLC: \(\bar{Y} \approx N(1.5, 0.01)\)
\[ \begin{aligned} P(\bar{Y} \leq 1.2) &= P\left(Z \leq \frac{1.2 - 1.5}{1/\sqrt{100}}\right) \\ &= P\left(Z \leq \frac{-0.3}{0.1}\right) \\ &= P(Z \leq -3.0) = 0.0013 \end{aligned} \]
Interpretación: Solo 0.13% de probabilidad de éxito
📉 Análisis de Riesgo
🔄 Estrategias de Mejora
🎓 TEOREMA DEL LÍMITE CENTRAL: APLICACIONES EN CONTEXTOS REALES
Elecciones políticas • Evaluación educativa • Gestión de servicios • Toma de decisiones basada en evidencia estadística
Teoría de estimación puntual, propiedades de estimadores y aplicaciones en inferencia estadística
“El objetivo de la estadística 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 en deducir inferencias acerca de ellos. Los procedimientos de la inferencia estadística involucran ya sea la estimación o la Prueba de Hipótesis, las cuales tienen muchas aplicaciones prácticas.”
“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.”
Dualidad: Precisión (varianza baja) + Exactitud (centrado en θ)
Se dice que la estadística \(\hat{\theta} = H(X_1, X_2, \dots, X_n)\) es un estimador insesgado del parámetro \(\theta\) si:
\[ E(\hat{\theta}) = \theta \]
Interpretación: En promedio, a largo plazo, el estimador da el valor correcto
\[ \text{Sea } Y_1, Y_2, \dots, Y_n \sim \text{i.i.d. con } E(Y_i) = \mu \\ \text{Estimador: } \bar{Y} = \frac{1}{n} \sum_{i=1}^n Y_i \\ E(\bar{Y}) = E\left(\frac{1}{n} \sum_{i=1}^n Y_i\right) = \frac{1}{n} \sum_{i=1}^n E(Y_i) = \frac{1}{n} \cdot n\mu = \mu \]
Conclusión: Ȳ es estimador insesgado de μ
✅ Estimador Insesgado
❌ Estimador Sesgado
| Parámetro θ | Estimador θ̂ | \(E(θ̂)\) | \(V(θ̂)\) |
|---|---|---|---|
| Media μ | \(\bar{Y}\) | μ | \(\frac{σ²}{n}\) |
| Proporción p | \(\hat{p} = Y/n\) | p | \(\frac{pq}{n}\) |
| Diferencia μ₁-μ₂ | \(\bar{Y}_1 - \bar{Y}_2\) | μ₁-μ₂ | \(\frac{σ₁²}{n₁} + \frac{σ₂²}{n₂}\) |
| Diferencia p₁-p₂ | \(\hat{p}_1 - \hat{p}_2\) | p₁-p₂ | \(\frac{p₁q₁}{n₁} + \frac{p₂q₂}{n₂}\) |
Contexto: ¿Por qué usamos \((n-1)\) en lugar de \(n\) en el denominador de la varianza muestral? Esta demostración explica una de las decisiones más importantes en estadística inferencial.
\[ S^{*2} = \frac{1}{n} \sum_{i=1}^n (Y_i - \bar{Y})^2 \\ E(S^{*2}) = \frac{(n-1)\sigma^2}{n} \]
Propiedades:
\[ S^{2} = \frac{1}{n-1} \sum_{i=1}^n (Y_i - \bar{Y})^2 \\ E(S^{2}) = \sigma^2 \]
Propiedades:
🎯 Por Qué Ocurre el Sesgo
📊 Implicaciones Prácticas
Sea \(Y_1, Y_2, \dots, Y_n\) una muestra aleatoria con \(E(Y_i) = \mu\) y \(V(Y_i) = \sigma^2\). Demuestre que:
Solución:
Paso 1: Expresamos \((Y_i - \bar{Y})^2\) como: \[ (Y_i - \bar{Y})^2 = Y_i^2 - 2Y_i \bar{Y} + \bar{Y}^2 \]
Paso 2: Sumamos sobre todas las observaciones: \[ \sum_{i=1}^n (Y_i - \bar{Y})^2 = \sum_{i=1}^n Y_i^2 - 2n \bar{Y}^2 + n \bar{Y}^2 = \sum_{i=1}^n Y_i^2 - n \bar{Y}^2 \]
Paso 3: Calculamos la esperanza: \[ E\left( \sum_{i=1}^n (Y_i - \bar{Y})^2 \right) = E\left( \sum_{i=1}^n Y_i^2 - n \bar{Y}^2 \right) = \sum_{i=1}^n E(Y_i^2) - n E(\bar{Y}^2) \]
Paso 4: Recordamos que: \[ E(Y_i^2) = \sigma^2 + \mu^2 \quad \text{y} \quad E(\bar{Y}^2) = \frac{\sigma^2}{n} + \mu^2 \]
Paso 5: Sustituimos: \[ 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 6: Por tanto: \[ E(S^{*2}) = \frac{1}{n} E\left( \sum_{i=1}^n (Y_i - \bar{Y})^2 \right) = \frac{(n-1)\sigma^2}{n} \] Esto muestra que \(S^{*2}\) es sesgado.
Paso 7: Para \(S^2\): \[ E(S^2) = \frac{1}{n-1} E\left( \sum_{i=1}^n (Y_i - \bar{Y})^2 \right) = \sigma^2 \] Por tanto, \(S^2\) es insesgado.
“Es razonable esperar que un buen estimador de un parámetro θ 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 θ.”
\[ \lim_{n \to \infty} \hat{\theta} = \theta \quad \text{o equivalentemente} \quad \lim_{n \to \infty} V(\hat{\theta}) = 0 \]
\[ \text{Para } \bar{Y} \text{ como estimador de } \mu: \\ V(\bar{Y}) = \frac{\sigma^2}{n} \\ \lim_{n \to \infty} V(\bar{Y}) = \lim_{n \to \infty} \frac{\sigma^2}{n} = 0 \]
Interpretación: A mayor n, menor varianza → mayor precisión
Sean \(\hat{\theta}_1\) y \(\hat{\theta}_2\) dos estimadores insesgados de θ. Se dice que \(\hat{\theta}_1\) es más eficiente que \(\hat{\theta}_2\) si:
\[ V(\hat{\theta}_1) \leq V(\hat{\theta}_2) \quad \text{y} \quad e = \frac{V(\hat{\theta}_1)}{V(\hat{\theta}_2)} \]
Donde \(e\) es la eficiencia relativa (0 ≤ e ≤ 1). Valores cercanos a 0 indican mayor eficiencia.
Para población normal:
Conclusión: La media es ~64% más eficiente que la mediana para distribuciones normales
Contexto: Encuesta de n = 1000 votantes muestra 560 a favor del candidato Gómez. Estimar la proporción poblacional p con límite de error.
\[ \text{Datos: } n = 1000, \quad Y = 560 \\ \hat{p} = \frac{Y}{n} = \frac{560}{1000} = 0.56 \\ E(\hat{p}) = p \quad (\text{insesgado}) \\ V(\hat{p}) = \frac{pq}{n} \]
Interpretación: Estimamos que 56% de votantes favorece a Gómez
\[ \text{Error: } b = 2\sigma_{\hat{p}} = 2\sqrt{\frac{pq}{n}} \\ \text{Usando } \hat{p} \approx p: \\ b \approx 2\sqrt{\frac{(0.56)(0.44)}{1000}} = 2\sqrt{0.0002464} \\ = 2 \times 0.0157 = 0.0314 \approx 0.03 \]
Interpretación: Error máximo ≈ ±3% con 95% confianza
Implementación de técnicas de muestreo para estudios estadísticos en criminología
“Un investigador criminológico necesita analizar la relación entre características antropométricas y patrones delictivos utilizando el dataset crimtab de R, que contiene 924 registros históricos. Debe seleccionar una muestra representativa de 30 casos utilizando diferentes métodos de muestreo y verificar la representatividad de cada muestra.”
A
MIA con R Base
B
dplyr sin reemplazo
C
Muestreo ponderado
D
Muestreo proporcional
E
Todas las anteriores
Análisis del dataset: • Total de registros: 924 casos históricos • Variables disponibles: Altura, perímetro torácico, frecuencia • Tipo de datos: Características antropométricas de individuos • Contexto histórico: Dataset clásico en estadística para demostración
El dataset crimtab es un conjunto de datos histórico que contiene medidas antropométricas de individuos, ampliamente utilizado en la enseñanza de técnicas estadísticas por su estructura clara y tamaño manejable.
Procedimiento MIA: • Configurar semilla para reproducibilidad • Especificar tamaño muestral: n = 30 casos • Seleccionar índices aleatorios sin reemplazo • Extraer observaciones correspondientes • Verificar representatividad de la muestra
Cada elemento de la población (924 casos) tiene igual probabilidad de ser seleccionado: 30/924 ≈ 3.25%. El muestreo sin reemplazo garantiza que no se repitan casos, asegurando independencia entre observaciones.
Ventajas del enfoque dplyr: • Sintaxis intuitiva y concisa • Integración perfecta con el operador pipe (%>%) • Funciones especializadas: sample_n() y sample_frac() • Facilidad para combinar con otras operaciones de manipulación • Mejor legibilidad del código
Características del muestreo ponderado: • La variable “Freq” indica frecuencia de combinaciones idénticas • Combinaciones más comunes tienen mayor probabilidad • Útil para estudiar patrones prevalentes • Permite análisis de subgrupos con diferente representación • Aplicación en estudios de características típicas
En crimtab, la columna “Freq” representa cuántos individuos tienen combinaciones idénticas de altura y perímetro torácico. Este tipo de muestreo es particularmente útil cuando se desea estudiar características que aparecen con mayor frecuencia en la población.
Ventajas del muestreo proporcional: • Mantiene proporción constante respecto a la población • Adaptable a cambios en el tamaño poblacional • Ideal para estudios longitudinales • Permite comparaciones consistentes en el tiempo • Fácil implementación con sample_frac()
El muestreo proporcional es especialmente útil en investigaciones que se repiten periódicamente o cuando el tamaño de la población objetivo varía significativamente. Garantiza que la muestra mantenga una relación constante con la población total.
Métodos de verificación: • Comparación de medias y desviaciones estándar • Análisis de distribuciones por percentiles • Pruebas de hipótesis de igualdad de medias • Inspección visual de histogramas • Cálculo de diferencias relativas • Evaluación de sesgos potenciales
Técnicas de visualización: • Histogramas comparativos de diferentes muestras • Gráficos de densidad superpuestos • Diagramas de caja para comparar distribuciones • Gráficos Q-Q para evaluar normalidad • Visualización de intervalos de confianza • Representación de diferencias entre muestras
Evaluación comparativa: • Comparación de estadísticos descriptivos • Análisis de diferencias entre métodos • Identificación del método más representativo • Consideración de objetivos de investigación • Evaluación de ventajas y limitaciones • Recomendaciones según contexto
Resultados obtenidos:
1. MIA R
Base: Enfoque fundamental con control total sobre el proceso de
selección 2. dplyr sample_n: Método moderno con
sintaxis elegante y alta legibilidad 3. Muestreo
ponderado: Técnica especializada que considera frecuencias
diferenciales 4. Muestreo proporcional: Enfoque
adaptable para estudios longitudinales
Recomendación para
investigación criminológica:
• Estudios
exploratorios: Muestreo simple por simplicidad
•
Datos con patrones repetidos: Muestreo ponderado para
análisis de frecuencias
• Estudios longitudinales:
Muestreo proporcional para consistencia temporal
• Máximo
control: Método base para validación de procesos
Respuesta correcta:
Todas las anteriores
Opción E
Cada método tiene aplicaciones específicas según el contexto de investigación
Observación clave: En investigación criminológica, la selección del método de muestreo depende críticamente de los objetivos específicos del estudio. Para análisis exploratorio de relaciones entre variables, el Muestreo Irrestricto Aleatorio simple es generalmente adecuado. Si se buscan patrones de combinaciones específicas o características prevalentes, el muestreo ponderado es preferible. Para monitoreo continuo o estudios comparativos en el tiempo, el muestreo proporcional mantiene consistencia metodológica. Por lo tanto, todos los métodos presentados son válidos y aplicables en diferentes contextos de investigación criminológica, siendo la elección dependiente de las preguntas de investigación específicas.
📊
Mejores prácticas en muestreo:
•
Reproducibilidad: Siempre establecer semilla aleatoria
para garantizar replicabilidad
• Documentación:
Registrar detalladamente el método de muestreo utilizado
•
Verificación: Comparar estadísticos muestrales con
parámetros poblacionales
• Selección contextual:
Elegir método según objetivos específicos de investigación
•
Validación: Evaluar representatividad mediante
múltiples indicadores
• Transparencia: Reportar
completamente el proceso de selección muestral
Aplicación criminológica específica:
Dataset
histórico crimtab con 924 registros
Muestra representativa de 30
casos
Análisis de relaciones antropométricas
Estudio de
características físicas
Investigación de patrones delictivos
Validación de hipótesis criminológicas
Conclusión clave: Este ejercicio demuestra la aplicación práctica de diferentes técnicas de muestreo en investigación criminológica. Cada método (Muestreo Irrestricto Aleatorio con R Base, dplyr, muestreo ponderado, muestreo proporcional) posee características distintivas y aplicaciones específicas según los objetivos del estudio. La verificación rigurosa de representatividad es esencial para garantizar la validez de las inferencias estadísticas. La respuesta correcta es que todas las técnicas presentadas son aplicables en contextos de investigación apropiados, siendo la selección óptima dependiente de las preguntas de investigación específicas y las características del conjunto de datos.
✅ SOLUCIÓN CORRECTA: OPCIÓN E - TODAS LAS ANTERIORES
Muestreo Irrestricto Aleatorio • dplyr • Ponderado • Proporcional
Cada técnica posee aplicaciones específicas en investigación criminológica según los objetivos del estudio
crime<-data.frame(crimtab)
dim(crime)
## [1] 924 3
#Selección de la muestra
#Tamaño de la muestra
n<-30
muestramia<- sample(1:nrow(crime),size=n,replace=FALSE)
muestramia
## [1] 608 539 408 420 492 586 439 197 175 55 335 436 653 4 595 917 551 123 532
## [20] 856 675 153 360 289 183 429 776 275 746 556
#Asignar los elementos de la muestra al data frame de datos
crimemuestramia<- crime[muestramia, ]
head(crimemuestramia)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#Muestra sin reemplazo
crimemuestramia2<- crime %>%
sample_n(size=n,replace=FALSE)
head(crimemuestramia2)
#Muestra con pesos
crimemuestramia3<- crime %>%
sample_n(size=n,weight=Freq)
head(crimemuestramia3)
#Muestra con una proporción de casos
crimemuestramia4<- crime %>%
sample_frac(0.05)
head(crimemuestramia4);dim(crimemuestramia4)
## [1] 46 3