Distribuciones Muestrales

Logo UC
Logo UC

Cuando se selecciona una muestra aleatoria de una población, las medidas numéricas descriptivas que se calculen de la muestra se denominan estadísticas. Las estadísticas varían o cambian para cada muestra aleatoria diferente que se escoja; esto es, son variables aleatorias. Las distribuciones de probabilidad para estadísticas se llaman distribuciones muestrales porque, en muestreos repetidos, dan esta información:

  • Qué valores de la estadística pueden presentarse
  • Con qué frecuencia se presenta cada valor

La distribución muestral de una estadística es la distribución de probabilidad para los posibles valores de la estadística, que resulta cuando muestras aleatorias de tamaño n se sacan repetidamente de la población.

Ejemplo: Lanzamiento de un Dado

Deduciremos la distribución de probabilidad del lanzamiento de un dado. Sea \(x\) la variable aleatoria: valor obtenido al lanzar un dado.

\(x\) 1 2 3 4 5 6
\(P(x)\) 1/6 1/6 1/6 1/6 1/6 1/6

El gráfico de la distribución de probabilidad será:

# Crear el data frame para el gráfico
datos_dado <- data.frame(
  x = 1:6,
  px = rep(1/6, 6)
)

# Crear el gráfico de barras con ggplot2
ggplot(datos_dado, aes(x = as.factor(x), y = px)) +
  geom_bar(stat = "identity", fill = "red", alpha = 0.8) +
  ylim(0, 0.5) +
  labs(
    title = "Gráfico de probabilidad de lanzamiento de un dado",
    x = "Resultado (x)",
    y = "Probabilidad P(x)"
  ) +
  theme_minimal()

Simulación de Lanzamientos

Realicemos el lanzamiento de 2 dados y encontremos su valor promedio.

# Definir los posibles resultados de un dado
posibles_resultados <- 1:6

# Simular el lanzamiento de 2 dados (con reemplazo)
lanzamiento_2_dados <- sample(posibles_resultados, size = 2, replace = TRUE)
print(lanzamiento_2_dados)
## [1] 4 6
# Calcular el promedio del lanzamiento
media <- mean(lanzamiento_2_dados)
print(media)
## [1] 5

¿Qué sucede si se realiza el lanzamiento de los dados en muchas ocasiones? Por ejemplo, 10 veces.

# Pre-asignar una matriz para los resultados y un vector para las medias
num_simulaciones <- 10
num_dados <- 2
resultados_matriz <- matrix(NA, nrow = num_simulaciones, ncol = num_dados)
medias <- numeric(num_simulaciones)

# Ciclo for para las simulaciones
for (i in 1:num_simulaciones) {
  lanzamiento <- sample(posibles_resultados, size = num_dados, replace = TRUE)
  resultados_matriz[i, ] <- lanzamiento
  medias[i] <- mean(lanzamiento)
}

# Crear un data frame con los resultados
resultados_df <- as.data.frame(resultados_matriz)
resultados_df$Media <- medias

# Mostrar los resultados
print(resultados_df)
##    V1 V2 Media
## 1   5  3   4.0
## 2   5  4   4.5
## 3   4  6   5.0
## 4   6  5   5.5
## 5   3  3   3.0
## 6   3  4   3.5
## 7   3  1   2.0
## 8   5  4   4.5
## 9   5  1   3.0
## 10  2  3   2.5

Ejercicio: Simulación de 100 lanzamientos de 3 dados.

A continuación, se presenta el código modificado para realizar 100 simulaciones del lanzamiento de 3 dados y visualizar la distribución de sus medias.

# Parámetros del ejercicio
num_simulaciones_ej <- 100
num_dados_ej <- 3
medias_ej <- numeric(num_simulaciones_ej)

# Ciclo de simulación
for (i in 1:num_simulaciones_ej) {
  lanzamiento <- sample(posibles_resultados, size = num_dados_ej, replace = TRUE)
  medias_ej[i] <- mean(lanzamiento)
}

# Crear un data frame y graficar el histograma
df_medias_ej <- data.frame(Media = medias_ej)
ggplot(df_medias_ej, aes(x = Media)) +
  geom_histogram(aes(y = ..density..), bins = 15, fill = "darkblue", color = "white", alpha = 0.8) +
  geom_density(color = "red", size = 1) +
  labs(
    title = "Histograma de Medias (100 simulaciones, n=3)",
    x = "Promedio",
    y = "Densidad"
  ) +
  theme_minimal()

Teorema del Límite Central

