0% encontró este documento útil (0 votos)
72 vistas11 páginas

Muestreo por Conglomerados en R

Este documento describe diferentes técnicas de muestreo probabilístico utilizando R Studio, incluyendo muestreo por conglomerados en una etapa para estimar el desperdicio de alimentos en hogares y muestreo bioetápico.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
72 vistas11 páginas

Muestreo por Conglomerados en R

Este documento describe diferentes técnicas de muestreo probabilístico utilizando R Studio, incluyendo muestreo por conglomerados en una etapa para estimar el desperdicio de alimentos en hogares y muestreo bioetápico.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Por: Mario Orlando Suárez Ibujés Fecha: 28/03/2024 https://orcid.

org/0000-0002-3962-5433

TÉCNICAS DEL MUESTREO CON R STUDIO


TABLA DE CONTENIDOS
1. Caso conglomerados. Un estudio que quiere estimar el desperdicio de alimentos en los hogares de la ciudad de
Tulcán ................................................................................................................................................................................ 1
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......................................................................................................... 2
Sabemos que los sectores tienen 150 viviendas aproximadamente por lo tanto debemos muestrear 1011/150 = 7
sectores ............................................................................................................................................................................. 3
Consideremos 20 viviendas por sector 1011/20=51 ........................................................................................................ 4
2. M.A.S. por conglomerados en una etapa en un estado................................................................................................ 6
Vamos a suponer que los municipios tienen 15 localidades y que tenemos un n de 2500 ............................................. 7
Es importante que especifiquemos el número de conglomerados, en nuestro caso tenemos 570 municipios .............. 7
Diseño de la muestra sin reemplazo ................................................................................................................................. 7
Estimamos la proporción de viviendas particulares con TV ............................................................................................. 7
3. Muestreo bioetápico ..................................................................................................................................................... 8
Selección ........................................................................................................................................................................... 9
Factor de expansión ........................................................................................................................................................ 10
Estimación total .............................................................................................................................................................. 10

1. Caso conglomerados. Un estudio que quiere estimar el desperdicio de alimentos en los


hogares de la ciudad de Tulcán
#El muestreo por conglomerados es un procedimiento de muestreo probabilístico en el cual
se seleccionan aleatoriamente varios grupos (llamados conglomerados) conformados por
elementos heterogéneos y mutuamente exluyentes que cumplen con la finalidad de
representar a la población, pero que tienen características similares o algo en común.
Se emplea para disminuir los costos de la investigación en una población de estudio muy
grande o cuando los elementos de la misma se encuenran dispersos en un área geográfica
relativamente extensa.
# Importando la base de datos
library(readxl)
ZONAS_Y_SECTORES <- read_excel("C:/Users/Usuario1/Desktop/Maestría/Módulo 9 Técnicas d
el muestreo/ZONAS Y SECTORES.xlsx")
View(ZONAS_Y_SECTORES)

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)

## sector ID_unit Prob


## 1 13 57 0.109375
## 2 13 15 0.109375
## 3 14 42 0.109375
## 4 14 23 0.109375
## 5 15 16 0.109375
## 6 15 33 0.109375

muestra=global[d$ID_unit,]
cbind(muestra,d$Prob)

## ZONA SECTOR sector d$Prob


## 57 7 2 13 0.109375
## 15 2 7 13 0.109375
## 42 5 3 14 0.109375
## 23 3 5 14 0.109375
## 16 2 8 15 0.109375
## 33 4 4 15 0.109375
## 67 8 2 15 0.109375
## 49 6 3 16 0.109375
## 17 2 9 16 0.109375
## 75 9 2 16 0.109375
## 24 3 6 16 0.109375
## 43 5 4 17 0.109375
## 85 10 2 17 0.109375
## 34 4 5 17 0.109375
## 18 2 10 17 0.109375
## 69 8 4 25 0.109375
## 37 4 8 25 0.109375
## 52 6 6 28 0.109375
## 38 4 9 28 0.109375
## 77 9 4 28 0.109375

peso=1/d$Prob
peso

## [1] 9.142857 9.142857 9.142857 9.142857 9.142857 9.142857 9.142857 9.142857


