Primera parte: Análisis de los datos y cálculo del tamaño de una muestra inicial para aplicar un test de hipótesis sobre proporciones poblacionales.
Frecuencias originales:
# Leemos los datos, construímos un dataframe y obtenemos el número de observaciones:
data <- read_excel("datos salvador.xlsx")
data <- data.frame(data)
nrow(data)
## [1] 527575
# Obtenemos el nombre de las columnas del dataset que cargamos:
colnames(data)
## [1] "OBJECTID" "SAMPLE_ID" "PLOT_ID" "LON"
## [5] "LAT" "ClaveCob1Cob2"
## Obtenemos las categorias y las frecuencias de la variable nominal "ClaveCob1Cob2":
count(data, 'ClaveCob1Cob2')
## ClaveCob1Cob2 freq
## 1 BosqueBosque 158729
## 2 BosqueNo Bosque 15397
## 3 No BosqueBosque 16901
## 4 No BosqueNo Bosque 336548
## Obtenemos los porcentajes
prop.table(table(data$ClaveCob1Cob2))*100
##
## BosqueBosque BosqueNo Bosque No BosqueBosque No BosqueNo Bosque
## 30.086528 2.918448 3.203526 63.791499
Frecuencias en una muestra del 90% de la población:
# Removemos el 10% de las observaciones aleatoriamente:
data90 <- data[sample(NROW(data), NROW(data)*(1 - 0.1)),]
# Para verificar calculemos el numero de observaciones:
nrow(data90)
## [1] 474817
# Despleguemos las 10 primeras observaciones:
head(data90, 10)
## OBJECTID SAMPLE_ID PLOT_ID LON LAT ClaveCob1Cob2
## 186993 186993 22 2470 -89.88773 13.84019 No BosqueNo Bosque
## 165319 165319 9 2756 -89.48168 13.87200 No BosqueBosque
## 138321 138321 11 3101 -89.82416 13.91307 No BosqueNo Bosque
## 461620 461620 10 14216 -88.43348 13.38333 No BosqueNo Bosque
## 116091 116091 1 8480 -89.17741 13.95586 No BosqueNo Bosque
## 51246 51246 6 9441 -89.25297 14.12685 BosqueBosque
## 507761 507761 3 13780 -88.44204 13.24743 BosqueBosque
## 301597 301597 22 6929 -88.89706 13.67815 BosqueBosque
## 510209 510209 19 13773 -88.50625 13.24718 BosqueBosque
## 501745 501745 20 10758 -88.78326 13.27264 BosqueBosque
# Calculemos las proporciones del nuevo dataset:
prop.table(table(data90$ClaveCob1Cob2))*100
##
## BosqueBosque BosqueNo Bosque No BosqueBosque No BosqueNo Bosque
## 30.083379 2.926812 3.205445 63.784363
Frecuencias en una muestra del 50% de la población:
# Removemos el 50% de las observaciones aleatoriamente:
data50 <- data[sample(NROW(data), NROW(data)*(1 - 0.5)),]
# Para verificar calculemos el numero de observaciones:
nrow(data50)
## [1] 263787
# Despleguemos las 10 primeras observaciones:
head(data50, 10)
## OBJECTID SAMPLE_ID PLOT_ID LON LAT ClaveCob1Cob2
## 11330 11330 25 5058 -89.51409 14.33253 No BosqueNo Bosque
## 211735 211735 15 2153 -89.77665 13.80571 No BosqueNo Bosque
## 379056 379056 1 237 -89.66315 13.55355 No BosqueNo Bosque
## 521001 521001 11 16077 -88.30312 13.20273 No BosqueNo Bosque
## 376257 376257 12 6263 -88.92409 13.56046 BosqueBosque
## 27439 27439 24 9984 -89.19800 14.22711 No BosqueNo Bosque
## 51348 51348 8 9445 -89.21594 14.12743 No BosqueNo Bosque
## 378669 378669 24 18394 -87.82424 13.55771 BosqueBosque
## 505611 505611 21 13816 -88.37699 13.25659 BosqueBosque
## 401845 401845 5 11599 -88.74849 13.51692 BosqueNo Bosque
# Calculemos las proporciones del nuevo dataset:
prop.table(table(data50$ClaveCob1Cob2))*100
##
## BosqueBosque BosqueNo Bosque No BosqueBosque No BosqueNo Bosque
## 30.104213 2.920917 3.201068 63.773802
Frecuencias en una muestra del 10% de la población:
# Removemos el 90% de las observaciones aleatoriamente:
data10 <- data[sample(NROW(data), NROW(data)*(1 - 0.9)),]
# Para verificar calculemos el numero de observaciones:
nrow(data10)
## [1] 52757
# Despleguemos las 10 primeras observaciones:
head(data10, 10)
## OBJECTID SAMPLE_ID PLOT_ID LON LAT ClaveCob1Cob2
## 161927 161927 12 8047 -88.93592 13.87668 BosqueBosque
## 59941 59941 1 9283 -89.29911 14.09930 No BosqueNo Bosque
## 37266 37266 6 9765 -89.08681 14.18256 No BosqueNo Bosque
## 404190 404190 20 51 -89.35762 13.51193 No BosqueNo Bosque
## 288726 288726 1 1159 -89.98806 13.69437 BosqueBosque
## 46955 46955 15 4505 -89.67885 14.14103 No BosqueNo Bosque
## 497756 497756 11 13881 -88.58043 13.28253 No BosqueNo Bosque
## 36915 36915 5 9751 -89.21659 14.18189 No BosqueNo Bosque
## 434410 434410 18 17644 -87.87018 13.44894 No BosqueNo Bosque
## 275603 275603 4 7127 -88.95332 13.71411 BosqueBosque
# Calculemos las proporciones del nuevo dataset:
prop.table(table(data10$ClaveCob1Cob2))*100
##
## BosqueBosque BosqueNo Bosque No BosqueBosque No BosqueNo Bosque
## 29.939155 3.019505 3.245067 63.796273
Frecuencias en una muestra del 1% de la población:
# Removemos el 99% de las observaciones aleatoriamente:
data1 <- data[sample(NROW(data), NROW(data)*(1 - 0.99)),]
# Para verificar calculemos el numero de observaciones:
nrow(data1)
## [1] 5275
# Despleguemos las 10 primeras observaciones:
head(data1, 10)
## OBJECTID SAMPLE_ID PLOT_ID LON LAT ClaveCob1Cob2
## 487588 487588 23 16732 -88.28499 13.31155 No BosqueNo Bosque
## 456574 456574 24 11184 -88.85792 13.39851 No BosqueNo Bosque
## 217836 217836 16 2067 -89.80414 13.79588 No BosqueNo Bosque
## 54465 54465 20 4404 -89.51182 14.11573 BosqueBosque
## 422325 422325 5 17821 -88.03694 13.47568 No BosqueNo Bosque
## 133780 133780 20 3178 -89.79641 13.92291 BosqueBosque
## 527152 527152 2 15926 -87.98950 13.16810 BosqueBosque
## 77582 77582 16 8974 -89.32596 14.04483 No BosqueNo Bosque
## 17184 17184 11 10274 -89.31940 14.29788 No BosqueNo Bosque
## 335617 335617 7 14990 -88.51812 13.62653 No BosqueNo Bosque
# Calculemos las proporciones del nuevo dataset:
prop.table(table(data1$ClaveCob1Cob2))*100
##
## BosqueBosque BosqueNo Bosque No BosqueBosque No BosqueNo Bosque
## 30.521327 2.843602 3.260664 63.374408
Frecuencias en una muestra del 0,1% de la población:
# Removemos el 99,9% de las observaciones aleatoriamente:
data0.1 <- data[sample(NROW(data), NROW(data)*(1 - 0.999)),]
# Para verificar calculemos el numero de observaciones:
nrow(data0.1)
## [1] 527
# Despleguemos las 10 primeras observaciones:
head(data0.1, 10)
## OBJECTID SAMPLE_ID PLOT_ID LON LAT ClaveCob1Cob2
## 225904 225904 24 1969 -89.94250 13.78559 No BosqueNo Bosque
## 329226 329226 21 736 -89.59891 13.63553 No BosqueNo Bosque
## 73857 73857 12 4096 -89.61303 14.05105 No BosqueNo Bosque
## 188584 188584 24 2432 -89.48092 13.83586 No BosqueNo Bosque
## 316107 316107 12 15076 -88.52741 13.65359 BosqueBosque
## 75867 75867 12 13392 -88.74295 14.04986 No BosqueNo Bosque
## 70151 70151 11 9083 -89.26148 14.06351 No BosqueNo Bosque
## 88292 88292 22 21018 -88.18697 14.01707 BosqueBosque
## 446137 446137 21 11280 -88.83043 13.42546 No BosqueNo Bosque
## 16029 16029 4 10284 -89.22700 14.29913 BosqueBosque
# Calculemos las proporciones del nuevo dataset:
prop.table(table(data0.1$ClaveCob1Cob2))*100
##
## BosqueBosque BosqueNo Bosque No BosqueBosque No BosqueNo Bosque
## 27.703985 3.415560 2.656546 66.223909
Conclusión: Intuitivamente se puede concluir que una muestra del 10% no difiere en términos proporcionales significativamente de la población total (la variación oscila en torno al 0,05%). En la segunda parte de éste trabajo justificaremos ésta hipótesis aplicando test estadísticos para proporciones poblacionales obteniendo la cantidad muestral óptima para niveles de significación del 95% y 99%, con un algoritmo iterativo en R.