Si muestras aleatorias de n observaciones se sacan de una población (incluso no normal) con media finita \(\mu\) y desviación estándar \(\sigma\), entonces, cuando n es grande, la distribución de muestreo de la media muestral \(\bar{x}\) está distribuida normalmente en forma aproximada, con media \(\mu\) y desviación estándar (error estándar) \(\frac{\sigma}{\sqrt{n}}\).

La aproximación se hace más precisa cuando n se hace grande.

¿Cuándo el tamaño muestral es lo suficiente grande?

  • Si la población muestreada es normal, la distribución muestral de \(\bar{x}\) también será normal, sin importar el tamaño de la muestra.
  • Cuando la población muestreada es aproximadamente simétrica, la distribución muestral de \(\bar{x}\) se vuelve normal para valores relativamente pequeños de n.
  • Cuando la población muestreada está sesgada, el tamaño muestral n debe ser más grande, con n ≥ 30 como regla general para que la distribución muestral de \(\bar{x}\) se aproxime a la normal.

Técnicas de Muestreo

Razones para muestrear:

  1. Tiempo: Estudiar toda la población requeriría mucho tiempo.
  2. Costo: El costo de un censo completo resultaría prohibitivo.
  3. Naturaleza destructiva: Algunas pruebas destruyen el elemento estudiado.
  4. Suficiencia: Los resultados de la muestra suelen ser adecuados para la toma de decisiones.

Muestreo Aleatorio Simple

Es el tipo de muestreo más común, donde cada elemento de la población tiene la misma posibilidad de ser incluido.

Pasos:

  1. Determinar el tamaño de la muestra.
Parámetro Tamaño de la población conocida Tamaño de la población no conocida
\(\mu\) \(n\geq \frac{N\times Z_{1-\frac{\alpha}{2}}^2\times \sigma^2}{e^2\times(N-1)+Z_{1-\frac{\alpha}{2}}^2\times\sigma^2}\) \(n\geq \frac{Z_{1-\frac{\alpha}{2}}^2\times\sigma^2}{e^2}\)
\(\pi\) \(n\geq \frac{N\times Z_{1-\frac{\alpha}{2}}^2\times\pi(1-\pi)}{e^2\times(N-1)+Z_{1-\frac{\alpha}{2}}^2\times\pi(1-\pi)}\) \(n\geq \frac{Z_{1-\frac{\alpha}{2}}^2\times\pi(1-\pi)}{e^2}\)
  1. Numerar los individuos de 1 a N (marco muestral).
  2. Generar unidades al azar con igual probabilidad.
  3. Seleccionar y obtener la información de la muestra.

Ejemplo: Marco’s Pizza

Se tiene una lista de 24 pizzerías. Se calculará el tamaño de muestra y se seleccionará una.

# Crear el DataFrame de las tiendas
datos_pizza <- data.frame(
  ID = c(2607, 309, 2652, 630, 3510, 5055, 3382, 2525, 303, 149, 835, 3501, 2040, 2116, 3678, 1419, 1234, 4624, 5155, 106, 6725, 4252, 2036, 1316),
  Direccion = c('Starr Av', 'W Alexis Rd', 'W Central Av', 'Dixie Hwy', 'Dorr St', 'Glendale Av', 'Lagrange St', 'W Laskey Rd', 'Louisiana Av', 'Main', 'S McCord Rd', 'Monroe St', 'Ottawa River Rd', 'N Reynolds Rd', 'Rugby Dr', 'South Av', 'W Sylvania Av', 'Woodville Rd', 'S Main', 'E Airport Hwy', 'W Central', 'Monroe', 'Woodville Rd', 'Michigan Av')
)

# Parámetros para el cálculo
N <- nrow(datos_pizza)      # Tamaño de la población
sigma2 <- 10                # Varianza poblacional supuesta
e <- 2.1                    # Error máximo permitido
confianza <- 0.90           # Nivel de confianza

# Calcular alfa y el cuantil Z
alpha <- 1 - confianza
z_alpha_half <- qnorm(1 - alpha / 2)

# Calcular el tamaño de la muestra (fórmula para población finita)
numerador <- N * z_alpha_half^2 * sigma2
denominador <- e^2 * (N - 1) + z_alpha_half^2 * sigma2
n_float <- numerador / denominador
n <- ceiling(n_float) # Redondear hacia arriba