## [9] 9.142857 9.142857 9.142857 9.142857 9.142857 9.142857 9.142857 9.142857
## [17] 9.142857 9.142857 9.142857 9.142857

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

Consideremos 20 viviendas por sector 1011/20=51


global=cbind(pob,sector)
n2=51
d2=cluster(global,clustername = c("sector"),size = n2,method = "srswor")

muestra2=global[d2$ID_unit,]
cbind(muestra2,d2$Prob)

## ZONA SECTOR sector d2$Prob


## 1 1 1 1 0.796875
## 9 2 1 2 0.796875
## 2 1 2 2 0.796875
## 3 1 3 3 0.796875
## 19 3 1 3 0.796875
## 5 1 5 5 0.796875
## 40 5 1 5 0.796875
## 47 6 1 6 0.796875
## 11 2 3 6 0.796875
## 6 1 6 6 0.796875
## 20 3 2 6 0.796875
## 31 4 2 8 0.796875
## 8 1 8 8 0.796875
## 12 2 4 8 0.796875
## 66 8 1 8 0.796875
## 21 3 3 9 0.796875
## 74 9 1 9 0.796875
## 13 2 5 10 0.796875
## 41 5 2 10 0.796875
## 84 10 1 10 0.796875
## 22 3 4 12 0.796875
## 32 4 3 12 0.796875
## 14 2 6 12 0.796875
## 48 6 2 12 0.796875
## 15 2 7 13 0.796875
## 57 7 2 13 0.796875
## 42 5 3 14 0.796875
## 23 3 5 14 0.796875
## 75 9 2 16 0.796875
## 24 3 6 16 0.796875
## 17 2 9 16 0.796875
## 49 6 3 16 0.796875
## 34 4 5 17 0.796875
## 18 2 10 17 0.796875
## 43 5 4 17 0.796875
## 85 10 2 17 0.796875
## 58 7 3 18 0.796875
## 25 3 7 18 0.796875
## 96 11 2 19 0.796875
## 26 3 8 20 0.796875
## 68 8 3 20 0.796875
## 50 6 4 20 0.796875
## 35 4 6 20 0.796875
## 44 5 5 21 0.796875
## 76 9 3 22 0.796875
## 27 3 9 22 0.796875
4
Por: Mario Orlando Suárez Ibujés Fecha: 28/03/2024 https://orcid.org/0000-0002-3962-5433
## 51 6 5 24 0.796875
## 28 3 10 24 0.796875
## 86 10 3 24 0.796875
## 45 5 6 24 0.796875
## 69 8 4 25 0.796875
## 37 4 8 25 0.796875
## 29 3 11 26 0.796875
## 97 11 3 26 0.796875
## 60 7 5 27 0.796875
## 46 5 7 27 0.796875
## 38 4 9 28 0.796875
## 52 6 6 28 0.796875
## 77 9 4 28 0.796875
## 70 8 5 29 0.796875
## 87 10 4 29 0.796875
## 39 4 10 29 0.796875
## 53 6 7 30 0.796875
## 61 7 6 30 0.796875
## 78 9 5 32 0.796875
## 71 8 6 33 0.796875
## 54 6 8 33 0.796875
## 62 7 7 34 0.796875
## 88 10 5 35 0.796875
## 99 11 5 37 0.796875
## 89 10 6 39 0.796875
## 65 7 10 43 0.796875
## 90 10 7 43 0.796875
## 81 9 8 44 0.796875
## 101 11 7 45 0.796875
## 91 10 8 46 0.796875
## 82 9 9 47 0.796875
## 102 11 8 48 0.796875
## 83 9 10 49 0.796875
## 92 10 9 49 0.796875
## 103 11 9 50 0.796875
## 93 10 10 51 0.796875
## 94 10 11 52 0.796875
## 104 11 10 52 0.796875
## 105 11 11 53 0.796875
## 106 11 12 54 0.796875
## 107 11 13 55 0.796875
## 108 11 14 56 0.796875
## 109 11 15 57 0.796875
## 110 11 16 58 0.796875
## 111 11 17 59 0.796875
## 112 11 18 60 0.796875
## 113 11 19 61 0.796875
## 115 11 21 63 0.796875

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

