Unidad 1 · Estimación de Parámetros

Principales tipos de muestreo

Muestreo sistemático:

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.

Características principales

  • 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. 

Cómo se realiza 

  • 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

TRABAJO 1

¿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.

MUESTRA 1

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"

MUESTRA #2

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"

- MEDIA POBLACIONAL / MEDIA MUESTRAL 1 Y 2

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.

DETERMINACIÓN DE EFICIENCIA

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.

INTERVALOS DE CONFIANZA

Intervalos

# 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

INTERVALO DE CONFIANZA PARA LA DIFERENCIA DE MEDIAS ENTRE LA MUESTRA 1 Y LA MUESTRA 2.

# 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.