Objetivo del material En cada ejercicio recordamos qué se estima, cómo se calcula, y cómo se interpreta el intervalo de confianza (IC), con gráficos que sombrean el rango del IC.


1 Ejercicio 1 · IC para la diferencia de medias (varianzas iguales, 95%)

Idea pedagógica. Cuando asumimos varianzas poblacionales iguales y muestras independientes, usamos la varianza combinada (pooled) para estimar el error estándar. El IC para \(\mu_1 - \mu_2\) se basa en la distribución t con \(n_1 + n_2 - 2\) g.l.

Datos y cálculo paso a paso

# Datos
x1_barra <- 135
x2_barra <- 122
s1 <- 15
s2 <- 10
n1 <- n2 <- 20

# Varianza combinada (pooled)
sp2 <- ((n1 - 1)*s1^2 + (n2 - 1)*s2^2) / (n1 + n2 - 2)
sp <- sqrt(sp2)

# Error estándar
se <- sp * sqrt(1/n1 + 1/n2)

# Grados de libertad y t crítico
df <- n1 + n2 - 2
t_crit <- qt(0.975, df)  # 95% bilateral

# Intervalo de confianza
diff_means <- x1_barra - x2_barra
lim_inf <- diff_means - t_crit * se
lim_sup <- diff_means + t_crit * se

resultado1 <- data.frame(
  diferencia_muestral = diff_means,
  se = se,
  gl = df,
  t_critico = t_crit,
  IC95_low = lim_inf,
  IC95_high = lim_sup
)
resultado1
##   diferencia_muestral       se gl t_critico IC95_low IC95_high
## 1                  13 4.031129 38  2.024394 4.839406  21.16059

Interpretación. “Con 95% de confianza, la diferencia real de medias \((\mu_1-\mu_2)\) está entre los límites del IC. Si 0 no cae dentro del intervalo, hay evidencia de diferencia.”

Gráfico del IC (normal aproximada sobre la diferencia muestral)

library(ggplot2)

x_vals <- seq(diff_means - 4*se, diff_means + 4*se, length.out = 1000)
dens_vals <- dnorm(x_vals, mean = diff_means, sd = se)
data_plot <- data.frame(x = x_vals, y = dens_vals)

ggplot(data_plot, aes(x = x, y = y)) +
  geom_line() +
  geom_area(data = subset(data_plot, x >= lim_inf & x <= lim_sup),
            aes(x = x, y = y), alpha = 0.5) +
  geom_vline(xintercept = c(lim_inf, lim_sup), linetype = "dashed") +
  geom_vline(xintercept = diff_means, linetype = "dotted") +
  labs(title = "IC 95% para la diferencia de medias (var. iguales)",
       x = "Diferencia de medias", y = "Densidad")


2 Ejercicio 2 · IC para la diferencia de medias (varianzas distintas, Welch, 98%)

Idea pedagógica. Cuando no asumimos varianzas iguales, usamos el IC de Welch: el error estándar combina \(s_x^2/n_x + s_y^2/n_y\) y los grados de libertad se aproximan con la fórmula de Welch–Satterthwaite. Para 98% usamos \(t_{0.99,\,gl}\) en prueba bilateral.

Datos y cálculo paso a paso

# Datos
nx <- 200
ny <- 150
sum_x <- 11460
sum_y <- 8565
var_x <- 9
var_y <- 16

x_bar <- sum_x / nx
y_bar <- sum_y / ny
diff <- x_bar - y_bar

se2 <- var_x/nx + var_y/ny
se <- sqrt(se2)

# gl (Welch-Satterthwaite)
df <- se2^2 / ((var_x^2)/(nx^2*(nx-1)) + (var_y^2)/(ny^2*(ny-1)))

# t_crit para 98% bilateral
t_crit <- qt(0.99, df)

# IC 98%
lim_inf <- diff - t_crit * se
lim_sup <- diff + t_crit * se

