Basic Example

Samuel Castillo 2025-11-12

Librerias

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
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)
df <- data.frame(
  estrato = c("A","A","A","B","B","C"),
  x = c(10,20,15,20,30,35)
)
df
##   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)))
mean(df$x)
## [1] 67.56835
summarise(group_by(df, estrato), media_poblacional = mean(x), tamano = n())
## # 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
mean(sample_B)
## [1] 62.06455
mean(sample_C)
## [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)
mean(sample_A)*(3/12)+mean(sample_B)*(4/12)+mean(sample_C)*5/12
## [1] 68.21116
hist(poblacion_A)

hist(poblacion_B)

hist(poblacion_C)