# Imprimir resultados
cat(paste("Tamaño de población (N):", N, "\n"))
## Tamaño de población (N): 24
cat(paste("Varianza poblacional (sigma^2):", sigma2, "\n"))
## Varianza poblacional (sigma^2): 10
cat(paste("Error máximo permitido (e):", e, "\n"))
## Error máximo permitido (e): 2.1
cat(paste("Nivel de confianza:", confianza * 100, "%\n"))
## Nivel de confianza: 90 %
cat(paste("Valor Z:", round(z_alpha_half, 4), "\n"))
## Valor Z: 1.6449
cat(paste("Tamaño de muestra calculado (n):", n, "\n\n"))
## Tamaño de muestra calculado (n): 6
# Seleccionar la muestra aleatoria
indices_muestra <- sample(1:N, size = n, replace = FALSE)

cat("Índices de la muestra seleccionada:\n")
## Índices de la muestra seleccionada:
print(indices_muestra)
## [1]  6  3 14  1 16 11
# Obtener los datos de la muestra
datos_muestra <- datos_pizza[indices_muestra, ]

cat("\nDatos de la muestra seleccionada:\n")
## 
## Datos de la muestra seleccionada:
print(datos_muestra)
##      ID     Direccion
## 6  5055   Glendale Av
## 3  2652  W Central Av
## 14 2116 N Reynolds Rd
## 1  2607      Starr Av
## 16 1419      South Av
## 11  835   S McCord Rd

Estimación de Parámetros

Se busca usar la información de una muestra para estimar un parámetro poblacional.

  • Estimación puntual: Un solo número para estimar el parámetro.
  • Estimación de intervalo: Un rango de valores donde se espera que esté el parámetro.

Estimación por Intervalo

Un Intervalo de Confianza (IC) es un rango que, con una alta probabilidad (coeficiente de confianza \(1-\alpha\)), contiene el parámetro de interés.

1. IC de muestra grande para una media poblacional \(\mu\)

\[\bar{X}\pm Z_{1-\alpha/2}\frac{S}{\sqrt{n}}\]

Ejemplo: Ingesta de Lácteos

Una muestra de \(n = 50\) hombres mostró una ingesta diaria promedio de \(\bar{X}=756\) gramos, con una desviación estándar de \(S=35\) gramos. Construya un IC del \(95\%\) para la media poblacional.

# Datos del problema
media_muestral <- 756
s <- 35
n <- 50
confianza <- 0.95
alpha <- 1 - confianza

# Calcular el valor Z
z_val <- qnorm(1 - alpha / 2)

# Calcular límites del intervalo
error_estandar <- s / sqrt(n)
limite_inferior <- media_muestral - z_val * error_estandar
limite_superior <- media_muestral + z_val * error_estandar

cat(paste("Límite Inferior:", round(limite_inferior, 2), "\n"))
## Límite Inferior: 746.3
cat(paste("Límite Superior:", round(limite_superior, 2), "\n"))
## Límite Superior: 765.7
# Alternativa usando una función
# R base no tiene una función directa para Z-intervalo, pero podemos crearla
# o usar la fórmula de manera compacta
ic <- media_muestral + c(-1, 1) * qnorm(1 - alpha/2) * (s / sqrt(n))
print(ic)
## [1] 746.2987 765.7013

Gráfico del Intervalo de Confianza

# Función para graficar la distribución y el IC
plot_dist_ic <- function(media, se, confianza, titulo) {
  alpha <- 1 - confianza
  li <- media - qnorm(1 - alpha/2) * se
  ls <- media + qnorm(1 - alpha/2) * se
  
  ggplot(data.frame(x = c(media - 4*se, media + 4*se)), aes(x)) +
    stat_function(fun = dnorm, args = list(mean = media, sd = se), color = "black") +
    stat_function(fun = dnorm, args = list(mean = media, sd = se),
                  xlim = c(li, ls), geom = "area", fill = "blue", alpha = 0.5) +
    labs(title = titulo, x = "Valores", y = "Densidad") +
    geom_vline(xintercept = c(li,ls), linetype = "dashed", color = "red") +
    theme_minimal()
}

plot_dist_ic(media = 756, se = 35 / sqrt(50), confianza = 0.95, 
             titulo = "Distribución de la Media con IC del 95%")

Simulación de Intervalos de Confianza

Esta simulación muestra cómo, si repetimos el muestreo 100 veces, aproximadamente el 95% de los IC del 95% contendrán el verdadero parámetro poblacional (\(\mu\)).

set.seed(1012) # Para reproducibilidad
mu_real <- 1.5
sigma_real <- 1
alpha <- 0.05
num_replicaciones <- 100
tamano_muestra <- 50

# Generar una población "grande"
poblacion <- rnorm(10^6, mean = mu_real, sd = sigma_real)

