El muestreo sistemático es un método probabilístico para seleccionar una muestra de una población dividiéndola en intervalos y eligiendo un elemento a intervalos regulares. Se calcula un intervalo $ k$ dividiendo el tamaño total de la población entre el tamaño de la muestra deseada. Se elige un punto de partida aleatorio y luego se seleccionan los elementos de forma secuencial a partir de ese punto, tomando cada k-ésimo elemento de la lista.
Método probabilístico: Todos los miembros de la población tienen la misma probabilidad de ser seleccionados.
Intervalo fijo: Se elige un intervalo \(k\) y se selecciona a los participantes cada \(k\) pasos en la lista.
Punto de partida aleatorio: Se inicia la selección en un punto elegido al azar para evitar sesgos.
Define la población y el tamaño de la muestra:Determina el grupo completo que quieres estudiar y cuántos individuos necesitas en tu muestra.
Crea una lista completa de la población: Asegúrate de tener una lista ordenada de todos los miembros de la población.
Calcula el intervalo \(k\): Divide el tamaño de la población entre el tamaño de la muestra.
Fórmula:
\[ k = \frac{N}{n} \]
Donde: - \(N\) es el tamaño de la población - \(n\) es el tamaño de la muestra
Elige un punto de partida aleatorio:Selecciona un número aleatorio entre 1 y \(k\).
Selecciona la muestra: Empieza con el número aleatorio elegido y luego selecciona cada k-ésimo elemento de la lista para completar tu muestra.
Ejemplo: en una lista de empleados, tomar cada 10.º nombre.
Ejemplo
N <- 1000
n <- 100
k <- floor(N / n)
r <- 3 # arranque "fijo" para que no cambie (o usa set.seed + sample(1:k,1))
idx <- seq(from = r, to = r + k*(n-1), by = k)
idx
## [1] 3 13 23 33 43 53 63 73 83 93 103 113 123 133 143 153 163 173
## [19] 183 193 203 213 223 233 243 253 263 273 283 293 303 313 323 333 343 353
## [37] 363 373 383 393 403 413 423 433 443 453 463 473 483 493 503 513 523 533
## [55] 543 553 563 573 583 593 603 613 623 633 643 653 663 673 683 693 703 713
## [73] 723 733 743 753 763 773 783 793 803 813 823 833 843 853 863 873 883 893
## [91] 903 913 923 933 943 953 963 973 983 993
¿Cuál es el peso promedio de una población de 1500 personas y cómo puede estimarse de manera precisa mediante un muestreo sistemático?
1.BASE DE DATOS Cargamos la base de datos de 1500 perosnas las cuales se les preguntó el peso en Kilogramos y las horas de sueño
library(readr)
datos <- read_csv("C:/Users/JUAN PABLO/Downloads/datos_muestreo_enumerado.csv")
## Rows: 1500 Columns: 3
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (3): ID, Peso, Horas_Ejercicio
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
head(datos)
## # A tibble: 6 × 3
## ID Peso Horas_Ejercicio
## <dbl> <dbl> <dbl>
## 1 1 59.1 3
## 2 2 80 3
## 3 3 72.8 2
## 4 4 54.9 4
## 5 5 64.2 5
## 6 6 86.5 1
1. media pobalcional
#tamaño de los datos
tamaño_P <- nrow(datos)
# Calcular la media
media <- mean(datos$Peso)
# Imprimir la media
print(media)
## [1] 69.935
# Medidas descriptivas
summary(datos$Peso)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 37.70 63.30 69.95 69.94 76.60 105.70
2. Desviación estándar y Varianza
sd(datos$Peso)
## [1] 9.745815
# Varianza
varianza_poblacional <- var(datos$Peso)
varianza_poblacional
## [1] 94.98092
El peso promedio de los estudiantes es de 69.935, además se observa que los datos varian un 9,74 de del promedio, lo que quiere decir que tenemos variabilidad de los datos.
Media muestral 1
# Tamaño de la población
N1 <- nrow(datos)
# Tamaño de la muestra (puedes ajustar este valor)
n1 <- 150
# Calcular el intervalo k
k1 <- floor(N1 / n1)
k1
## [1] 10
set.seed(123) # Para reproducibilidad
r1 <- sample(1:k1, 1) # Arranque aleatorio
r1
## [1] 3
# Índices seleccionados
idx1 <- seq(from = r1, to = r1 + k1 * (n1 - 1), by = k1)
idx1
## [1] 3 13 23 33 43 53 63 73 83 93 103 113 123 133 143
## [16] 153 163 173 183 193 203 213 223 233 243 253 263 273 283 293
## [31] 303 313 323 333 343 353 363 373 383 393 403 413 423 433 443
## [46] 453 463 473 483 493 503 513 523 533 543 553 563 573 583 593
## [61] 603 613 623 633 643 653 663 673 683 693 703 713 723 733 743
## [76] 753 763 773 783 793 803 813 823 833 843 853 863 873 883 893
## [91] 903 913 923 933 943 953 963 973 983 993 1003 1013 1023 1033 1043
## [106] 1053 1063 1073 1083 1093 1103 1113 1123 1133 1143 1153 1163 1173 1183 1193
## [121] 1203 1213 1223 1233 1243 1253 1263 1273 1283 1293 1303 1313 1323 1333 1343
## [136] 1353 1363 1373 1383 1393 1403 1413 1423 1433 1443 1453 1463 1473 1483 1493
muestra1 <- datos[idx1, ]
# Ver la muestra
head(muestra1)
## # A tibble: 6 × 3
## ID Peso Horas_Ejercicio
## <dbl> <dbl> <dbl>
## 1 3 72.8 2
## 2 13 84.9 4
## 3 23 60.6 4
## 4 33 52.3 5
## 5 43 66.1 7
## 6 53 87.4 3
# Comprobar tamaño
tamaño_m1 <- nrow(muestra1)
Media muestral 1
media_muestra <- mean(muestra1$Peso)
print(media_muestra)
## [1] 69.74667
summary(muestra1$Peso)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 42.20 63.85 69.00 69.75 75.88 92.00
varianza Muestral 1
varianza_muestra<- var(muestra1$Peso)
varianza_muestra_redondeada <- round(varianza_muestra, 2)
print(varianza_muestra_redondeada)
## [1] 86.92
desviacion_muestra <- sd(muestra1$Peso)
# Imprimir la varianza redondeada
print(desviacion_muestra)
## [1] 9.323217
Determinación del sesgo
if (media != media_muestra) {
print("Si hay sesgo en el estimador de Media de Peso")
} else {
print("El estimador de media de Peso es insesgado")
}
## [1] "Si hay sesgo en el estimador de Media de Peso"
Ahora tomamos otra muestra de datos, esta vez tomando más datos para luego poder analizar con respecto a la muestra anterior y la población en general,
Media muestral 2
# Tamaño de la población
N2 <- nrow(datos)
# Tamaño de la muestra (puedes ajustar este valor)
n2 <- 500
# Calcular el intervalo k
k2 <- floor(N2 / n2)
k2
## [1] 3
set.seed(123) # Para reproducibilidad
r2 <- sample(1:k2, 1) # Arranque aleatorio
r2
## [1] 3
# Índices seleccionados
idx2 <- seq(from = r2, to = r2 + k2 * (n2 - 1), by = k2)
idx2
## [1] 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45
## [16] 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90
## [31] 93 96 99 102 105 108 111 114 117 120 123 126 129 132 135
## [46] 138 141 144 147 150 153 156 159 162 165 168 171 174 177 180
## [61] 183 186 189 192 195 198 201 204 207 210 213 216 219 222 225
## [76] 228 231 234 237 240 243 246 249 252 255 258 261 264 267 270
## [91] 273 276 279 282 285 288 291 294 297 300 303 306 309 312 315
## [106] 318 321 324 327 330 333 336 339 342 345 348 351 354 357 360
## [121] 363 366 369 372 375 378 381 384 387 390 393 396 399 402 405
## [136] 408 411 414 417 420 423 426 429 432 435 438 441 444 447 450
## [151] 453 456 459 462 465 468 471 474 477 480 483 486 489 492 495
## [166] 498 501 504 507 510 513 516 519 522 525 528 531 534 537 540
## [181] 543 546 549 552 555 558 561 564 567 570 573 576 579 582 585
## [196] 588 591 594 597 600 603 606 609 612 615 618 621 624 627 630
## [211] 633 636 639 642 645 648 651 654 657 660 663 666 669 672 675
## [226] 678 681 684 687 690 693 696 699 702 705 708 711 714 717 720
## [241] 723 726 729 732 735 738 741 744 747 750 753 756 759 762 765
## [256] 768 771 774 777 780 783 786 789 792 795 798 801 804 807 810
## [271] 813 816 819 822 825 828 831 834 837 840 843 846 849 852 855
## [286] 858 861 864 867 870 873 876 879 882 885 888 891 894 897 900
## [301] 903 906 909 912 915 918 921 924 927 930 933 936 939 942 945
## [316] 948 951 954 957 960 963 966 969 972 975 978 981 984 987 990
## [331] 993 996 999 1002 1005 1008 1011 1014 1017 1020 1023 1026 1029 1032 1035
## [346] 1038 1041 1044 1047 1050 1053 1056 1059 1062 1065 1068 1071 1074 1077 1080
## [361] 1083 1086 1089 1092 1095 1098 1101 1104 1107 1110 1113 1116 1119 1122 1125
## [376] 1128 1131 1134 1137 1140 1143 1146 1149 1152 1155 1158 1161 1164 1167 1170
## [391] 1173 1176 1179 1182 1185 1188 1191 1194 1197 1200 1203 1206 1209 1212 1215
## [406] 1218 1221 1224 1227 1230 1233 1236 1239 1242 1245 1248 1251 1254 1257 1260
## [421] 1263 1266 1269 1272 1275 1278 1281 1284 1287 1290 1293 1296 1299 1302 1305
## [436] 1308 1311 1314 1317 1320 1323 1326 1329 1332 1335 1338 1341 1344 1347 1350
## [451] 1353 1356 1359 1362 1365 1368 1371 1374 1377 1380 1383 1386 1389 1392 1395
## [466] 1398 1401 1404 1407 1410 1413 1416 1419 1422 1425 1428 1431 1434 1437 1440
## [481] 1443 1446 1449 1452 1455 1458 1461 1464 1467 1470 1473 1476 1479 1482 1485
## [496] 1488 1491 1494 1497 1500
muestra2 <- datos[idx2, ]
# Ver la muestra
head(muestra2)
## # A tibble: 6 × 3
## ID Peso Horas_Ejercicio
## <dbl> <dbl> <dbl>
## 1 3 72.8 2
## 2 6 86.5 1
## 3 9 82.7 7
## 4 12 69.1 3
## 5 15 65.6 5
## 6 18 91.9 1
# Comprobar tamaño
tamaño_m2 <- nrow(muestra2)
Media muestral 2
media_muestra2 <- mean(muestra2$Peso)
print(media_muestra2)
## [1] 69.99
summary(muestra2$Peso)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 42.10 63.10 69.75 69.99 76.30 105.70
varianza Muestral 2
varianza_muestra2<- var(muestra2$Peso)
varianza_muestra_redondeada2 <- round(varianza_muestra2, 2)
print(varianza_muestra_redondeada2)
## [1] 97.46
desviacion_muestra2 <- sd(muestra2$Peso)
# Imprimir la varianza redondeada
print(desviacion_muestra2)
## [1] 9.871949
Determinación del sesgo muestra #2
if (media != media_muestra2) {
print("Si hay sesgo en el estimador de Media de Peso")
} else {
print("El estimador de media de Peso es insesgado")
}
## [1] "Si hay sesgo en el estimador de Media de Peso"
cat("El promedio del peso para una población de:",tamaño_P,"elementos es igual a:" ,media, "\n El promedio del peso para una muestra con:",tamaño_m1,"elementos es igual a:" ,media_muestra,"\n El promedio del peso para una muestra con:",tamaño_m2,"elementos es igual a:" ,media_muestra2,"\n")
## El promedio del peso para una población de: 1500 elementos es igual a: 69.935
## El promedio del peso para una muestra con: 150 elementos es igual a: 69.74667
## El promedio del peso para una muestra con: 500 elementos es igual a: 69.99
Debido a las variaciones de la media para cada una de las distintas muestras con respecto a la media de la poblaciÓn se puede determinar que los datos son inconsistentes.
cat("La Varianza del peso para una población de:",tamaño_P,"elementos es igual a:" ,varianza_poblacional, "\n La varianza del peso para una muestra con:",tamaño_m1,"elementos es igual a:" ,varianza_muestra_redondeada,"\n La Varienza del peso para una muestra con:",tamaño_m2,"elementos es igual a:" ,varianza_muestra_redondeada2,"\n")
## La Varianza del peso para una población de: 1500 elementos es igual a: 94.98092
## La varianza del peso para una muestra con: 150 elementos es igual a: 86.92
## La Varienza del peso para una muestra con: 500 elementos es igual a: 97.46
# Eficiencia para la muestra 1
if (varianza_poblacional < varianza_muestra_redondeada) {
print("La muestra 1 Es eficiente")
} else {
print("La muestra 1 No es eficiente")
}
## [1] "La muestra 1 No es eficiente"
# Eficiencia para la muestra 2
if (varianza_poblacional < varianza_muestra_redondeada2) {
print("la muestra 2 Es eficiente")
} else {
print("La muesta 2 No es eficiente")
}
## [1] "la muestra 2 Es eficiente"
De acuerdo a esto podemos analizar que medida que aumentamos el tamaño de la muestra, las estimaciones de parámetros como la varianza se aproximan más a los valores reales poblacionales, lo que mejora la eficiencia y representatividad del muestreo.
# Calcular el nivel de confianza de la muestra #1
nivel_confianza <- 0.99
# Calcular el error estándar de la media
sigma <- desviacion_muestra
error_estandar <- sigma / sqrt(tamaño_m1)
# Calcular el valor crítico de la distribución t
valor_critico <- qt((1 + nivel_confianza) / 2, df = tamaño_m1 - 1)
# Calcular el margen de error
margen_error <- valor_critico * error_estandar
# Calcular el intervalo de confianza
intervalo_confianza <- c(media_muestra - margen_error, media_muestra + margen_error)
# Valor crítico usando qnorm con media y sigma (poblacional estimada)
valor_critico_muestra1 <- qnorm(
(1 + nivel_confianza) / 2,
mean = media_muestra,
sd = sigma
)
valor_critico
## [1] 2.609228
# Mostrar resultados
cat("Intervalo de confianza del", nivel_confianza * 100, "% para la media:", intervalo_confianza)
## Intervalo de confianza del 99 % para la media: 67.76042 71.73291
# Intervalo de confianza
# ------------------------
# Valor crítico estándar Z (solo para construir el IC)
z <- qnorm((1 + nivel_confianza) / 2)
# Límites del intervalo de confianza
IC_inferior <- media_muestra - z * error_estandar
IC_superior <- media_muestra + z * error_estandar
IC_inferior
## [1] 67.78585
IC_superior
## [1] 71.70748
# Error estándar de la diferencia de medias
error_estandar_diferencia <- sqrt((desviacion_muestra^2 / tamaño_m1) + (desviacion_muestra2^2 / tamaño_m2))
# Valor crítico de la distribución t
valor_critico <- qt((1 + nivel_confianza) / 2, df = tamaño_m1 + tamaño_m2 - 2)
# Margen de error
margen_error_diferencia <- valor_critico * error_estandar_diferencia
# Intervalo de confianza para la diferencia de medias
intervalo_confianza_diferencia <- c((media_muestra - media_muestra2) - margen_error_diferencia, (media_muestra - media_muestra2) + margen_error_diferencia)
# Mostrar resultado
cat("Intervalo de confianza del", nivel_confianza * 100, "% para la diferencia de medias:", intervalo_confianza_diferencia)
## Intervalo de confianza del 99 % para la diferencia de medias: -2.516749 2.030082
A un nivel de confianza del 99%, no se puede afirmar que exista una diferencia significativa entre las medias de los dos grupos, ya que el intervalo de confianza incluye el valor cero.