2 . Media de la población(Varianza poblacional conocida)
Supongamos que tenemos una muestra de 50 estudiantes (\(n=50\)) con una altura media de \(\bar{x} = 170\) cm. Sabemos que la desviación estándar poblacional es \(\sigma = 8\) cm. Construiremos un intervalo de confianza del 95% para la altura media poblacional (\(\mu\)).
Con un 99% de confianza, el tiempo medio de carga poblacional \(\mu\) se encuentra entre 36.96 y 38.16 segundos.
GRAFICA
Code
# Parámetros de la distribución tdf <-14# Grados de libertad (ejemplo para n=15)conf_level <-0.95alpha <-1- conf_level# Calcular valor crítico tt_critical <-qt(1- alpha/2, df)# Crear secuencia de datosx <-seq(-4, 4, length.out =500)y <-dt(x, df)# Configurar el área de gráficoplot(x, y, type ="l", lwd =2, col ="blue",main =paste("Distribución t de Student (df =", df, ")"),xlab ="Valor t", ylab ="Densidad de probabilidad",ylim =c(0, max(y)*1.1),xaxs ="i", yaxs ="i")# Sombrear el área de confianza (central)x_conf <-seq(-t_critical, t_critical, length.out =100)y_conf <-dt(x_conf, df)polygon(c(x_conf, rev(x_conf)), c(y_conf, rep(0, length(y_conf))), col ="#4DAF4A", border =NA, density =20, angle =45)# Sombrear las colasx_left_tail <-seq(min(x), -t_critical, length.out =100)y_left_tail <-dt(x_left_tail, df)polygon(c(x_left_tail, rev(x_left_tail)), c(y_left_tail, rep(0, length(y_left_tail))), col ="#E41A1C", border =NA, density =20, angle =-45)x_right_tail <-seq(t_critical, max(x), length.out =100)y_right_tail <-dt(x_right_tail, df)polygon(c(x_right_tail, rev(x_right_tail)), c(y_right_tail, rep(0, length(y_right_tail))), col ="#E41A1C", border =NA, density =20, angle =-45)# Añadir líneas verticalesabline(v =0, col ="red", lwd =2, lty =2)abline(v =c(-t_critical, t_critical), col ="darkgreen", lwd =2)# Añadir etiquetas y leyendatext(0, max(y)*0.9, paste("Intervalo de confianza del", conf_level*100, "%"), col ="darkgreen", cex =1.1)text(-t_critical -0.8, max(y)*0.15, expression(alpha/2), col ="darkred", cex =1.5)text(t_critical +0.8, max(y)*0.15, expression(alpha/2), col ="darkred", cex =1.5)text(-t_critical, 0, paste("t =", round(-t_critical, 3)), pos =1, col ="darkgreen", cex =0.9)text(t_critical, 0, paste("t =", round(t_critical, 3)), pos =1, col ="darkgreen", cex =0.9)legend("topright", legend =c("Distribución t", "Media (t=0)", "Valores críticos", "Área de confianza", "Áreas de rechazo"),col =c("blue", "red", "darkgreen", "#4DAF4A", "#E41A1C"),lwd =c(2, 2, 2, 8, 8), lty =c(1, 2, 1, 1, 1),bty ="n", cex =0.8)
3 . Media de Población (Varianza poblacional desconocida)
Enunciado
Se midió el tiempo de carga (en segundos) de 15 páginas web obteniendo los siguientes valores: \[38.7,\ 36.8,\ 37.2,\ 38.1,\ 35.9,\ 37.5,\ 38.3,\ 36.4,\ 38.0,\ 37.7,\ 38.2,\ 36.6,\ 38.4,\ 37.9,\ 36.3\] Construya un intervalo de confianza del 99% para el tiempo medio de carga poblacional (\(\mu\)).
En una muestra de 200 estudiantes universitarios, 50 son fumadores habituales. Calcula un intervalo de confianza del 95% para la proporción real de fumadores.
Interpretación: Con un 95% de confianza, la verdadera varianza poblacional (σ²) se encuentra entre 20.824 y 76.784, y la desviación estándar poblacional (σ) entre 4.5638 y 8.7626.
GRÁFICA
Code
# Código para gráfico de distribución t-Student con área sombreada (CORREGIDO)# Configuración de parámetrosgrados_libertad <-9# Grados de libertad (n-1)nivel_confianza <-0.95# Nivel de confianzaalpha <-1- nivel_confianza# Calcular valores críticost_critico <-qt(1- alpha/2, df = grados_libertad)# Crear secuencia de valores para el eje xx <-seq(-4, 4, length.out =300)# Calcular densidad de probabilidaddensidad <-dt(x, df = grados_libertad)# Crear data frame para ggplotdatos <-data.frame(x = x, densidad = densidad)# Crear el gráficolibrary(ggplot2)ggplot(datos, aes(x = x, y = densidad)) +# Línea de la distribucióngeom_line(color ="#41c2cd", linewidth =1.2) +# Área central (intervalo de confianza)geom_area(data =subset(datos, x >=-t_critico & x <= t_critico),fill ="#41c2cd", alpha =0.5) +# Líneas verticales para valores críticosgeom_vline(xintercept =c(-t_critico, t_critico),linetype ="dashed", color ="#d62728", linewidth =0.8) +# Etiquetas de valores críticosannotate("text", x =-t_critico -0.2, y =0.02,label =paste0("t[", alpha/2, "] == ", round(-t_critico, 3)),parse =TRUE, color ="#bc41cd", hjust =1) +annotate("text", x = t_critico +0.2, y =0.02,label =paste0("t[", 1- alpha/2, "] == ", round(t_critico, 3)),parse =TRUE, color ="#bc41cd", hjust =0) +# Áreas de colageom_area(data =subset(datos, x <=-t_critico),fill ="#c44e52", alpha =0.3) +geom_area(data =subset(datos, x >= t_critico),fill ="#c44e52", alpha =0.3) +# Etiquetas de áreaannotate("text", x =-t_critico -1.2, y =0.05,label =expression(alpha/2), size =6, color ="#c44e52") +annotate("text", x = t_critico +1.2, y =0.05,label =expression(alpha/2), size =6, color ="#c44e52") +# CORRECCIÓN: Cambié 'level' por 'nivel_confianza'annotate("text", x =0, y =0.15,label =paste0(nivel_confianza*100, "% de confianza"),size =5, color ="#2ca02c") +# Configuración de ejes y temalabs(title =paste0("Distribución t-Student (", grados_libertad, " gl)"),subtitle =paste0("Intervalo de confianza del ", nivel_confianza*100, "%"),x ="Valor t", y ="Densidad de probabilidad") +theme_minimal() +theme(plot.title =element_text(face ="bold", size =14, hjust =0.5),plot.subtitle =element_text(size =12, hjust =0.5),axis.title =element_text(size =12),axis.text =element_text(size =10))
6 . Diferencia de las medidas de dos poblaciones (Varianzas Conocidas)
Teoría
Para dos poblaciones independientes con varianzas conocidas \(\sigma_1^2\) y \(\sigma_2^2\), el intervalo de confianza del \((1-\alpha)\times 100\%\) para \(\mu_1 - \mu_2\) es: \[
\mu_1 - \mu_2 \in \left( \bar{x}_1 - \bar{x}_2 \pm z_{\alpha/2} \sqrt{\frac{\sigma_1^2}{n_1} + \frac{\sigma_2^2}{n_2}} \right)
\] donde \(z_{\alpha/2}\) es el valor crítico de la distribución normal estándar.
Margen de error: \(E = 1.96 \times 2.319 \approx 4.545\)
Intervalo de confianza:
\[
(0.455,\ 9.545)
\]
Interpretación: Con 95% de confianza, \(\mu_1 - \mu_2 \in (0.455,\ 9.545)\). Existe evidencia de que el Método A es superior.
FRÁFICA
Code
# Código para generar el gráfico de la distribución normal con área sombreadacurve(dnorm(x), from =-4, to =4, main ="Distribución Normal Estándar\nIntervalo de Confianza (1-α)", xlab ="Z", ylab ="Densidad",lwd =2,col ="blue",ylim =c(0, 0.4),xaxs ="i", yaxs ="i")# Nivel de confianza (95%)conf_level <-0.95alpha <-1- conf_levelz_critical <-qnorm(1- alpha/2) # Valor crítico z# Sombrear el área central (intervalo de confianza)x_shaded <-seq(-z_critical, z_critical, length.out =100)y_shaded <-dnorm(x_shaded)polygon(c(-z_critical, x_shaded, z_critical), c(0, y_shaded, 0), col =rgb(0, 0.5, 1, alpha =0.3), border =NA)# Agregar líneas y etiquetas para los valores críticosabline(v =c(-z_critical, z_critical), lty =2, col ="magenta")text(-z_critical, -0.01, expression(-z[alpha/2]), pos =1, col ="magenta", cex =1.2)text(z_critical, -0.01, expression(z[alpha/2]), pos =1, col ="magenta", cex =1.2)# Agregar línea en y=0abline(h =0, col ="purple")# Agregar leyendalegend("topright", legend =c("Densidad normal", "95% Intervalo de Confianza", "Valores críticos"),col =c("gold", rgb(0, 0.5, 1, alpha =0.5), "pink"),lty =c(1, 1, 2), lwd =c(2, 10, 1),bty ="n")# Agregar anotación del nivel de confianzatext(0, dnorm(0)/3, paste0(conf_level*100, "%"), cex =1.5)
7 . Diferencia de las medidas de dos poblaciones (Varianzas desconocidas e iguales)
Con un 95% de confianza, la diferencia real \(\mu_1 - \mu_2\) está entre \(-0.527\) y \(8.527\). Como el intervalo incluye el cero, no hay evidencia de diferencia significativa entre los métodos.
FRÁFICA
Code
# Cargar bibliotecas necesariaslibrary(ggplot2)# Parámetrosgl <-25# Grados de libertadconfianza <-0.95alpha <-1- confianzat_critico <-qt(1- alpha/2, gl) # Valor crítico# Crear secuencia de valores para tx <-seq(-4, 4, length.out =300)y <-dt(x, df = gl)datos <-data.frame(x, y)# Crear regiones para sombrearregion_confianza <-subset(datos, x >=-t_critico & x <= t_critico)region_cola_izq <-subset(datos, x <=-t_critico)region_cola_der <-subset(datos, x >= t_critico)# Crear la gráficaggplot(datos, aes(x, y)) +geom_line(color ="blue", linewidth =1) +# Sombrear área de confianza (95%)geom_ribbon(data = region_confianza, aes(ymin =0, ymax = y), fill ="skyblue", alpha =0.7) +# Sombrear áreas de rechazogeom_ribbon(data = region_cola_izq, aes(ymin =0, ymax = y), fill ="gray", alpha =0.5) +geom_ribbon(data = region_cola_der, aes(ymin =0, ymax = y), fill ="gray", alpha =0.5) +# Líneas críticasgeom_vline(xintercept =c(-t_critico, t_critico), linetype ="dashed", color ="violet") +geom_vline(xintercept =0, linetype ="solid", color ="black") +# Anotacionesannotate("text", x =0, y =0.2, label ="95% de confianza", color ="darkblue", size =5) +annotate("text", x =-2.8, y =0.05, label ="2.5%", color ="white", size =4) +annotate("text", x =2.8, y =0.05, label ="2.5%", color ="white", size =4) +geom_segment(aes(x =-t_critico, y =-0.005, xend = t_critico, yend =-0.005),arrow =arrow(ends ="both", length =unit(0.2, "cm"))) +# Etiquetas y temalabs(title ="Distribución t-Student para 25 grados de libertad",subtitle =paste0("Intervalo de confianza del 95% (t crítico = ±", round(t_critico, 3), ")"),x ="Valor t", y ="Densidad de probabilidad") +theme_minimal() +theme(plot.title =element_text(hjust =0.5, face ="bold"),plot.subtitle =element_text(hjust =0.5),legend.position ="none")
8 . Diferencia de las medidas de dos poblaciones (Varianzas desconocidas y distintas)
Teoría: Intervalo de Confianza para \(\mu_1 - \mu_2\) (Varianzas Desconocidas y Distintas)
Cuando tenemos dos poblaciones independientes con varianzas desconocidas y diferentes (\(\sigma_1^2 \neq \sigma_2^2\)), utilizamos la aproximación de Welch-Satterthwaite:
El intervalo de confianza \((-0.803, 8.803)\) contiene el cero (\(0\)), lo que indica que:
No existe evidencia suficiente para afirmar que hay diferencia significativa entre los métodos Con 95% de confianza, la verdadera diferencia de medias podría estar entre -0.803 y 8.803 El método A podría ser entre 0.803 puntos peor y 8.803 puntos mejor que el método B.
Grados libertad (\(v\)) &= 21.95
Valor crítico (\(t\)) &= 2.080
Diferencia medias &= 4
Límite inferior &= -0.803
Límite superior &= 8.803
GRÁFICA
Code
# Código para generar gráfico de distribución t-Student con área sombreada# Parámetros del ejemplo anteriorn1 <-20media1 <-28.5var1 <-16.2n2 <-18media2 <-25.8var2 <-22.5confianza <-0.99alpha <-1- confianza# Cálculo de grados de libertadnumerador <- (var1/n1 + var2/n2)^2denominador <- (var1/n1)^2/(n1-1) + (var2/n2)^2/(n2-1)v <- numerador/denominador# Valor crítico tt_critico <-qt(1- alpha/2, df = v)# Crear secuencia de valores para el eje xx <-seq(-4, 4, length.out =400)# Calcular densidad de la distribución ty <-dt(x, df = v)# Configurar área de gráficoplot(x, y, type ="l", lwd =2, col ="violet",xlab ="Valor t", ylab ="Densidad",main =paste("Distribución t-Student (v =", round(v, 2), ")"),cex.main =1.2, cex.lab =1.1)# Añadir línea en y=0abline(h =0, col ="gray")# Sombrear el área central (intervalo de confianza)x_fill <-seq(-t_critico, t_critico, length.out =100)y_fill <-dt(x_fill, df = v)polygon(c(-t_critico, x_fill, t_critico), c(0, y_fill, 0), col =rgb(0.7, 0.9, 1, 0.5), border =NA)# Sombrear las colasx_left <-seq(min(x), -t_critico, length.out =50)y_left <-dt(x_left, df = v)polygon(c(min(x), x_left, -t_critico), c(0, y_left, 0), col =rgb(1, 0.7, 0.7, 0.5), border =NA)x_right <-seq(t_critico, max(x), length.out =50)y_right <-dt(x_right, df = v)polygon(c(t_critico, x_right, max(x)), c(0, y_right, 0), col =rgb(1, 0.7, 0.7, 0.5), border =NA)# Añadir líneas críticasabline(v =c(-t_critico, t_critico), col ="red", lty =2, lwd =2)# Añadir etiquetastext(0, dt(0, df = v)*0.7, paste0(confianza*100, "%"), cex =1.2, col ="darkblue")text(-t_critico -0.5, dt(0, df = v)*0.3, paste0("-t = ", round(-t_critico, 3)), col ="red", pos =2)text(t_critico +0.5, dt(0, df = v)*0.3, paste0("t = ", round(t_critico, 3)), col ="red", pos =4)# Leyendalegend("topright", legend =c(paste("Distribución t(v =", round(v, 2), ")"),paste("Valores críticos ±", round(t_critico, 3)),paste("Nivel de confianza:", confianza*100, "%")),col =c("pink", "yellow", NA), lty =c(1, 2, NA), lwd =c(2, 2, NA),fill =c(NA, NA, rgb(0.7, 0.9, 1, 0.5)), border =NA,cex =0.9,box.lty =0)# Añadir fórmulatext(2.5, 0.25, expression(paste(mu[1]-mu[2], " ∈ (", bar(x)[1]-bar(x)[2], " ± ", t[alpha/2], sqrt(frac(s[1]^2, n[1]) +frac(s[2]^2, n[2])), ")")), cex =0.9, pos =2)
9 . Cociente de las variaciones de dos poblaciones
Un laboratorio evalúa la precisión de dos cronómetros. Se realizan 15 mediciones con el cronómetro A y 12 con el cronómetro B. Los datos muestrales son:
Cronómetro A: \(S^{2}_{A}=0.81 milisegundos^{2}\)
Cronometro B: \(S^{2}_{B}=0.49 milisegundos^{2}\)
Nivel de confianza: 99%
Intervalo de Confianza para el Cociente de Varianzas
Fundamentos Teóricos
El intervalo se construye usando la distribución F de Snedecor:
Límite superior &= \(1.653 \times 3.87 \approx 6.397\)
Intervalo de confianza al \(99\%\):
\[
\boxed{(0.440,\ 6.397)}
\]
GRÁFICA
Code
# Versión optimizada para evitar errores de paréntesiscreate_f_plot <-function(df1, df2, alpha, x_max =6) {# Cálculos previos F_lower <-qf(alpha/2, df1, df2) F_upper <-qf(1- alpha/2, df1, df2) x <-seq(0, x_max, length.out =1000) y <-df(x, df1, df2) df_plot <-data.frame(x = x, y = y)# Construir gráfico por partes p <-ggplot(df_plot, aes(x = x, y = y)) +geom_line(color ="blue", linewidth =1)# Áreas sombreadas p <- p +geom_ribbon(data =subset(df_plot, x <= F_lower),aes(ymax = y, ymin =0), fill ="red", alpha =0.5 ) p <- p +geom_ribbon(data =subset(df_plot, x >= F_upper),aes(ymax = y, ymin =0), fill ="red", alpha =0.5 ) p <- p +geom_ribbon(data =subset(df_plot, x >= F_lower & x <= F_upper),aes(ymax = y, ymin =0), fill ="green", alpha =0.3 )# Líneas y anotaciones p <- p +geom_vline(xintercept = F_lower, linetype ="dashed", color ="darkred") p <- p +geom_vline(xintercept = F_upper, linetype ="dashed", color ="darkred") p <- p +annotate("text", x = F_lower -0.3, y =0.02, label =sprintf("F[0.005]==%.3f", F_lower), color ="darkred", parse =TRUE, size =3.5) p <- p +annotate("text", x = F_upper +0.5, y =0.02, label =sprintf("F[0.995]==%.3f", F_upper), color ="darkred", parse =TRUE, size =3.5) p <- p +annotate("text", x =mean(c(F_lower, F_upper)), y =0.1, label =sprintf("%.0f%% de confianza", (1-alpha)*100), color ="darkgreen", size =5)# Títulos y tema p +labs(title =sprintf("Distribución F (df1 = %d, df2 = %d)", df1, df2),subtitle =sprintf("Intervalo de confianza del %.0f%%", (1-alpha)*100),x ="Valor F", y ="Densidad de probabilidad" ) +xlim(0, x_max) +theme_minimal() +theme(plot.title =element_text(hjust =0.5, face ="bold"),plot.subtitle =element_text(hjust =0.5))}# Usar la funcióncreate_f_plot(df1 =11, df2 =14, alpha =0.01)
10 . Diferencia de las proporciones de dos poblaciones
El intervalo de confianza incluye el 0 \(\rightarrow\) No hay diferencia significativa.
El valor-p > \(\alpha\)\(\rightarrow\) No se rechaza \(H_0\).
En conclusión las proporciones son estadísticamente iguales.
GRÁFICA
Code
# Instalar paquetes si son necesarios# install.packages("ggplot2")# install.packages("dplyr")# install.packages("ggthemes")library(ggplot2)library(dplyr)# Parámetros de la distribucióndf <-498# Grados de libertad (n1 + n2 - 2 = 200 + 300 - 2)conf_level <-0.95alpha <-1- conf_level# Calcular valores críticost_critical <-qt(1- alpha/2, df)# Crear datos para la curva tcurve_data <-data.frame(x =seq(-4, 4, length.out =1000)) %>%mutate(y =dt(x, df))# Crear datos para el área sombreadashaded_area <- curve_data %>%filter(x >=-t_critical & x <= t_critical)# Crear el gráficoggplot(curve_data, aes(x = x, y = y)) +# Línea de la curva tgeom_line(color ="#1f77b4", linewidth =1.2) +# Área sombreada para el intervalo de confianzageom_ribbon(data = shaded_area, aes(ymin =0, ymax = y), fill ="#1f77b4", alpha =0.4) +# Líneas de los valores críticosgeom_vline(xintercept =c(-t_critical, t_critical), color ="red", linetype ="dashed", linewidth =1) +# Etiquetas de los valores críticosannotate("text", x =-t_critical -0.3, y =0.02, label =paste0("-t* = ", round(-t_critical, 3)), color ="red", size =4) +annotate("text", x = t_critical +0.3, y =0.02, label =paste0("t* = ", round(t_critical, 3)), color ="red", size =4) +# Etiqueta del intervalo de confianzaannotate("text", x =0, y =0.1, label =paste0(conf_level*100, "% de confianza"), size =5, fontface ="bold") +# Títulos y etiquetaslabs(title ="Distribución t-Student para Diferencia de Proporciones",subtitle =paste("Grados de libertad =", df),x ="Valor t", y ="Densidad de Probabilidad",caption ="Área sombreada: Intervalo de confianza") +# Tema y estilotheme_minimal(base_size =14) +theme(plot.title =element_text(face ="bold", hjust =0.5),plot.subtitle =element_text(hjust =0.5),panel.grid.major =element_line(color ="gray90"),panel.grid.minor =element_blank(),axis.line =element_line(color ="black") )
11 . Conlusión trabajo
Los intervalos de confianza son herramientas fundamentales en inferencia estadística que permiten estimar parámetros poblacionales con un nivel de certeza predefinido. Su interpretación clave es: “Si repitiéramos el muestreo infinitas veces, el (1-α)% de los intervalos contendrían el verdadero parámetro poblacional”.