resultado2 <- data.frame(
  x_bar = x_bar, y_bar = y_bar,
  diferencia_muestral = diff,
  se = se, gl_aprox = df,
  t_critico_98 = t_crit,
  IC98_low = lim_inf, IC98_high = lim_sup
)
resultado2
##   x_bar y_bar diferencia_muestral       se gl_aprox t_critico_98   IC98_low
## 1  57.3  57.1                 0.2 0.389444  265.815     2.340458 -0.7114774
##   IC98_high
## 1  1.111477

Interpretación. “El 98% de confianza nos da un intervalo más ancho que el 95% (somos más conservadores). Fijate si 0 queda adentro o afuera para juzgar evidencia de diferencia.”

Gráfico del IC (normal aproximada sobre la diferencia muestral)

x_vals2 <- seq(diff - 4*se, diff + 4*se, length.out = 1000)
dens_vals2 <- dnorm(x_vals2, mean = diff, sd = se)
data_plot2 <- data.frame(x = x_vals2, y = dens_vals2)

ggplot(data_plot2, aes(x = x, y = y)) +
  geom_line() +
  geom_area(data = subset(data_plot2, x >= lim_inf & x <= lim_sup),
            aes(x = x, y = y), alpha = 0.5) +
  geom_vline(xintercept = c(lim_inf, lim_sup), linetype = "dashed") +
  geom_vline(xintercept = diff, linetype = "dotted") +
  labs(title = "IC 98% para la diferencia de medias (Welch)",
       x = "Diferencia de medias", y = "Densidad")


3 Ejercicio 10 · IC para la media y la varianza de cotizaciones (95%)

Idea pedagógica. Para la media con \(\sigma\) desconocida usamos t con \(n-1\) g.l. Para la varianza usamos chi-cuadrado (\(\chi^2\)) bajo normalidad. Los gráficos sombrean el rango de confianza.

Cálculo paso a paso

cotizaciones <- c(142.07, 142.42, 128.32, 129.36, 139.23, 130.76, 135.95, 119.17,
                  128.90, 133.71, 139.40, 139.04, 148.73, 138.19, 126.68, 139.02,
                  117.56, 125.27, 127.35, 143.96, 121.43, 142.20, 143.64, 143.64)

media <- mean(cotizaciones)
desvio <- sd(cotizaciones)
n <- length(cotizaciones)
se <- desvio / sqrt(n)
t_crit <- qt(0.975, df = n - 1)  # 95%

lim_inf <- media - t_crit * se
lim_sup <- media + t_crit * se

res_media <- data.frame(media=media, sd=desvio, se=se, gl=n-1,
                        t_crit_95=t_crit, IC95_low=lim_inf, IC95_high=lim_sup)

# Varianza (IC 95%) con chi-cuadrado
alpha <- 0.05
var_muestral <- var(cotizaciones)
chi_inf <- qchisq(1 - alpha/2, df = n - 1)
chi_sup <- qchisq(alpha/2,     df = n - 1)

lim_var_inf <- (n - 1) * var_muestral / chi_inf
lim_var_sup <- (n - 1) * var_muestral / chi_sup

res_var <- data.frame(var_muestral=var_muestral,
                      IC95_var_low=lim_var_inf, IC95_var_high=lim_var_sup)

list(res_media=res_media, res_var=res_var)
## $res_media
##      media      sd       se gl t_crit_95 IC95_low IC95_high
## 1 134.4167 8.70335 1.776564 23  2.068658 130.7416  138.0918
## 
## $res_var
##   var_muestral IC95_var_low IC95_var_high
## 1     75.74829     45.75659      149.0527

Interpretación. “Para la media, si repetimos el muestreo muchas veces, el 95% de los intervalos construidos así contendrían a \(\mu\). Para la varianza, el IC depende de la \(\chi^2\) bajo normalidad: por eso los límites no son simétricos.”

Gráfico IC de la media (normal aproximada)

x_vals_media <- seq(media - 4*se, media + 4*se, length.out = 1000)
dens_vals_media <- dnorm(x_vals_media, mean = media, sd = se)
data_media <- data.frame(x = x_vals_media, y = dens_vals_media)

