5.2 Estimación de proporciones
En las encuestas de hogares, las proporciones permiten expresar el peso relativo que tienen determinados grupos dentro de la población. Por ejemplo, conocer el porcentaje de hogares que se encuentran por debajo de la línea de pobreza es esencial para evaluar desigualdades socioeconómicas. Para obtener este indicador, se calcula el promedio ponderado de una variable dicotómica, lo que asegura que la estimación represente adecuadamente la distribución poblacional.
De acuerdo con Heeringa, West y Berglund (2017), al transformar las categorías de respuesta originales en variables indicadoras \(y\) con valores de 1 y 0 (por ejemplo, 1 = Sí y 0 = No), la proporción estimada se obtiene mediante:
\[\hat{p}_d = \frac{\hat{N}_d}{\hat{N}} = \frac{\displaystyle\sum_{h=1}^{H} \sum_{i \in s_{1h}} \sum_{k \in s_{hi}} w_{hik} I(y_{hik}=d)} {\displaystyle\sum_{h=1}^{H} \sum_{i \in s_{1h}} \sum_{k \in s_{hi}} w_{hik}}\]
Dado que se trata de un estimador no lineal, su varianza puede aproximarse mediante la técnica de linealización de Taylor, utilizando como función de estimación \(z_{hik}=I(y_{hik}=d)-\hat{p}_d\). Actualmente, la mayoría de los programas estadísticos generan estas proporciones junto con sus errores estándar, generalmente presentados en forma de porcentajes.
En situaciones donde las proporciones se aproximan a 0 o 1, puede ser necesario aumentar el tamaño de la muestra para garantizar resultados sólidos. También es recomendable aplicar métodos que aseguren que los intervalos de confianza permanezcan dentro del rango [0,1], ya que los intervalos convencionales basados en la normal pueden desbordar estos límites y perder su utilidad interpretativa. Una alternativa es la transformación logit de la proporción estimada:
\[CI(\hat{p}_d; 1-\alpha) = \frac{\exp \left[\ln\left(\frac{\hat{p}_d}{1-\hat{p}_d}\right) \pm \frac{me(\hat{p}_d)}{\hat{p}_d(1-\hat{p}_d)}\right]}{1 + \exp \left[\ln\left(\frac{\hat{p}_d}{1-\hat{p}_d}\right) \pm \frac{me(\hat{p}_d)}{\hat{p}_d(1-\hat{p}_d)}\right]}\]
donde \(me(\hat{p}_d) = t_{1-\alpha/2, df} \times se(\hat{p}_d)\), siendo \(t_{1-\alpha/2, df}\) el cuantil de la distribución t de Student con \(df = n - H\) grados de libertad, dejando un área \(\alpha/2\) a su derecha. Este procedimiento asegura resultados interpretables incluso para proporciones extremas (0 o 1).
5.2.1 Estimación de proporciones en R
Otro parámetro de interés en las encuestas de hogares, particularmente con variables categóricas, es la estimación de proporciones poblacionales y sus errores estándar. En términos de notación, la estimación de proporciones de población se define como \(p\) y las proporciones muestrales como \(\pi\). Es común que muchos paquetes estadísticos generen estas estimaciones en escala de porcentaje, mientras que R las produce en la escala [0,1].
A continuación, se muestra cómo estimar la proporción de personas por zona usando srvyr y el diseño muestral previamente definido:
prop_zona <- diseno %>% group_by(Zone) %>%
summarise(
prop = survey_mean(vartype = c("se","ci"),
proportion = TRUE))
prop_zona## # A tibble: 2 × 5
## Zone prop prop_se prop_low prop_upp
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Rural 0.480 0.0140 0.452 0.508
## 2 Urban 0.520 0.0140 0.492 0.548
En este ejemplo, la función survey_mean calcula la proporción y, con el parámetro proportion = TRUE, se indica que se desea estimar una proporción poblacional. Los resultados muestran que aproximadamente el 47.9% de las personas viven en zona rural (IC 95%: 45.2% - 50.7%) y el 52% en zona urbana (IC 95%: 49.2% - 54.7%).
La librería survey también cuenta con la función survey_prop, diseñada específicamente para estimar proporciones, generando resultados equivalentes:
prop_zona2 <- diseno %>% group_by(Zone) %>%
summarise(prop = survey_prop(vartype = c("se","ci")))
prop_zona2## # A tibble: 2 × 5
## Zone prop prop_se prop_low prop_upp
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Rural 0.480 0.0140 0.452 0.508
## 2 Urban 0.520 0.0140 0.492 0.548
El lector puede elegir la función que le resulte más cómoda, ya que ambas permiten obtener estimaciones precisas y sus intervalos de confianza, facilitando la interpretación de los resultados para variables categóricas.
Si el interés ahora se centra en estimar subpoblaciones por ejemplo, proporción de hombres y mujeres que viven en la zona urbana, el código computacional es:
prop_sexoU <- sub_Urbano %>% group_by(Sex) %>%
summarise(prop = survey_prop(vartype = c("se","ci")))
prop_sexoU## # A tibble: 2 × 5
## Sex prop prop_se prop_low prop_upp
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Female 0.537 0.0130 0.511 0.563
## 2 Male 0.463 0.0130 0.437 0.489
Arrojando como resultado que, el 53.6% de las mujeres y 46.4% de los hombres viven en la zona urbana y con intervalos de confianza (51%, 56.2%) y (43.7%, 48.9%) respectivamente. Los intervalos anteriores nos reflejan que, con una confianza del 95% la cantidad estimada de mujeres que viven en la zona urbana es de56% y de hombres es de 48%.
Realizando el mismo ejercicio anterior, pero ahora en la zona rural se tiene:
prop_sexoR <- sub_Rural %>% group_by(Sex) %>%
summarise( n = unweighted(n()),
prop = survey_prop(vartype = c("se","ci")))
prop_sexoR## # A tibble: 2 × 6
## Sex n prop prop_se prop_low prop_upp
## <chr> <int> <dbl> <dbl> <dbl> <dbl>
## 1 Female 679 0.516 0.00824 0.500 0.533
## 2 Male 618 0.484 0.00824 0.467 0.500
el 51.6% de las mujeres y el 48.4% de los hombres viven en la zona rural con intervalos de confianza de (49.9%, 53.2%) y (46,7%, 50%) respectivamente. Los intervalos de confianza anteriores nos reflejan que, inclusive, con una confianza del 95%, la cantidad estimada de mujeres en la zona rural es de 53% y de hombres es de 50%.
Ahora bien, si nos centramos solo en la población de hombres en la base de datos y se desea estimar la proporción de hombres por zona, el código computacional es el siguiente:
prop_ZonaH <- sub_Hombre %>% group_by(Zone) %>%
summarise(prop = survey_prop(vartype = c("se","ci")))
prop_ZonaH## # A tibble: 2 × 5
## Zone prop prop_se prop_low prop_upp
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Rural 0.491 0.0178 0.455 0.526
## 2 Urban 0.509 0.0178 0.474 0.545
En la anterior tabla se puede observar que el 49% de los hombres están en la zona rural y el 51% en la zona urbana. Si se observa el intervalo de confianza se puede concluir que, con una confianza del 95%, la población estimada de hombres que viven en la zona rural puede llegar a ser el 52% y en urbana un 54%.
Si se realiza ahora el mismo ejercicio para la mujeres el código computacional es:
prop_ZonaM <- sub_Mujer %>% group_by(Zone) %>%
summarise(prop = survey_prop(vartype = c("se","ci")))
prop_ZonaM## # A tibble: 2 × 5
## Zone prop prop_se prop_low prop_upp
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Rural 0.470 0.0140 0.443 0.498
## 2 Urban 0.530 0.0140 0.502 0.557
De la tabla anterior se puede inferir que, el 47% de las mujeres están en la zona rural y el 52% en la zona urbana. Observando también intervalos de confianza al 95% de (44%, 49%) y (50%, 55%) para las zonas rural y urbana respectivamente.
Si se desea estimar por varios niveles de desagregación, con el uso de la función group_by es posible estimar un mayor número de niveles de agregación al combinar dos o más variables. Por ejemplo, si se desea estimar la proporción de hombres por zona y en estado de pobreza, se realiza de la siguiente manera:
prop_ZonaH_Pobreza <- sub_Hombre %>%
group_by(Zone, Poverty) %>%
summarise(
prop = survey_prop(vartype = c("se","ci")))%>%
data.frame()
prop_ZonaH_Pobreza## Zone Poverty prop prop_se prop_low prop_upp
## 1 Rural NotPoor 0.5488453 0.06264753 0.42434340 0.6675180
## 2 Rural Extreme 0.1975254 0.06745258 0.09582905 0.3637294
## 3 Rural Relative 0.2536293 0.03724070 0.18711180 0.3340755
## 4 Urban NotPoor 0.6599255 0.03662268 0.58415144 0.7283141
## 5 Urban Extreme 0.1128564 0.02451869 0.07264146 0.1712240
## 6 Urban Relative 0.2272181 0.02604053 0.17979436 0.2828371
De la salida anterior se puede observar que, en la ruralidad, el 19% de los hombres están en pobreza extrema mientras que en la zona urbana el 11% también están en pobreza extrema. Por otro lado, el 54% de los hombres que viven en la zona rural no están en pobreza mientras que, en la zona urbana el 65% no está en esta condición.
El mismo ejercicio anterior para la población de mujeres sería:
prop_ZonaM_Pobreza <- sub_Mujer %>%
group_by(Zone, Poverty) %>%
summarise( prop = survey_prop(vartype = c("se","ci"))) %>%
data.frame()
prop_ZonaM_Pobreza## Zone Poverty prop prop_se prop_low prop_upp
## 1 Rural NotPoor 0.5539176 0.05568825 0.44281376 0.6598834
## 2 Rural Extreme 0.1599702 0.05574533 0.07728197 0.3021593
## 3 Rural Relative 0.2861122 0.04357612 0.20803909 0.3794466
## 4 Urban NotPoor 0.6612172 0.03224726 0.59475977 0.7218725
## 5 Urban Extreme 0.1093753 0.02209821 0.07267359 0.1613865
## 6 Urban Relative 0.2294075 0.02655874 0.18106582 0.2861459
De la salida anterior se puede observar que, en la ruralidad, el 16% de las mujeres están en pobreza extrema mientras que en la zona urbana el 10% también están en pobreza extrema. Por otro lado, el 55% de las mujeres que viven en la zona rural no están en pobreza mientras que, en la zona urbana el 66% no está en esta condición.
Si lo que se desea ahora es estimar la proporción de hombres empleados o no por zona, se realiza de la siguiente manera:
prop_ZonaH_Ocupacion <- sub_Hombre %>%
group_by(Zone, Employment) %>%
summarise(prop = survey_prop(vartype = c("se","ci")))%>%
data.frame()
prop_ZonaH_Ocupacion## Zone Employment prop prop_se prop_low prop_upp
## 1 Rural Unemployed 0.05125186 0.015733138 0.02767737 0.09298588
## 2 Rural Inactive 0.10351629 0.020267044 0.06970747 0.15106011
## 3 Rural Employed 0.52251375 0.026522751 0.46994089 0.57459249
## 4 Rural <NA> 0.32271810 0.034987840 0.25763953 0.39547790
## 5 Urban Unemployed 0.04374724 0.008492664 0.02969659 0.06400729
## 6 Urban Inactive 0.16331307 0.018093938 0.13056379 0.20236490
## 7 Urban Employed 0.51337023 0.023637331 0.46658553 0.55992181
## 8 Urban <NA> 0.27956945 0.022085422 0.23799131 0.32531045
De la salida anterior se puede observar que, el 5% de los hombres que viven en la ruralidad están desempleados mientras que el 4% de los que viven en la zona urbana están en esta misma condición. Ahora bien, el 52% de los hombres que viven en la ruralidad trabajan mientras que el 51% de los que viven en la zona rural también están empleados.
Si se hace este mismo ejercicio para las mujeres se obtiene:
prop_ZonaM_Ocupacion <- sub_Mujer %>%
group_by(Zone, Employment) %>%
summarise(prop = survey_prop(vartype = c("se","ci"))) %>%
data.frame()
prop_ZonaM_Ocupacion## Zone Employment prop prop_se prop_low prop_upp
## 1 Rural Unemployed 0.01017065 0.005540256 0.003443802 0.02964628
## 2 Rural Inactive 0.44719272 0.035247218 0.378871481 0.51756811
## 3 Rural Employed 0.23999716 0.039151859 0.171118101 0.32570701
## 4 Rural <NA> 0.30263948 0.030765644 0.245379430 0.36676711
## 5 Urban Unemployed 0.02109678 0.005964137 0.012019202 0.03677508
## 6 Urban Inactive 0.36445938 0.021442387 0.323143427 0.40787461
## 7 Urban Employed 0.38455672 0.019452094 0.346831628 0.42372325
## 8 Urban <NA> 0.22988711 0.013850398 0.203613820 0.25845036
Para las mujeres se puede observar que, el 1% de las mujeres que viven en la ruralidad están desempleados mientras que el 2% de las que viven en la zona urbana están en esta misma condición. Ahora bien, el 24% de las mujeres que viven en la ruralidad trabajan mientras que el 38% de las que viven en la zona rural también están empleados.
Otro parámetro que es de interés es estimar en encuestas de hogares la cantidad de personas menores y mayores de edad en los hogares. A continuación, ejemplificamos la estimación de menores y mayores a 18 años cruzado por pobreza:
diseno %>% group_by(edad_18, pobreza) %>%
summarise(Prop = survey_prop(vartype = c("se", "ci"))) %>%
data.frame()## edad_18 pobreza Prop Prop_se Prop_low Prop_upp
## 1 < 18 anios 0 0.4984504 0.03729355 0.4251710 0.5717964
## 2 < 18 anios 1 0.5015496 0.03729355 0.4282036 0.5748290
## 3 >= 18 anios 0 0.6646140 0.02978353 0.6033275 0.7208132
## 4 >= 18 anios 1 0.3353860 0.02978353 0.2791868 0.3966725
De la anterior salida se puede observar que, el 50% de los menores de edad y el 33% de los mayores de edad están en estado de pobreza. Al observar los intervalos de confianza para los menores de edad en estado de pobreza se puede observar que, dicha estimación puede llegar, con una confianza del 95% a 57% mientras que a los mayores de edad puede llegar a 39%.
Ahora, si se hace este mismo ejercicio, pero esta vez cruzando con la variable que indica empleo se obtiene:
diseno %>% group_by(edad_18, desempleo) %>%
summarise(Prop = survey_prop(vartype = c("se", "ci"))) %>%
data.frame()## edad_18 desempleo Prop Prop_se Prop_low Prop_upp
## 1 < 18 anios 0 0.166704172 0.014856561 0.139321648 0.19822898
## 2 < 18 anios 1 0.003729693 0.001969183 0.001309174 0.01057808
## 3 < 18 anios NA 0.829566135 0.015009188 0.797760089 0.85726505
## 4 >= 18 anios 0 0.955234872 0.007552778 0.937660285 0.96802386
## 5 >= 18 anios 1 0.044765128 0.007552778 0.031976144 0.06233972
De la tabla anterior se puede observar que, el 0.3% de los menores de edad y el 4% de los mayores de edad están desempleados. Adicionalmente, con una confianza del 95% y basados en la muestra se puede observar que el desempleo en menores de edad puede llegar a 0.7% y para los mayores llega a un 5%.
Por otro lado, si el objetivo ahora es estimar la cantidad de menores de edad en la zona rural se realiza de la siguiente manera:
sub_Rural %>% group_by(edad_18) %>%
summarise(Prop = survey_prop(vartype = c("se", "ci"))) %>%
data.frame()## edad_18 Prop Prop_se Prop_low Prop_upp
## 1 < 18 anios 0.3711613 0.03021982 0.3128746 0.4334566
## 2 >= 18 anios 0.6288387 0.03021982 0.5665434 0.6871254
De la anterior tabla se puede observar que, el 37% de las personas que viven en la zona rural de la base de ejemplo son menores de edad con un intervalo de confianza al 95% comprendido entre 31% y 43%.
Como se mencionó al inicio del capítulo, es posible categorizar una variable de tipo cuantitativo como por ejemplo la edad y cruzarla con la variable que categoriza la empleabilidad. A continuación, se estima la edad de las mujeres por rango.
sub_Mujer %>% mutate(edad_rango = case_when(
Age>= 18 & Age <=35 ~ "18 - 35", TRUE ~ "Otro")) %>%
group_by(edad_rango, Employment) %>%
summarise(Prop = survey_prop(vartype = c("se", "ci"))) %>%
data.frame()## edad_rango Employment Prop Prop_se Prop_low Prop_upp
## 1 18 - 35 Unemployed 0.02893412 0.009142347 0.015403014 0.05370358
## 2 18 - 35 Inactive 0.51653851 0.037905184 0.441673039 0.59066889
## 3 18 - 35 Employed 0.45452737 0.035685710 0.385232560 0.52562948
## 4 Otro Unemployed 0.01015164 0.004026104 0.004617517 0.02217073
## 5 Otro Inactive 0.35271022 0.020725430 0.312834830 0.39474850
## 6 Otro Employed 0.25483870 0.021700305 0.214292062 0.30012671
## 7 Otro <NA> 0.38229944 0.022313379 0.339191706 0.42734277
De la anterior tabla se puede observar, entre otros que, las mujeres con edades entre 18 y 35 años el 2% están desempleadas y el 45% están empleadas. Análisis similares se pueden hacer para los demás rangos de edades.
Este mismo ejercicio se puede realizar para los hombres y hacer los mismos análisis. A continuación, se muestra el código computacional:
sub_Hombre %>% mutate(edad_rango = case_when(
Age>= 18 & Age <=35 ~ "18 - 35",TRUE ~ "Otro")) %>%
group_by(edad_rango, Employment) %>%
summarise(Prop = survey_prop(vartype = c("se", "ci"))) %>%
data.frame()## edad_rango Employment Prop Prop_se Prop_low Prop_upp
## 1 18 - 35 Unemployed 0.09637042 0.018215667 0.06584071 0.13895080
## 2 18 - 35 Inactive 0.08939940 0.016438321 0.06175556 0.12773290
## 3 18 - 35 Employed 0.81423018 0.022991735 0.76436394 0.85553799
## 4 Otro Unemployed 0.02606667 0.007175709 0.01506262 0.04474457
## 5 Otro Inactive 0.15344056 0.019883462 0.11805657 0.19706023
## 6 Otro Employed 0.38849664 0.020270309 0.34919327 0.42930563
## 7 Otro <NA> 0.43199614 0.021111842 0.39076987 0.47418649