Muestreo por Conglomerados en R
Muestreo por Conglomerados en R
org/0000-0002-3962-5433
1
Por: Mario Orlando Suárez Ibujés Fecha: 28/03/2024 https://orcid.org/0000-0002-3962-5433
Vamos a seleccionar una muestra aleatoria simple de conglomerados en una etapa para la
ciudad de Tulcán a fin de estimar el desperdicio de alimentos en los hogares
#Conglomerados: sectores
#En una segunda etapa las unidades muestrales: las viviendas
pob = ZONAS_Y_SECTORES
set.seed(284)
library(sampling)
M=length(pob$SECTOR)
M
## [1] 116
zon=pob$ZONA
zon
## [1] 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3
## [26] 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6 6
## [51] 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 9 9
## [76] 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11
## [101] 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
sec=pob$SECTOR
sec
## [1] 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7
## [26] 8 9 10 11 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 1 2 3 4
## [51] 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 1 2
## [76] 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6
## [101] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
cong=zon*100*+sec
cong
## [1] 100 200 300 400 500 600 700 800 200 400 600 800
## [13] 1000 1200 1400 1600 1800 2000 300 600 900 1200 1500 1800
## [25] 2100 2400 2700 3000 3300 400 800 1200 1600 2000 2400 2800
## [37] 3200 3600 4000 500 1000 1500 2000 2500 3000 3500 600 1200
## [49] 1800 2400 3000 3600 4200 4800 5400 700 1400 2100 2800 3500
## [61] 4200 4900 5600 6300 7000 800 1600 2400 3200 4000 4800 5600
## [73] 6400 900 1800 2700 3600 4500 5400 6300 7200 8100 9000 1000
## [85] 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 1100 2200
## [97] 3300 4400 5500 6600 7700 8800 9900 11000 12100 13200 14300 15400
## [109] 16500 17600 18700 19800 20900 22000 23100 24200
sector=cleanstrata(cong)
sector
## [1] 1 2 3 4 5 6 7 8 2 4 6 8 10 12 13 15 16 17 3 6 9 12 14 16 18
## [26] 20 22 24 26 4 8 12 15 17 20 23 25 28 29 5 10 14 17 21 24 27 6 12 16 20
## [51] 24 28 30 33 36 7 13 18 23 27 30 34 38 40 43 8 15 20 25 29 33 38 41 9 16
## [76] 22 28 32 36 40 44 47 49 10 17 24 29 35 39 43 46 49 51 52 11 19 26 31 37 42
## [101] 45 48 50 52 53 54 55 56 57 58 59 60 61 62 63 64
2
Por: Mario Orlando Suárez Ibujés Fecha: 28/03/2024 https://orcid.org/0000-0002-3962-5433
Sabemos que los sectores tienen 150 viviendas aproximadamente por lo tanto debemos
muestrear 1011/150 = 7 sectores
global=cbind(pob,sector)
n=7
d=cluster(global,clustername = c("sector"),size = n,method = "srswor")
head(d)
muestra=global[d$ID_unit,]
cbind(muestra,d$Prob)
peso=1/d$Prob
peso
muestra=cbind(muestra,peso)
table(muestra$sector)
##
## 13 14 15 16 17 25 28
## 2 2 3 4 4 2 3
3
Por: Mario Orlando Suárez Ibujés Fecha: 28/03/2024 https://orcid.org/0000-0002-3962-5433
muestra2=global[d2$ID_unit,]
cbind(muestra2,d2$Prob)
peso2=1/d2$Prob
muestra2=cbind(muestra2,peso2)
table(muestra2$sector)
##
## 1 2 3 5 6 8 9 10 12 13 14 16 17 18 19 20 21 22 24 25 26 27 28 29 30 32
5
Por: Mario Orlando Suárez Ibujés Fecha: 28/03/2024 https://orcid.org/0000-0002-3962-5433
## 1 2 2 2 4 4 2 3 4 2 2 4 4 2 1 4 1 2 4 2 2 2 3 3 2 1
## 33 34 35 37 39 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63
## 2 1 1 1 1 2 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1
#Análisis
Luego de determinar la muestra aleatoria simple de conglomerados se tiene los insumos
para estimar el desperdicio de alimentos en los hogares para la ciudad de Tulcán
library(readxl)
Conglomerados <- read_excel("C:/Users/Usuario1/Desktop/Maestría/Módulo 9 Técnicas del
muestreo/Conglomerados.xlsx")
View(Conglomerados)
pob=Conglomerados
set.seed(123)
library(sampling)
M=length(pob$distrito)
M
## [1] 8270
dis=pob$distrito
mun=pob$muni
cong=dis*100+mun
municipio=cleanstrata(cong)# Numerar los conglomerados
global=cbind(pob,municipio)
str(global)
6
Por: Mario Orlando Suárez Ibujés Fecha: 28/03/2024 https://orcid.org/0000-0002-3962-5433
x=table(municipio)
y=table(pob$localida)
## total SE
## [1,] 338382 63362
##valores reales
sum(pob$vpcontv)
7
Por: Mario Orlando Suárez Ibujés Fecha: 28/03/2024 https://orcid.org/0000-0002-3962-5433
## [1] 420217
sum(pob$vpcontv)/sum(pob$vp)
## [1] 0.5697487
#Análisis
Se tiene una razón de 0.5434 y un error estándar de 0.041, lo que se interpretaría que
tiene una razón relativamente alta y una dispersión pequeña.
El valor real de 0.5697 es muy similar a la razón de 0.5434, lo que conllevaría a
interpretar que la estimación realizada es correcta.
3. Muestreo bioetápico
###Muestreo bioetápico M.A.S para los datos del estado “X”. Estimación del total y el porcentaje de
viviendas particulares con TV.
# Este muestreo también es conocido como muestreo de dos etapas o muestreo con submuestreo. En la
primera etapa se selecciona una muestra de unidades primarias, cada una de estas unidades a su vez está
dividida en unidades más pequeñas llamadas unidades secundarias. En la segunda etapa, sólo una parte de
las unidades secundarias son estudiadas.
Unidad primaria de muestreo: MUNICIPIOS
Unidad secundaria de muestreo: LOCALIDADES
Importando la base de datos
library(readxl)
Conglomerados2 <- read_excel("C:/Users/Usuario1/Desktop/Maestría/Módulo 9 Técnicas del
muestreo/Conglomerados2.xlsx",
sheet = "Hoja2")
pob2=pob
library(sampling)
#generar la variable municipio
distrito2=pob2$distrito
municipio2=pob2$muni
conglomerado=distrito2*100+municipio2
municipio_2=cleanstrata(conglomerado)#para numerar los conglomerados desde el 1
global2=cbind(pob2,municipio_2)
str(global2)
8
Por: Mario Orlando Suárez Ibujés Fecha: 28/03/2024 https://orcid.org/0000-0002-3962-5433
Selección
##selección. En cada municipio 2 localidades
set.seed(123)
n=350 # número de municipios en la muestra y se seleccionan 2 localidades en cada uno
global2$municipio=as.numeric(global$municipio)
muestreo.bietapico=mstage(global2,stage=list("cluster",""),
varnames = list("municipio","localida"),
size = list(n,c(rep(2,n))), # n=100 (), 2 localidades en cad
a municipio
#method = list("srswor","srswor")
)
muestreo.bietapico[1]#lista de los municipios en muestra
## $`1`
## municipio ID_unit Prob_ 1 _stage
## 1 3 11 0.6140351
## 2 3 12 0.6140351
## 3 3 13 0.6140351
## 4 3 10 0.6140351
## 5 3 14 0.6140351
## 6 3 15 0.6140351
## 7 3 9 0.6140351
## 8 4 16 0.6140351
## 9 4 17 0.6140351
. . . .
. . . .
str(muestreo.bietapico[1])
## List of 1
## $ 1:'data.frame': 4728 obs. of 3 variables:
## ..$ municipio : num [1:4728] 3 3 3 3 3 3 3 4 4 4 ...
## ..$ ID_unit : int [1:4728] 11 12 13 10 14 15 9 16 17 22 ...
## ..$ Prob_ 1 _stage: num [1:4728] 0.614 0.614 0.614 0.614 0.614 ...
## $`2`
## ID_unit Replicates Prob_ 2 _stage Prob
## 1 11 1 0.26530612 0.16290727
## 2 13 1 0.26530612 0.16290727
## 3 18 1 0.26530612 0.16290727
## 4 19 1 0.26530612 0.16290727
## 5 23 2 1.00000000 0.61403509
## 6 29 1 0.36000000 0.22105263
## 7 32 1 0.36000000 0.22105263
## 8 38 1 0.75000000 0.46052632
9
Por: Mario Orlando Suárez Ibujés Fecha: 28/03/2024 https://orcid.org/0000-0002-3962-5433
## 9 37 1 0.75000000 0.46052632
. . . . .
. . . . .
## 616 8264 1 0.10249307 0.06293434
str(muestreo.bietapico[2])
## List of 1
## $ 2:'data.frame': 616 obs. of 4 variables:
## ..$ ID_unit : int [1:616] 11 13 18 19 23 29 32 38 37 40 ...
## ..$ Replicates : int [1:616] 1 1 1 1 2 1 1 1 1 2 ...
## ..$ Prob_ 2 _stage: num [1:616] 0.265 0.265 0.265 0.265 1 ...
## ..$ Prob : num [1:616] 0.163 0.163 0.163 0.163 0.614 ...
Factor de expansión
muestra2 <- getdata(global2,muestreo.bietapico)
# Factor de expansión
fexp=1/muestras$Prob
muestras=cbind(muestras,fexp)
#Estimación
library(survey)#para estimación
Estimación total
est.tot=svytotal(~vpcontv,design = dconglo)
est.tot
## total SE
## vpcontv 509105 236150
estimacion.razon=svyratio(~vpcontv,~vp,dconglo)
estimacion.razon
10
Por: Mario Orlando Suárez Ibujés Fecha: 28/03/2024 https://orcid.org/0000-0002-3962-5433
## vp
## vpcontv 0.08553975
#Análisis
Se tiene una razón de 0.5757 y un error estándar de 0.085, lo que se interpretaría que
tiene una razón relativamente alta y una dispersión pequeña, lo que conllevaría a una
adecuada estimación.
11