ggplot(data_media, aes(x = x, y = y)) +
  geom_line() +
  geom_area(data = subset(data_media, x >= lim_inf & x <= lim_sup),
            aes(x = x, y = y), alpha = 0.5) +
  geom_vline(xintercept = c(lim_inf, lim_sup), linetype = "dashed") +
  geom_vline(xintercept = media, linetype = "dotted") +
  labs(title = "IC 95% para la media de cotizaciones",
       x = "Media", y = "Densidad")

Gráfico IC de la varianza (curva \(\chi^2\) transformada a escala de varianzas)

var_vals <- seq(lim_var_inf * 0.5, lim_var_sup * 1.5, length.out = 1000)
dens_var <- dchisq((n - 1) * var_muestral / var_vals, df = n - 1) * (n - 1) * var_muestral / var_vals^2
data_var <- data.frame(x = var_vals, y = dens_var)

ggplot(data_var, aes(x = x, y = y)) +
  geom_line() +
  geom_area(data = subset(data_var, x >= lim_var_inf & x <= lim_var_sup),
            aes(x = x, y = y), alpha = 0.5) +
  geom_vline(xintercept = c(lim_var_inf, lim_var_sup), linetype = "dashed") +
  geom_vline(xintercept = var_muestral, linetype = "dotted") +
  labs(title = "IC 95% para la varianza de cotizaciones (vía χ²)",
       x = "Varianza", y = "Densidad")


4 Ejercicio 15 · IC para el cociente de varianzas (90%)

Idea pedagógica. Para comparar dispersión entre dos grupos, el IC del cociente de varianzas \(\sigma_12/\sigma_22\) usa la F con g.l. \((n_1-1, n_2-1)\). Cuidado: el IC no es simétrico y depende del orden del cociente.

Cálculo paso a paso

estu1 <- c(10, 10, 12, 13, 9, 8, 12, 12, 10, 14, 8)
estu2 <- c(11, 8, 9, 7, 10, 8, 8, 10)

var1 <- var(estu1)
var2 <- var(estu2)
F_calc <- var1 / var2
gl1 <- length(estu1) - 1
gl2 <- length(estu2) - 1

alpha <- 0.10  # 90% bilateral => 0.95 y 0.05
lim_inf <- F_calc / qf(1 - alpha/2, gl1, gl2)
lim_sup <- F_calc / qf(alpha/2, gl1, gl2)

resultado15 <- data.frame(
  var1=var1, var2=var2, F_calc=F_calc, gl1=gl1, gl2=gl2,
  IC90_ratio_low=lim_inf, IC90_ratio_high=lim_sup
)
resultado15
##       var1     var2   F_calc gl1 gl2 IC90_ratio_low IC90_ratio_high
## 1 4.018182 1.839286 2.184643  10   7      0.6007504         6.84987

Interpretación. “Si el IC incluye 1, no hay evidencia de diferencia en varianzas. Si está todo por encima de 1, sugiere que la varianza del numerador es mayor; si está por debajo, es menor.”

Gráfico (densidad F sobre el rango del IC)

f_vals <- seq(lim_inf * 0.5, lim_sup * 1.5, length.out = 1000)
dens_f <- df(f_vals, df1 = gl1, df2 = gl2)
data_f <- data.frame(x = f_vals, y = dens_f)

ggplot(data_f, aes(x = x, y = y)) +
  geom_line() +
  geom_area(data = subset(data_f, x >= lim_inf & x <= lim_sup),
            aes(x = x, y = y), alpha = 0.5) +
  geom_vline(xintercept = c(lim_inf, lim_sup), linetype = "dashed") +
  geom_vline(xintercept = F_calc, linetype = "dotted") +
  labs(title = "IC 90% para σ1²/σ2² (vía F)",
       x = "Cociente de varianzas (σ1²/σ2²)", y = "Densidad")


Nota final. Los IC dependen del modelo probabilístico (normalidad) y del tamaño muestral. .