2. M.A.S. por conglomerados en una etapa en un estado


# Es conocido comúnmente como muestreo por conglomerados simplemente. En este muestreo
cada unidad de muestreo está conformada un conglomerado de elementos, los cuales a su
vez pueden ser considerados como si fuesen unidades secundarias.
Objetivo: Estimar el total de viviendas particulares con TV
Conglomerados: Municipios
Unidades muestrales: Localidades
library(grid)
library(Matrix)
library(survival)
library(survey)

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)

## 'data.frame': 8270 obs. of 7 variables:


## $ distrito : num 1 1 1 1 1 1 1 1 1 1 ...
## $ muni : num 1 1 1 1 2 2 2 2 3 3 ...
## $ localida : num 1 2 3 4 1 2 3 4 1 2 ...
## $ pobtotal : num 568 433 193 123 902 ...
## $ vp : num 150 69 56 25 234 75 13 7 242 49 ...
## $ vpcontv : num 112 28 21 18 161 47 11 6 147 31 ...
## $ municipio: int 1 1 1 1 2 2 2 2 3 3 ...

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)

Vamos a suponer que los municipios tienen 15 localidades y que tenemos un n


de 2500
##2500/15=167; necesitamos muestrear 167 municipios
n=167
d=cluster(global,clustername = c("municipio"),size = n,method = "srswor")
muestra1=global[d$ID_unit,] # es la muestra
peso=1/d$Prob
muestra1=cbind(muestra1,peso)
table(muestra1$nunicipio)

## < table of extent 0 >

Es importante que especifiquemos el número de conglomerados, en nuestro


caso tenemos 570 municipios
#número de conclometados enña pob N
ng=rep(570,(length(muestra1$distrito)))
muestra1=cbind(muestra1,ng)

Diseño de la muestra sin reemplazo


dclus=svydesign(id=muestra1$municipio,weights = muestra1$peso,fpc = muestra1$ng)

##estimamos el número total de viviendas particulares con TV


vt=svytotal(muestra1$vpcontv,design = dclus)
vt

## total SE
## [1,] 338382 63362

Estimamos la proporción de viviendas particulares con TV


vptv=svyratio(muestra1$vpcontv,muestra1$vp,dclus)
vptv

## Ratio estimator: svyratio.survey.design2(muestra1$vpcontv, muestra1$vp, dclus)


## Ratios=
## [,1]
## [1,] 0.543483
## SEs=
## [,1]
## [1,] 0.04070331

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

## 'data.frame': 8270 obs. of 7 variables:


## $ distrito : num 1 1 1 1 1 1 1 1 1 1 ...
## $ muni : num 1 1 1 1 2 2 2 2 3 3 ...
## $ localida : num 1 2 3 4 1 2 3 4 1 2 ...
## $ pobtotal : num 568 433 193 123 902 ...
## $ vp : num 150 69 56 25 234 75 13 7 242 49 ...
## $ vpcontv : num 112 28 21 18 161 47 11 6 147 31 ...
## $ municipio_2: int 1 1 1 1 2 2 2 2 3 3 ...

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

. . . .

. . . .

## 4728 570 8270 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 ...

muestreo.bietápico[2]#lista de las localidades en muestra

## $`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)

muestras <- muestra2[[2]]#localidades en muestra de los municipios en muestra

# Factor de expansión

fexp=1/muestras$Prob

muestras=cbind(muestras,fexp)

#Estimación
library(survey)#para estimación

dconglo <- svydesign(id=~municipio+localida,probs=~Prob,data=muestras)

Estimación total

est.tot=svytotal(~vpcontv,design = dconglo)
est.tot

## total SE
## vpcontv 509105 236150

estimacion.razon=svyratio(~vpcontv,~vp,dconglo)
estimacion.razon

## Ratio estimator: svyratio.survey.design2(~vpcontv, ~vp, dconglo)


## Ratios=
## vp
## vpcontv 0.5757359
## SEs=

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

También podría gustarte