COMPARATIVA ENTRE MUESTREO ALEATORIO SIMPLE Y MUESTREO ESTRATIFICADO

Aplicación de caso:

La comparación entre ambos tipos de muestreo se realizará para al estimación del promedio de peso de cerdos de 77 días de edad, y parte de una base de datos de más de 30,000 registros.

Para evaluar la precisión de la estimación se realizará una simulación de 100 Muestreos Aleatorios Simples y 100 Muestreos Estratificados, se calculará el promedio para cada una de las simulaciones y luego se calculará el promedio de los promedios y se compararán con el promedio real de la población.

MUESTREO ALEATORIO SIMPLE

\(n = \frac{N * (Z \alpha/2)^2 * \delta^2} {e^2 * (N-1) + (Z \alpha/2)^2 * \delta^2}\)

Confianza del 95% y un error de estimación de 3 libras

ene <- n_media_finita(N = nrow(datos), alfa = 0.05, ds = 15, e = 3)

ene
## [1] 96

Se realizó una simulación de 100 Muestreo Aleatorios Simples y se obtuvo el promedio de cada uno de ellos, luego se realizó un promedio de promedios para reducir el margen de error basado en la teoría del Límite Central que indica que el promedio de todas las muestras es igual al promedio poblacional.

set.seed(10)
for(i in 1:100) {
  i <- data.frame(Promedio = cummean(sample(datos$Peso,size = ene, replace = F)))
}

(promedio_100_MAS <- round(i$Promedio[ene],2))
## [1] 68.51
#Promedio real 
(promedio_real <- round(mean(datos$Peso),2))
## [1] 66.88
abs(promedio_100_MAS - promedio_real) 
## [1] 1.63

MUESTREO ESTRATIFICADO

La idea de estratificar una población es reducir la varianza ocasionada por el muestreo en sí, ya que a diferencia de un MAS, el muestreo estratificado permite obtener una muestra más homogenea y más representativa de la población, esto aplica siempre y cuando hayan estratos bien definidos, de lo contrario no habrá un beneficio en aplicar este método de muestreo.

Los estratos que se aplicarán aquí son “Pequeños” para cerdos menores a 56 libras, “Medianos” para cerdos menores a 70 libras y mayores a 56 libras, y “Grandes” para cerdos de 70 libras o más.

datos_estratificados <- datos %>% 
  mutate(Estrato = ifelse(Peso <= 56, "Pequeno",
                            ifelse(Peso < 70, "Mediano", "Grande")))
(muestras_por_estrato <- datos_estratificados %>%  
  count(Estrato) %>% 
  mutate(Proporcion = n * 100 / sum(n),
         Muestra = round(Proporcion / 100 * ene, 2)))
## # A tibble: 3 x 4
##   Estrato     n Proporcion Muestra
##   <chr>   <int>      <dbl>   <dbl>
## 1 Grande  12728       42.4    40.7
## 2 Mediano 11125       37.1    35.6
## 3 Pequeno  6162       20.5    19.7
#Estrato grande
estrato_g <- datos_estratificados %>% 
  filter(Estrato == "Grande") %>% 
  select(Peso)

set.seed(10)
for(i in 1:100) {
  i = data.frame(Suma_g = cumsum(sample(estrato_g$Peso, size = 41, replace = F)))
}
#Estrato mediano
estrato_m <- datos_estratificados %>% 
  filter(Estrato == "Mediano") %>% 
  select(Peso)

set.seed(10)  
for(j in 1:100) {
  j = data.frame(Suma_m = cumsum(sample(estrato_m$Peso, size = 35, replace = F)))
}
#Estrato pequeño
estrato_p <- datos_estratificados %>% 
  filter(Estrato == "Pequeno") %>% 
  select(Peso)

set.seed(10)  
for(k in 1:100) {
  k = data.frame(Suma_p = cumsum(sample(estrato_p$Peso, size = 20, replace = F)))
}
(promedio_100_MES <- round((i$Suma_g[41] + j$Suma_m[35] + k$Suma_p[20]) / ene, 2))
## [1] 66.02
round(abs(promedio_real-promedio_100_MES),2) 
## [1] 0.86

Conclusión