En palabras de Thompson (2012), “El muestreo aleatorio simple es fundamental en estadísticas y proporciona una base sólida para la inferencia estadística”.Además proporciona una manera efectiva de comprender y generalizar características de una población más amplia basándose en una muestra cuidadosamente seleccionada. El muestreo aleatorio simple es una técnica fundamental en esta área, permitiendo que los investigadores obtengan muestras representativas de una población, lo que es crucial para realizar inferencias precisas.
En esta tarea, exploraremos la implementación de muestreo aleatorio
simple utilizando el lenguaje de programación R, una poderosa
herramienta ampliamente utilizada en estadísticas y análisis de datos.
Abordaremos dos casos fundamentales: el cálculo de proporciones y
promedios, tanto cuando el tamaño de la población (N) es conocido como
cuando es desconocido.
TIPOS DE MUESTREO
1. PROBABILÍSTICO: “El muestreo probabilístico es un enfoque riguroso y fundamentado para la selección de muestras, donde cada elemento de la población tiene una oportunidad conocida y no nula de ser seleccionado. Este método permite a los investigadores realizar inferencias válidas sobre la población completa basándose en las propiedades estadísticas de la muestra elegida de manera aleatoria” (Cochran,
EJEMPLO: Supongamos que eres un investigador interesado en determinar la opinión de los estudiantes universitarios sobre una nueva política educativa. La población en cuestión es el cuerpo estudiantil completo de una universidad con 10,000 estudiantes. En lugar de encuestar a todos los estudiantes, decides realizar un muestreo probabilístico.
Aplicas un muestreo aleatorio simple, lo que significa que cada
estudiante tiene la misma oportunidad de ser seleccionado para la
encuesta. Utilizas un generador de números aleatorios para seleccionar
una muestra de 300 estudiantes. 
2. NO PROBALÍSTICO:
“El muestreo no probabilístico es un enfoque de selección de muestras en
el cual los elementos de la población no se eligen al azar y, por lo
tanto, no se pueden asignar probabilidades conocidas de inclusión.
Aunque puede ser más conveniente en algunas situaciones, este método
puede resultar en muestras que no representan adecuadamente la población
y limitan la generalización de los resultados” (Trochim & Donnelly,
2008).
EJEMPLO : Supongamos que deseas investigar los hábitos de consumo de café en una ciudad determinada. En lugar de realizar un muestreo aleatorio que asignaría a cada individuo de la población una probabilidad igual de ser seleccionado, decides realizar un muestreo no probabilístico utilizando el método de “muestreo por conveniencia”.
Seleccionas a los participantes de tu muestra de manera conveniente, es decir, eliges a las personas que encuentras más fácilmente o que están más disponibles para responder tu encuesta. Tal vez realices la encuesta en una cafetería local y le preguntes a las personas que están allí en ese momento.
Sin embargo, debido a la naturaleza de tu selección, es posible que
las personas que respondan a tu encuesta no sean representativas de toda
la población de la ciudad en términos de hábitos de consumo de café.

En el contexto de calcular una proporción, el M.A.S. es una forma de seleccionar un subconjunto de elementos de la población de manera que cada elemento tenga la misma oportunidad de ser incluido en la muestra. Esto asegura que la muestra sea imparcial y refleje con precisión las características de la población en términos de la proporción que se está estudiando.
PASOS : - Identificación de la población - Tamaño de la muestra - Selección aleatoria - Obtención de datos - Cálculo de la proporción - Inferencia a la población
1. CON N CONOCIDO
# Función para realizar el muestreo aleatorio simple para una proporción
simple_random_proportion_sampling <- function(population_size, sample_size, confidence_level, estimated_proportion) {
z_critical_values <- c(1.645, 1.96, 2.576) # Valores críticos para 90%, 95%, y 99% de confianza
if (confidence_level == 90) {
z_critical <- z_critical_values[1]
} else if (confidence_level == 95) {
z_critical <- z_critical_values[2]
} else if (confidence_level == 99) {
z_critical <- z_critical_values[3]
} else {
stop("Confidence level not supported. Choose from 90, 95, or 99.")
}
sample_indices <- sample(1:population_size, size = sample_size, replace = FALSE)
sample_data <- sample_indices
sample_proportion <- length(sample_data[sample_data != 0]) / sample_size
standard_error <- sqrt((estimated_proportion * (1 - estimated_proportion)) / sample_size)
lower_limit <- sample_proportion - z_critical * standard_error
upper_limit <- sample_proportion + z_critical * standard_error
result <- list(sample_data = sample_data,
sample_proportion = sample_proportion,
confidence_interval = c(lower_limit, upper_limit))
return(result)
}
# Parámetros del usuario
population_size <-1000
sample_size <- 100
confidence_level <- 95
estimated_proportion <- 0.5
# Realizar muestreo aleatorio simple para una proporción
proportion_sampling_result <- simple_random_proportion_sampling(population_size, sample_size, confidence_level, estimated_proportion)
# Imprimir resultados
cat("Muestra aleatoria simple:\n")## Muestra aleatoria simple:
## [1] 5 139 668 976 928 493 923 599 173 529 69 355 762 94 412 948 375 417
## [19] 23 878 99 66 479 744 670 994 818 497 321 172 436 328 120 352 454 801
## [37] 251 760 19 234 122 318 176 8 733 997 269 980 301 527 693 823 343 477
## [55] 764 768 782 26 773 559 53 409 983 421 649 297 214 968 933 365 831 281
## [73] 309 472 190 528 151 642 298 46 340 990 233 466 255 531 175 795 391 442
## [91] 164 650 848 450 694 953 708 263 260 406
##
## Proporción muestral: 1
cat("Intervalo de confianza al", confidence_level, "%:", proportion_sampling_result$confidence_interval[1], "a", proportion_sampling_result$confidence_interval[2])## Intervalo de confianza al 95 %: 0.902 a 1.098
2. CON N DESCONOCIDO
# Función para realizar el muestreo aleatorio simple para una proporción con población no conocida
simple_random_proportion_sampling <- function(population_size, sample_size, confidence_level) {
z_critical_values <- c(1.645, 1.96, 2.576) # Valores críticos para 90%, 95%, y 99% de confianza
if (confidence_level == 90) {
z_critical <- z_critical_values[1]
} else if (confidence_level == 95) {
z_critical <- z_critical_values[2]
} else if (confidence_level == 99) {
z_critical <- z_critical_values[3]
} else {
stop("Confidence level not supported. Choose from 90, 95, or 99.")
}
sample_indices <- sample(1:population_size, size = sample_size, replace = FALSE)
sample_data <- sample_indices
sample_proportion <- length(sample_data[sample_data != 0]) / sample_size
standard_error <- sqrt((sample_proportion * (1 - sample_proportion)) / sample_size)
lower_limit <- sample_proportion - z_critical * standard_error
upper_limit <- sample_proportion + z_critical * standard_error
result <- list(sample_data = sample_data,
sample_proportion = sample_proportion,
confidence_interval = c(lower_limit, upper_limit))
return(result)
}
# Parámetros del usuario
population_size <- 1000
sample_size <- 100
confidence_level <- 95
# Realizar muestreo aleatorio simple para una proporción con población no conocida
proportion_sampling_result <- simple_random_proportion_sampling(population_size, sample_size, confidence_level)
# Imprimir resultados
cat("Muestra aleatoria simple:\n")## Muestra aleatoria simple:
## [1] 437 212 707 487 440 979 428 401 282 759 722 463 388 730 509 435 268 606
## [19] 666 840 685 794 742 459 17 95 867 698 307 281 868 896 143 573 562 850
## [37] 598 21 474 563 198 241 584 751 962 694 740 114 514 917 665 524 316 892
## [55] 197 491 144 804 810 333 470 302 482 728 426 321 278 390 363 127 466 450
## [73] 978 425 590 790 788 362 944 795 878 530 849 644 394 354 113 817 259 750
## [91] 570 255 341 576 988 635 968 947 274 275
##
## Proporción muestral: 1
cat("Intervalo de confianza al", confidence_level, "%:", proportion_sampling_result$confidence_interval[1], "a", proportion_sampling_result$confidence_interval[2])## Intervalo de confianza al 95 %: 1 a 1
En el contexto de calcular un promedio, el M.A.S. es una forma de seleccionar un subconjunto de elementos de la población de manera que cada elemento tenga la misma oportunidad de ser incluido en la muestra. Esto asegura que la muestra sea imparcial y refleje con precisión las características de la población en términos del promedio que se está estudiando.
PASOS : - Identificación de la población - Tamaño de la muestra - Selección aleatoria - Obtención de datos - Cálculo del promedio muestral - Inferencia a la población
1. CON N CONOCIDO
# Función para realizar el muestreo aleatorio simple para un promedio (media)
simple_random_mean_sampling <- function(population, sample_size, z_critical) {
sample_indices <- sample(1:length(population), size = sample_size, replace = FALSE)
sample_data <- population[sample_indices]
sample_mean <- mean(sample_data)
sample_std_dev <- sqrt(var(sample_data))
standard_error <- sample_std_dev / sqrt(sample_size)
lower_limit <- sample_mean - z_critical * standard_error
upper_limit <- sample_mean + z_critical * standard_error
result <- list(sample_data = sample_data,
sample_mean = sample_mean,
confidence_interval = c(lower_limit, upper_limit))
return(result)
}
# Parámetros del usuario
population <- c(34, 45, 23, 56, 78, 29, 31, 52, 40, 65, 27, 50)
sample_size <- 5
z_critical <- 1.96 # El valor crítico Z para un nivel de confianza del 95%
# Realizar muestreo aleatorio simple para un promedio (media)
mean_sampling_result <- simple_random_mean_sampling(population, sample_size, z_critical)
# Imprimir resultados
cat("Muestra aleatoria simple:\n")## Muestra aleatoria simple:
## [1] 56 45 50 27 78
##
## Promedio muestral: 51.2
cat("Intervalo de confianza con Z =", z_critical, ":", mean_sampling_result$confidence_interval[1], "a", mean_sampling_result$confidence_interval[2])## Intervalo de confianza con Z = 1.96 : 34.99707 a 67.40293
1. CON N DESCONOCIDO
# Función para realizar el muestreo aleatorio simple para un promedio (media) con población desconocida
simple_random_mean_sampling_unknown <- function(population_size, sample_size, z_critical) {
sample_indices <- sample(1:population_size, size = sample_size, replace = FALSE)
sample_data <- sample_indices
sample_mean <- mean(sample_data)
sample_std_dev <- sqrt(var(sample_data))
standard_error <- sample_std_dev / sqrt(sample_size)
lower_limit <- sample_mean - z_critical * standard_error
upper_limit <- sample_mean + z_critical * standard_error
result <- list(sample_data = sample_data,
sample_mean = sample_mean,
confidence_interval = c(lower_limit, upper_limit))
return(result)
}
# Parámetros del usuario
population_size <- 1000
sample_size <- 100
z_critical <- 1.96 # El valor crítico Z para un nivel de confianza del 95%
# Realizar muestreo aleatorio simple para un promedio (media) con población desconocida
mean_sampling_result <- simple_random_mean_sampling_unknown(population_size, sample_size, z_critical)
# Imprimir resultados
cat("Muestra aleatoria simple:\n")## Muestra aleatoria simple:
## [1] 203 400 919 264 173 233 991 432 726 904 329 592 514 895 316 1 298 300
## [19] 910 529 753 789 743 772 934 342 27 568 764 450 908 556 572 226 43 85
## [37] 902 978 268 605 157 93 78 391 745 464 995 138 766 274 701 399 581 287
## [55] 571 256 330 361 519 495 244 598 842 869 664 542 251 215 526 416 594 875
## [73] 845 824 479 949 817 689 483 992 901 364 722 266 877 76 954 655 44 836
## [91] 576 940 255 254 411 553 191 536 37 260
##
## Promedio muestral: 522.37
cat("Intervalo de confianza con Z =", z_critical, ":", mean_sampling_result$confidence_interval[1], "a", mean_sampling_result$confidence_interval[2])## Intervalo de confianza con Z = 1.96 : 466.3402 a 578.3998