3.3 Un esquema de muestreo para BigCity
En esta sección se establecerán las condiciones de selección de una muestra probabilística correspondiente con un esquema tradicional en la región. Los diseños de muestreo en las encuestas de hogares se caracterizan por ser diseños complejos los cuales involucran, entre otras, más de una etapa en la selección de las unidades de observación, estratos y estimadores complejos. En su mayoría, las unidades primarias de muestreo son seleccionadas dentro de los estratos.
Es muy común que, en las encuestas de hogares de la región, se formen estratos geográficos, socioeconómicos o una mezcla de ellos. Según la teoría de muestreo, los estratos corresponden con subgrupos poblacionales que abarcan grandes subdivisones de la población objetivo. Además la inferencia en los estratos se hace de forma independiente; esto es, las estimaciones del total, así como el cálculo y estimación de la varianza son el resultado de añadir o sumar para cada estrato la respectiva cantidad.
Se asume que, dentro de cada estrato \(U_h\) (\(h=1,\ldots, H\)) existen \(N_{Ih}\) unidades primarias de muestreo, de las cuales se selecciona una muestra \(s_{Ih}\) de tamaño \(n_{Ih}\) mediante un diseño de muestreo aleatorio simple. Estas muestras \(s_{Ih}\) corresponden con conglomerados o unidades primarias de muestreo (UPM) constituidas por unión o escisión de los sectores censales del país. Además, se supone que el sub-muestreo dentro de cada unidad primaria seleccionada es también aleatorio simple. En este sentido, para cada unidad primaria de muestreo seleccionada \(i\in s_{Ih}\) de tamaño \(N_i\) se selecciona una muestra \(s_i\) de elementos de tamaño \(n_i\).
En esta sección se utilizarán las funciones estudiadas en el capítulo anterior para la manipulación de la base de datos de ejemplo. Inicialmente, se cargarán las librerías ggplot2
que permitirá generar gráficos de alta calidad en R
, TeachingSampling
que permite tomar muestras probabilísticas utilizando los diseños de muestreo usuales, survey
y srvyr
que permitirán definir los diseños muestrales y por último dplyr
que permite la manipulación de las bases de datos.
Una vez cargada las librerías, se procede a realizar una agregación de las 1664 unidades primarias de muestreo en esta base de datos y calcular, para cada una de ellas, la cantidad de personas, el total de ingresos y total de gastos, además de la identificación de su estrato de muestreo:
data('BigCity')
FrameI <- BigCity %>% group_by(PSU) %>%
summarise(
Stratum = unique(Stratum),
Persons = n(),
Income = sum(Income),
Expenditure = sum(Expenditure)
)
attach(FrameI)
El siguiente código computacional muestra la información de las unidades primarias de muestreo.
PSU | Stratum | Persons | Income | Expenditure |
---|---|---|---|---|
PSU0001 | idStrt001 | 118 | 70911.72 | 44231.78 |
PSU0002 | idStrt001 | 136 | 68886.60 | 38381.90 |
PSU0003 | idStrt001 | 96 | 37213.10 | 19494.78 |
PSU0004 | idStrt001 | 88 | 36926.46 | 24030.74 |
PSU0005 | idStrt001 | 110 | 57493.88 | 31142.36 |
PSU0006 | idStrt001 | 116 | 75272.06 | 43473.28 |
PSU0007 | idStrt001 | 68 | 33027.84 | 21832.66 |
PSU0008 | idStrt001 | 136 | 64293.02 | 47660.02 |
PSU0009 | idStrt001 | 122 | 33156.14 | 23292.16 |
PSU0010 | idStrt002 | 70 | 65253.78 | 37114.76 |
Ahora bien, se va a suponer que en cada estrato se tomará una muestra de dos UPM. Suponiendo que el muestreo dentro del estrato es aleatorio simple, el factor de expansión será la división entre el número total de UPM en el estrato y el tamaño de muestra. Para calcular los tamaños poblacionales de los estratos (NIh), definir los tamaños de muestra dentro de cada estrato (nIh), y calcular el factor de expansión, se realiza de la siguiente manera:
sizes = FrameI %>% group_by(Stratum) %>%
summarise(NIh = n(),
nIh = 2,
dI = NIh / nIh)
NIh <- sizes$NIh
nIh <- sizes$nIh
La siguiente tabla ejemplifica el esquema de muestreo para los primeros 10 estratos de la población.
Stratum | NIh | nIh | dI |
---|---|---|---|
idStrt001 | 9 | 2 | 4.5 |
idStrt002 | 11 | 2 | 5.5 |
idStrt003 | 7 | 2 | 3.5 |
idStrt004 | 13 | 2 | 6.5 |
idStrt005 | 11 | 2 | 5.5 |
idStrt006 | 5 | 2 | 2.5 |
idStrt007 | 14 | 2 | 7.0 |
idStrt008 | 7 | 2 | 3.5 |
idStrt009 | 8 | 2 | 4.0 |
idStrt010 | 8 | 2 | 4.0 |
Como se desea extraer una muestra probabilística bajo un diseño aleatorio simple estratificado, se procede a utilizar la función S.STSI
de la librería TeachingSampling
como se muestra a continuación:
En este caso, el objeto sampleI
contendrá la información asociada a las UPM que fueron seleccionadas en esta primera etapa. Ahora bien, con la función left_join
se procede a pegar los tamaños muestrales a aquellas UPM’s que fueron seleccionadas en la muestra:
Una vez se tiene la base de datos con la muestra de UMP, se selecciona aquellas variables que son de interés para el estudio como sigue a continuación:
Stratum | NIh | nIh | dI | HHID | PersonID | PSU | Zone |
---|---|---|---|---|---|---|---|
idStrt001 | 9 | 2 | 4.5 | idHH00082 | idPer01 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idHH00082 | idPer02 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idHH00082 | idPer03 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idHH00082 | idPer04 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idHH00083 | idPer01 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idHH00083 | idPer02 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idHH00084 | idPer01 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idHH00084 | idPer02 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idHH00084 | idPer03 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idHH00084 | idPer04 | PSU0007 | Rural |
Luego de tener la información muestral de la primera etapa, en la base FrameII
se procede a calcular los tamaños de muestra dentro de cada UPM. En este caso, a modo de ejemplo, se tomará el 10% del tamaño de la UPM como tamaño de muestra en la segunda etapa y se utilizará la función ceiling
la cual aproxima al siguiente entero.
HHdb <- FrameII %>%
group_by(PSU) %>%
summarise(Ni = length(unique(HHID)),
ni = ceiling(Ni * 0.1))
Ni <- as.numeric(HHdb$Ni)
ni <- ceiling(Ni * 0.1)
sum(ni)
## [1] 691
Teniendo el vector de tamaños de hogares en cada UPM, junto con su correspondiente tamaño de muestra, se procede a realizar la selección mediante un muestreo aleatorio simple con la función S.SI
de la librería TeachingSampling
. A modo ilustrativo, la selección en la segunda etapa del diseño se realizará, inicialmente para la primera UPM. Posterior a eso, se realizará un ciclo con la función for
para hacerlo con las demás UPM. Para la primera UPM se realiza de la siguiente manera:
sam = S.SI(Ni[1], ni[1])
clusterII = FrameII[which(FrameII$PSU == sampleI[1]), ]
sam.HH <- data.frame(HHID = unique(clusterII$HHID)[sam])
clusterHH <- left_join(sam.HH, clusterII, by = "HHID")
clusterHH$dki <- Ni[1] / ni[1]
clusterHH$dk <- clusterHH$dI * clusterHH$dki
sam_data = clusterHH
De esta manera se ha seleccionado una muestra de unidades de la primera UPM seleccionada. A continuación se muestran los prime
Stratum | NIh | nIh | dI | PersonID | PSU | Zone |
---|---|---|---|---|---|---|
idStrt001 | 9 | 2 | 4.5 | idPer01 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idPer02 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idPer01 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idPer02 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idPer01 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idPer02 | PSU0007 | Rural |
idStrt001 | 9 | 2 | 4.5 | idPer03 | PSU0007 | Rural |
Para las demás UPM seleccionadas en la primera etapa de muestreo, la selección de la muestra se automatiza con el siguiente código computacional.
for (i in 2:length(Ni)) {
sam = S.SI(Ni[i], ni[i])
clusterII = FrameII[which(FrameII$PSU == sampleI[i]),]
sam.HH <- data.frame(HHID = unique(clusterII$HHID)[sam])
clusterHH <- left_join(sam.HH, clusterII, by = "HHID")
clusterHH$dki <- Ni[i] / ni[i]
clusterHH$dk <- clusterHH$dI * clusterHH$dki
data1 = clusterHH
sam_data = rbind(sam_data, data1)
}
encuesta <- sam_data
attach(encuesta
)
Nótese que la base de datos encuesta
contiene una muestra probabilística de la base poblacional BigCity. Una vez se obtiene la muestra (como se mostró anteriormente), el paso siguiente es definir el diseño utilizado y guardarlo como un objeto en R
para posteriormente poderlo utilizar y realizar el proceso de estimación de parámetros y cálculo de indicadores. Para realizar esta tarea, se utilizará el paquete srvyr
el cual ya fue definido en el capítulo anterior. Para este ejemplo, el diseño de muestreo utilizado fue un estratificado-bietápico en el cual, los estratos correspondieron a la variable Stratum
, las UPM correspondieron a la variable PSU
, los factores de expansión4 están en la variable dk
y por último, se le indica a la función as_survey_design
que las UPM’s están dentro de los estrato con el argumento nest = T
. A continuación, se presenta el código computacional:
Ya definido el diseño de muestreo como un objeto de R
se puede empezar a extraer información del mismo. Por ejemplo, se pueden extraer los pesos de muestreo de dicho diseño con la función weights
y luego sumarlos para revisar hasta cuánto me está expandiendo mi muestra. El código es el siguiente:
## [1] 146712.8
Como se puede observar, el tamaño poblacional estimado utilizando el diseño propuesto es de \(140579.2\). Sin embargo, el tamaño poblacional de la base BigCity es de \(150266\). Es normal que esto suceda pero debe ser corregido puesto que la suma de los factores de expansión debe sumar el total de la población. La solución para esto es calibrar los pesos de muestreo que se abordará a continuación.
El factor de expansión es el número de elementos menos uno de la población (no incluidos en la muestra) representados por el elemento incluido. Está inducido por el inverso de la probabilidad de inclusión.↩︎