library(ggplot2)
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
Poblacion
# Definir los datos de los estratos manualmente
stratum <- c("A", "B", "C")
Nh <- c(3000, 4000, 5000) # Tamaños de población por estrato
Sh <- c(48, 79, 76) # Desviaciones estándar por estrato
# Combinar en un data frame para mejor manejo
strata_data <- data.frame(stratum, Nh, Sh)
strata_data
## stratum Nh Sh
## 1 A 3000 48
## 2 B 4000 79
## 3 C 5000 76
strata_data <- strata_data %>%
mutate(peso = Nh/sum(Nh)) %>%
mutate(nh = round(400*peso,0)) %>%
mutate(peso_optimo = Nh*Sh) %>%
mutate(nh_optimo = round(400*peso_optimo/sum(peso_optimo),0))
strata_data
## stratum Nh Sh peso nh peso_optimo nh_optimo
## 1 A 3000 48 0.2500000 100 144000 69
## 2 B 4000 79 0.3333333 133 316000 150
## 3 C 5000 76 0.4166667 167 380000 181
set.seed(123)
# Parámetros poblacionales
N_A <- 3000; mu_A <- 50; sigma_A <- 10; poblacion_A <- rnorm(N_A, mean = mu_A, sd = sigma_A)
N_B <- 4000; mu_B <- 65; sigma_B <- 25; poblacion_B <- rnorm(N_B, mean = mu_B, sd = sigma_B)
N_C <- 5000; mu_C <- 80; sigma_C <- 50; poblacion_C <- rnorm(N_C, mean = mu_C, sd = sigma_C)
N_total <- sum(N_A, N_B, N_C)
set.seed(456)
sample_A <- sample(poblacion_A, size = 100, replace = FALSE)
sample_B <- sample(poblacion_B, size = 133, replace = FALSE)
sample_C <- sample(poblacion_C, size = 167, replace = FALSE)
mean(sample_A)
## [1] 50.8156
mean(sample_B)
## [1] 64.764
mean(sample_C)
## [1] 80.00295