Samuel Castillo 2025-11-12
##
## 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
N_total <- sum(strata_data$Nh)
strata_data <- strata_data %>% mutate(peso = Nh/N_total) %>% 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)## estrato x
## 1 A 10
## 2 A 20
## 3 A 15
## 4 B 20
## 5 B 30
## 6 C 35
temp <- c(poblacion_A, poblacion_B)
df_A <- data.frame(x = poblacion_A, estrato ="A")
df_B <- data.frame(x = poblacion_A, estrato ="B")
df_C <- data.frame(x = poblacion_A, estrato ="C")
df <- bind_rows(df_A, df_B, df_C)df <- data.frame(x = c(poblacion_A, poblacion_B, poblacion_C),
estrato = c(rep("Estrato A",N_A), rep("Estrato B", N_B), rep("Estraro C", N_C)))## [1] 67.56835
## # A tibble: 3 × 3
## estrato media_poblacional tamano
## <chr> <dbl> <int>
## 1 Estraro C 80.3 5000
## 2 Estrato A 50.1 3000
## 3 Estrato B 64.8 4000
set.seed(456)
sample_A <- sample(poblacion_A, size=100, replace=FALSE)
sample_B <- sample(poblacion_B, size=100, replace=FALSE)
sample_C <- sample(poblacion_C, size=100, replace=FALSE)
mean(sample_A)## [1] 50.8156
## [1] 62.06455
## [1] 80.25478
set.seed(456)
sample_A <- sample(poblacion_A, size=69, replace=FALSE)
sample_B <- sample(poblacion_B, size=150, replace=FALSE)
sample_C <- sample(poblacion_C, size=181, replace=FALSE)## [1] 68.21116