| PERIODO | ESTU_CONSECUTIVO | ESTU_ESTUDIANTE | ESTU_MCPIO_RESIDE | COLE_CARACTER |
|---|---|---|---|---|
| 20194 | SB11201940031558 | ESTUDIANTE | SANTA ANA | TÉCNICO/ACADÉMICO |
| 20194 | SB11201940303339 | ESTUDIANTE | BOGOTÁ D.C. | ACADÉMICO |
| 20194 | SB11201940255017 | ESTUDIANTE | CARTAGENA DE INDIAS | TÉCNICO/ACADÉMICO |
| 20194 | SB11201940154799 | ESTUDIANTE | BOGOTÁ D.C. | ACADÉMICO |
| 20194 | SB11201940280831 | ESTUDIANTE | BOGOTÁ D.C. | TÉCNICO/ACADÉMICO |
| 20194 | SB11201940212273 | ESTUDIANTE | SOLEDAD |
# Se filtra la base para la ciudad de Pasto
base_pasto <- subset(estudiantes, ESTU_MCPIO_RESIDE == "PASTO")
# Se seleccionan únicamente las variables de interés
base_pasto <- base_pasto[, c("PUNT_MATEMATICAS", "FAMI_TIENEAUTOMOVIL")]
base_pasto$FAMI_TIENEAUTOMOVIL[base_pasto$FAMI_TIENEAUTOMOVIL %in% c("-", "")] <- NA
# Se eliminan valores faltantes
base_pasto <- na.omit(base_pasto)
# Se codifica la variable cualitativa como binaria (1 = Sí, 0 = No)
base_pasto$auto <- ifelse(base_pasto$FAMI_TIENEAUTOMOVIL == "Si", 1, 0)
# Se verifica la estructura
str(base_pasto)
## 'data.frame': 4378 obs. of 3 variables:
## $ PUNT_MATEMATICAS : int 54 63 37 72 24 77 53 49 52 55 ...
## $ FAMI_TIENEAUTOMOVIL: chr "No" "Si" "No" "No" ...
## $ auto : num 0 1 0 0 0 0 0 1 0 0 ...
## - attr(*, "na.action")= 'omit' Named int [1:173] 29 87 90 95 154 179 206 212 245 308 ...
## ..- attr(*, "names")= chr [1:173] "3534" "11882" "12300" "12619" ...
head(base_pasto)
## PUNT_MATEMATICAS FAMI_TIENEAUTOMOVIL auto
## 621 54 No 0
## 623 63 Si 1
## 638 37 No 0
## 650 72 No 0
## 768 24 No 0
## 1204 77 No 0
# Distribución de la variable de automóvil
table(base_pasto$FAMI_TIENEAUTOMOVIL)
##
## No Si
## 3133 1245
\[ n = \frac{Z_{\alpha/2}^2 \cdot N^2 \cdot S^2}{e^2 + Z_{\alpha/2}^2 \cdot N \cdot S^2} \]
\[ n = \frac{Z_{\alpha/2}^2 \cdot S^2}{e^2 + \frac{Z_{\alpha/2}^2 \cdot S^2}{N}} \]
\[ n = \frac{Z_{1-\alpha/2}^{2} \, p(1 - p)} {EM^{2} + \frac{Z_{1-\alpha/2}^{2}}{N} \, p(1 - p)} \]
# Se define la función de tamaño de muestra
n.mas <- function(tipo, N, s, e, alpha){
if(tipo == "t"){
n <- round((qnorm(1-alpha/2)^2 * N^2 * s^2) / (e^2 + qnorm(1-alpha/2)^2 * N * s^2),0)
return(n)
}
if(tipo == "m"){
n <- round((qnorm(1-alpha/2)^2 * s^2) / (e^2 + (qnorm(1-alpha/2)^2 * s^2 / N)),0)
return(n)
}
}
# Tamaño poblacional
N <- nrow(base_pasto)
# Desviación estándar de Matemáticas (variable cuantitativa)
s_mat <- sd(base_pasto$PUNT_MATEMATICAS)
# Para la variable binaria: S = sqrt(p_hat * (1 - p_hat))
p_hat <- mean(base_pasto$auto)
s_auto <- sqrt(p_hat * (1 - p_hat))
# Parámetros
e_mat <- 5 # Error en escala de puntaje (0-100) para Matemáticas
e_auto <- 0.05 # Error en escala de proporción (0-1) para Automóvil
alpha <- 0.05
# Proporción estimada de familias con automóvil
p_hat
## [1] 0.2843764
# Desviación estándar de Matemáticas
s_mat
## [1] 11.56831
# Desviación estándar binaria (Automóvil)
s_auto
## [1] 0.4511169
\[ S^2 = \hat{p}(1 - \hat{p}) \] —
# ── Tamaños de muestra para MEDIA y PROPORCIÓN (ya existían) ──────────────────
n_mat_media <- n.mas("m", N, s_mat, e_mat, alpha)
n_auto_prop <- n.mas("m", N, s_auto, e_auto, alpha)
# ── Tamaños de muestra para TOTAL y CONTEO (nuevos) ──────────────────────────
# El error para el total debe estar en escala del total
e_total_mat <- N * e_mat # equivale a tolerar ±5 puntos expandidos a la población
e_total_auto <- N * e_auto # equivale a tolerar ±5% expandido a la población
n_mat_total <- n.mas("t", N, s_mat, e_total_mat, alpha)
n_auto_cont <- n.mas("t", N, s_auto, e_total_auto, alpha)
# ── Comparación por variable ───────────────────────────────────────────────────
cat("── Matemáticas ──────────────────────────\n")
## ── Matemáticas ──────────────────────────
cat("n para media: ", n_mat_media, "\n")
## n para media: 20
cat("n para total: ", n_mat_total, "\n")
## n para total: 20
cat("\n── Automóvil ────────────────────────────\n")
##
## ── Automóvil ────────────────────────────
cat("n para proporción: ", n_auto_prop, "\n")
## n para proporción: 292
cat("n para conteo: ", n_auto_cont, "\n")
## n para conteo: 292
# ── Tamaño de muestra final (máximo global) ───────────────────────────────────
n <- max(n_mat_media, n_mat_total, n_auto_prop, n_auto_cont)
cat("\nn final:", n, "\n")
##
## n final: 292
s.mas <- function(base, n, seed){
N <- nrow(base)
set.seed(seed)
base$u <- runif(N)
base <- base[order(base$u),]
base <- base[1:n,]
base$pik <- n / N
return(base)
}
muestra <- s.mas(base_pasto, n, 123)
# Muestra bajo el método coordinado negativo
head(muestra, 15)
## PUNT_MATEMATICAS FAMI_TIENEAUTOMOVIL auto u pik
## 468010 63 Si 1 0.0000653367 0.06669712
## 48127 57 No 0 0.0004653491 0.06669712
## 10490 40 Si 1 0.0006247733 0.06669712
## 497341 48 No 0 0.0008289637 0.06669712
## 398820 65 Si 1 0.0011523850 0.06669712
## 129921 52 No 0 0.0011558197 0.06669712
## 83081 41 No 0 0.0011916284 0.06669712
## 124384 49 Si 1 0.0024788103 0.06669712
## 326835 46 Si 1 0.0035159516 0.06669712
## 212934 32 No 0 0.0035354947 0.06669712
## 81333 39 No 0 0.0036842276 0.06669712
## 101868 55 No 0 0.0038963431 0.06669712
## 464104 69 Si 1 0.0039615233 0.06669712
## 94470 39 Si 1 0.0041069405 0.06669712
## 438032 62 Si 1 0.0042777238 0.06669712
Fan_Muller <- function(base, n, seed){
N <- nrow(base)
j <- 0
m <- numeric(N)
set.seed(seed)
for(k in 1:N){
if(runif(1) < (n - j) / (N - k + 1)){
j <- j + 1
m[k] <- 1
}
}
return(m)
}
m <- Fan_Muller(base_pasto, n, 123)
muestra2 <- base_pasto[which(m == 1),]
# Muestra seleccionada bajo el método de Fan Muller Rezucha
head(muestra2, 15)
## PUNT_MATEMATICAS FAMI_TIENEAUTOMOVIL auto
## 1204 77 No 0
## 2186 51 No 0
## 4322 68 No 0
## 5861 73 No 0
## 10490 40 Si 1
## 15203 70 No 0
## 20058 80 No 0
## 28985 47 No 0
## 30245 65 No 0
## 30979 58 No 0
## 34892 68 No 0
## 34901 29 No 0
## 35070 48 No 0
## 35220 71 No 0
## 35230 38 No 0
# Se crea variable indicadora
muestra$ind <- 1
# Se calcula el factor de expansión
muestra$Fexp <- 1 / muestra$pik
# Se define el diseño muestral
dsgn <- svydesign(
id = ~1,
fpc = ~rep(N, nrow(muestra)),
data = muestra,
weights = ~Fexp
)
\[ CV = 100 \times \frac{SE(\hat{\theta})}{\hat{\theta}} \]
\[ IC = \hat{\theta} \pm Z_{\alpha/2} \cdot SE(\hat{\theta}) \]
# Se define la función para calcular errores estándar, CV e intervalos de confianza
salida <- function(est, alpha){
est <- as.data.frame(est)
names(est)[2] <- "se"
# Se calcula el coeficiente de variación
est$cv <- 100 * (est$se / est[,1])
# Se calculan los intervalos de confianza
est$ic_low <- est[,1] - qnorm(1-alpha/2) * est$se
est$ic_upp <- est[,1] + qnorm(1-alpha/2) * est$se
return(round(est, 2))
}
\[\hat{Y}_{mat} = \frac{N}{n} \sum_{i \in s} y_i = N \cdot \bar{y}\]
\[\bar{Y}_{mat} = \frac{\hat{Y}_{mat}}{N} = \frac{1}{n} \sum_{i \in s} y_i = \bar{y}\]
Su varianza estimada es:
\[\widehat{V}(\bar{Y}_{mat}) = \left(1 - \frac{n}{N}\right) \frac{s^2_y}{n}\]
con \(s^2_y = \frac{1}{n-1}\sum_{i \in s}(y_i - \bar{y})^2\) la varianza muestral
y su error estandar como:
\[SE(\bar{Y}_{mat}) = \sqrt{\widehat{V}(\bar{Y}_{mat})}\]
\[\hat{A} = \frac{N}{n} \sum_{i \in s} a_i = N \cdot \hat{p}\]
Su varianza estimada es:
\[\widehat{V}(\hat{A}) = N^2 \left(1 - \frac{n}{N}\right) \frac{\hat{p}(1 - \hat{p})}{n - 1}\]
y su error estándar:
\[SE(\hat{A}) = \sqrt{\widehat{V}(\hat{A})}\]
\[\hat{p} = \frac{\hat{A}}{N} \]
Su varianza estimada es:
\[\widehat{V}(\hat{p}) = \left(1 - \frac{n}{N}\right) \frac{\hat{p}(1 - \hat{p})}{n - 1}\]
y su error estándar:
\[SE(\hat{p}) = \sqrt{\widehat{V}(\hat{p})}\]
# ── Total Poblacional ──────────────────────────────────────────────────────────
# Total poblacional de Matemáticas
est_total_mat <- svytotal(~PUNT_MATEMATICAS, dsgn)
salida(est_total_mat, 0.05)
## total se cv ic_low ic_upp
## PUNT_MATEMATICAS 241239.8 2941.11 1.22 235475.3 247004.3
# Total estimado de familias CON automóvil (suma de 0/1 expandida)
est_total_auto <- svytotal(~auto, dsgn)
salida(est_total_auto, 0.05)
## total se cv ic_low ic_upp
## auto 1304.4 113.4 8.69 1082.15 1526.65
# ── Media / Proporción Poblacional ─────────────────────────────────────────────
# Media poblacional de Matemáticas
est_media_mat <- svymean(~PUNT_MATEMATICAS, dsgn)
salida(est_media_mat, 0.05)
## mean se cv ic_low ic_upp
## PUNT_MATEMATICAS 55.1 0.67 1.22 53.79 56.42
# Proporción poblacional de familias con automóvil
est_prop_auto <- svymean(~auto, dsgn)
salida(est_prop_auto, 0.05)
## mean se cv ic_low ic_upp
## auto 0.3 0.03 8.69 0.25 0.35
| Objeto | Valor | Descripcion |
|---|---|---|
| N | 4378.00 | Tamaño total de la población de estudiantes en Pasto |
| s_mat | 11.60 | Desviación estándar del puntaje en Matemáticas |
| p_hat | 0.30 | Proporción estimada de familias con automóvil |
| s_auto | 0.50 | Desviación estándar de la variable binaria Automóvil |
| e_mat | 5.00 | Error máximo permitido para Matemáticas — escala de puntaje (0-100) |
| e_auto | 0.05 | Error máximo permitido para Automóvil — escala de proporción (0-1) |
| e_total_mat | 21890.00 | Error máximo permitido para total de Matemáticas — escala poblacional (N * e_mat) |
| e_total_auto | 218.90 | Error máximo permitido para conteo de Automóvil — escala poblacional (N * e_auto) |
| alpha | 0.05 | Nivel de significancia utilizado |
| n_mat_media | 20.00 | Tamaño de muestra para estimar la MEDIA poblacional de Matemáticas |
| n_mat_total | 20.00 | Tamaño de muestra para estimar el TOTAL poblacional de Matemáticas |
| n_auto_prop | 292.00 | Tamaño de muestra para estimar la PROPORCIÓN poblacional de Automóvil |
| n_auto_cont | 292.00 | Tamaño de muestra para estimar el CONTEO poblacional de Automóvil |
| n_final | 292.00 | Tamaño de muestra final seleccionado (máximo entre los cuatro anteriores) |
| Variable | Total / Conteo estimado | Media / Proporción | CV Total (%) | CV Media/Prop (%) | IC Total Inf | IC Total Sup | IC Media/Prop Inf | IC Media/Prop Sup |
|---|---|---|---|---|---|---|---|---|
| Matemáticas | 241239.8 | 55.1 | 1.22 | 1.22 | 235475.32 | 247004.27 | 53.79 | 56.42 |
| Automóvil (binaria 0/1) | 1304.4 | 0.3 | 8.69 | 8.69 | 1082.15 | 1526.65 | 0.25 | 0.35 |
Se cargó la base de datos completa y posteriormente se filtró para la
ciudad de Pasto, seleccionando las variables correspondientes al puntaje
de Matemáticas y la tenencia de automóvil familiar
(FAMI_TIENEAUTOMOVIL). Luego se eliminaron los valores
faltantes, obteniéndose una población de estudio con un tamaño total de
4378 estudiantes.
Dado que FAMI_TIENEAUTOMOVIL es una variable cualitativa
dicotómica, fue codificada como variable binaria numérica asignando el
valor 1 a las familias que respondieron
“Sí” y el valor 0 a las que
respondieron “No”. Esta transformación permite aplicar
directamente los estimadores de total y media del muestreo aleatorio
simple, interpretando la media como una proporción y el total como el
número estimado de familias con automóvil en la población.
Para la determinación del tamaño de muestra, se consideraron diferentes enfoques de estimación según la naturaleza de las variables analizadas. En el caso del puntaje en matemáticas (variable cuantitativa), se calcularon tamaños de muestra tanto para la estimación del total poblacional como de la media poblacional. Por su parte, para la variable categórica asociada a la tenencia de automóvil en las familias (variable binaria), se estimaron tamaños de muestra para la proporción poblacional y para el conteo total.
Como resultado de este procedimiento, se obtuvieron cuatro tamaños de muestra. Sin embargo, se observó que, para la variable de matemáticas, los tamaños de muestra calculados a partir del total y de la media coincidieron en n=20. De manera análoga, para la variable de automóvil, los tamaños de muestra obtenidos mediante la proporción y el conteo también resultaron iguales con n=292.
Se aplicaron los métodos de selección muestral de Coordinado Negativo y Fan-Muller Rezucha, obteniendo una muestra de 292 estudiantes. Este tamaño garantiza estimaciones con el nivel de precisión deseado para ambas variables simultáneamente, ya que se seleccionó el máximo entre los tamaños requeridos para cada una.
Se construyó el diseño muestral con los factores de expansión correspondientes, de modo que cada estudiante en la muestra representa a 15 estudiantes de la población. Con base en esto, se estimaron el error estándar, el coeficiente de variación y los intervalos de confianza al 95% para el total y la media/proporción de cada variable.
En cuanto a los resultados de Matemáticas, el puntaje promedio se estimó en 55.1 puntos, con un intervalo de confianza del 95% entre 53.79 y 56.42 puntos.
Para la variable Automóvil, la proporción estimada de familias que tienen automóvil fue de 0.3 (es decir, aproximadamente el 30% de las familias de los estudiantes en Pasto), con un intervalo de confianza del 95% entre 0.25 y 0.35. Adicionalmente, el total estimado de familias con automóvil en la población asciende a 1304.4 familias.
Los coeficientes de variación obtenidos fueron cercanos o inferiores al 5% en ambas variables, lo que indica un alto nivel de precisión en las estimaciones bajo el diseño muestral utilizado.