# Matriz para guardar los intervalos
intervalos <- matrix(NA, nrow = num_replicaciones, ncol = 2)

# Función para calcular IC de una muestra
calcular_ic_z <- function(x, sigma, alpha) {
  n <- length(x)
  media_x <- mean(x)
  z_valor <- qnorm(1 - alpha/2)
  se <- sigma / sqrt(n)
  return(c(media_x - z_valor * se, media_x + z_valor * se))
}

# Realizar las replicaciones
for (i in 1:num_replicaciones) {
  muestra <- sample(poblacion, size = tamano_muestra, replace = TRUE)
  intervalos[i, ] <- calcular_ic_z(muestra, sigma_real, alpha)
}

# Graficar los resultados
plot(c(1.2, 1.8), c(1, num_replicaciones), type = "n", 
     xlab = "Valores", ylab = "Replicaciones",
     main = "Simulación de 100 Intervalos de Confianza (95%)")
abline(v = mu_real, col = "black", lwd = 2, lty = 2)

for (i in 1:num_replicaciones) {
  color_intervalo <- "grey"
  # Si el intervalo NO contiene la media real, pintarlo de rojo
  if (mu_real < intervalos[i, 1] || mu_real > intervalos[i, 2]) {
    color_intervalo <- "red"
  }
  segments(intervalos[i, 1], i, intervalos[i, 2], i, col = color_intervalo, lwd = 2)
}

De media, un \(\alpha \times 100\%\) de las veces, un intervalo de confianza del \((1-\alpha)\times 100\%\) no contendrá el valor real del parámetro.

Por ejemplo, de media, un \(5\%\) de las veces un intervalo de confianza del \(95\%\) no contendrá el valor real del parámetro.

2. IC de muestra grande para una proporción poblacional \(\pi\)

\[p\pm Z_{1-\alpha/2}\sqrt{\frac{p(1-p)}{n}}\]

Se considera grande cuando \(np>5\) y \(n(1-p)>5\).

Ejemplo: Encuesta Electoral

De 985 electores, 592 apoyan a una candidata. Construya un IC del \(90\%\).

# Datos
n <- 985
x <- 592
confianza <- 0.90
alpha <- 1 - confianza

# Proporción muestral
p_muestral <- x / n

# Comprobar condición de muestra grande
cat(paste("np =", round(n * p_muestral, 2), "(> 5, OK)\n"))
## np = 592 (> 5, OK)
cat(paste("n(1-p) =", round(n * (1 - p_muestral), 2), "(> 5, OK)\n\n"))
## n(1-p) = 393 (> 5, OK)
# Calcular el IC
z_val <- qnorm(1 - alpha/2)
se_p <- sqrt(p_muestral * (1 - p_muestral) / n)
ic_prop <- p_muestral + c(-1, 1) * z_val * se_p

cat(paste("El IC del 90% para la proporción es: [", round(ic_prop[1], 4), ", ", round(ic_prop[2], 4), "]\n"))
## El IC del 90% para la proporción es: [ 0.5754 ,  0.6267 ]

Como todo el intervalo está por encima de 0.50, se puede concluir que es probable que la candidata gane.

Ejercicios

1. Experimento de Electrólisis En un experimento, \(n= 30\) estudiantes calcularon una media muestral de cobre precipitado de 0.145 moles y una desviación estándar de 0.0051 moles. Encuentre un IC del \(90\%\).

2. Reproductores MP3 Un estudio indicó que \(54\%\) de los jóvenes entre 12 y 17 años (muestra de 400), y \(30\%\) de los de entre 18 y 34 años (muestra de 350), tienen reproductores MP3. > - Construya un IC del \(95\%\) para la proporción de personas entre 12 y 17 años. > - Construya un IC del \(95\%\) para la proporción de personas entre 18 y 34 años.

3. Paquetes de Carne Molida Una muestra de 35 paquetes de carne produjo un promedio de 1.01 libras y una desviación estándar de 0.18 libras. > - Construya un IC del \(99\%\) para el peso promedio. > - ¿Qué significa la frase “99% de confianza”? > - Si el objetivo del control de calidad es que el peso promedio sea 1 libra, ¿debería interesarles este IC? Explique.

4. Encuesta sobre Aborto Una encuesta a \(n=1002\) adultos mostró que \(39\%\) favorecía la postura del “derecho a la vida” y \(53\%\) estaba “a favor de la elección libre”. > - Construya un IC del \(90\%\) para la proporción de adultos a favor del “derecho a la vida”. > - Construya un IC del \(90\%\) para la proporción de adultos “a favor de la elección libre”.