4  Análisis de variables categóricas

En el análisis de encuestas de hogares, uno de los productos más habituales es la estimación de parámetros descriptivos asociados a variables categóricas, los cuales permiten sintetizar las principales características de la población. Estas medidas facilitan una representación clara y comprensible de fenómenos sociales a partir de información recolectada mediante muestras probabilísticas (CEPAL 2023).

Como explica Agresti (2019), las frecuencias y las proporciones se encuentran entre los indicadores descriptivos más utilizados para analizar variables categóricas. Las frecuencias representan el número de personas u hogares que pertenecen a cada categoría, como la cantidad de personas en condición de pobreza, mientras que las proporciones expresan el peso relativo de cada categoría dentro de la población, como el porcentaje de hogares en situación de hacinamiento. Aunque el análisis descriptivo de este tipo de variables se apoya principalmente en estos parámetros, también puede complementarse con medidas derivadas de variables numéricas, como los cuantiles y los indicadores de desigualdad abordados en el capítulo anterior.

Para estimar correctamente estas medidas a partir de una encuesta de hogares, es necesario comenzar por definir el diseño de muestreo. Este paso permite incorporar las características de la encuesta, incluidos los factores de expansión, las unidades primarias de muestreo y los estratos de selección. La adecuada especificación de estos elementos es fundamental para que las frecuencias, las proporciones y las demás estadísticas estimadas representen apropiadamente a la población objetivo y para que sus medidas de precisión reflejen la variabilidad introducida por el diseño muestral.

library(tidyverse)
library(survey)
library(srvyr)

survey_data <- readRDS("../Data/encuesta.rds")
options(survey.lonely.psu = "adjust")

survey_design <- survey_data %>%
  as_survey_design(
    strata = Stratum,
    ids = PSU,
    weights = wk,
    nest = TRUE
  )

A partir de la información original de la encuesta, se construyen algunas variables categóricas que serán utilizadas en los ejercicios desarrollados a lo largo de este capítulo. En particular, se define una variable dicotómica que identifica si una persona se encuentra o no en condición de pobreza, considerando como pobres a quienes pertenecen a cualquiera de las categorías de pobreza registradas en la encuesta. Asimismo, se crea una variable que permite distinguir a las personas desempleadas del resto de la población y otra que clasifica a las personas en dos grupos de edad: menores de 18 años y personas de 18 años o más. Estas variables facilitarán la desagregación de los resultados y la comparación de indicadores entre distintos grupos de la población:

survey_design <- survey_design %>%
  mutate(
    poor = ifelse(Poverty != "NotPoor", 1, 0),
    unemployed = ifelse(Employment == "Unemployed", 1, 0),
    age_18 = case_when(
      Age < 18 ~ "< 18 years",
      TRUE ~ ">= 18 years"
    )
  )

En el código anterior se crean nuevas variables derivadas utilizando la función mutate() del paquete dplyr. Las variables poor y unemployed se construyen mediante la función ifelse(), que evalúa una condición lógica y asigna un valor dependiendo de si esta se cumple o no. En este caso, las variables toman el valor 1 cuando la persona se encuentra en condición de pobreza o desempleo, respectivamente, y 0 en caso contrario. Por su parte, la variable age_18 se genera mediante la función case_when(), la cual permite definir categorías a partir de una o varias condiciones de forma más clara y flexible que ifelse(). Esta función resulta especialmente útil cuando se requiere construir variables categóricas con múltiples niveles. En el ejemplo, las personas menores de 18 años se clasifican en la categoría "< 18 years", mientras que el resto se agrupa en la categoría ">= 18 years".

Además de las variables categóricas definidas previamente, es necesario establecer subpoblaciones que permitan obtener estimaciones desagregadas y comparar los indicadores entre distintos grupos. Para los ejemplos desarrollados en este capítulo, se consideran cuatro subpoblaciones definidas según la zona de residencia y el sexo: población urbana, población rural, mujeres y hombres.

urban_subset <- survey_design %>%
  filter(Zone == "Urban")

rural_subset <- survey_design %>%
  filter(Zone == "Rural")

female_subset <- survey_design %>%
  filter(Sex == "Female")

male_subset <- survey_design %>%
  filter(Sex == "Male")

4.1 Estimación de parámetros descriptivos

Esta sección presenta los principales parámetros descriptivos utilizados para analizar variables categóricas en encuestas de hogares. En particular, se aborda la estimación de tamaños poblacionales, proporciones y distribuciones por dominios o subpoblaciones, incorporando los factores de expansión y la estructura del diseño muestral. Estos indicadores permiten describir la composición de la población y cuantificar la presencia relativa de distintos grupos de interés.

4.1.1 Tamaños poblacionales

En el análisis de encuestas de hogares, es fundamental estimar el tamaño de las distintas subpoblaciones y la proporción que cada una representa dentro de la población total (CEPAL 2023). Estas estimaciones permiten cuantificar grupos definidos por características demográficas o socioeconómicas y describir su importancia relativa. Por ejemplo, conocer el número y la proporción de personas que se encuentran por debajo de la línea de pobreza, están desempleadas o han alcanzado un determinado nivel educativo contribuye a identificar brechas entre grupos, evaluar sus condiciones de bienestar y generar información relevante para el diseño de políticas públicas.

Las subpoblaciones se definen mediante variables categóricas que clasifican a las unidades de la población finita en grupos mutuamente excluyentes, como las distintas condiciones de actividad económica o los niveles educativos alcanzados. El tamaño de una subpoblación corresponde al número total de personas u hogares de la población que pertenecen a una categoría determinada. Para estimarlo a partir de una encuesta, se suman los pesos muestrales de las unidades clasificadas en esa categoría, dado que cada peso indica cuántas personas u hogares de la población representa la unidad observada en la muestra. A partir de estas estimaciones también puede calcularse la proporción que cada subpoblación representa respecto del total poblacional. Por ende, el estimador del tamaño de la población (Särndal, Swensson, y Wretman 2003), se define como:

\[ \hat{N} = \sum_{h} \sum_{i} \sum_{k} w_{hik} \]

En donde, \(w_{hik}\) es el peso o factor de expansión de la unidad \(k\) en la UPM \(i\) del estrato \(h\).

Asimismo, la estimación del tamaño de una subpoblación sigue el mismo principio que la estimación del tamaño total, pero se restringe a las unidades que presentan una característica determinada. Para estimar cuántas personas u hogares pertenecen a una categoría específica \(d\), se identifica en la muestra a las unidades que cumplen dicha condición y se suman sus pesos muestrales. De esta manera, cada unidad contribuye a la estimación de acuerdo con el número de unidades de la población que representa:

\[ \hat{N}_d = \sum_{h} \sum_{i} \sum_{k} w_{hik} \ I(y_{hik}=d) \]

donde \(\hat{N}_d\) representa el tamaño estimado de la subpoblación perteneciente a la categoría \(d\). Por su parte, \(I(y_{hik}=d)\) es una variable binaria que toma el valor de 1 si la unidad \(k\) de la UPM \(i\) en el estrato \(h\) pertenece a la categoría \(d\) de la variable de interés \(y\), y 0 en caso contrario. Nótese además que, si \(d\) fue utilizada en la calibración de los pesos, el valor de \(\hat{N}_d\) coincidirá con el control externo aplicado y por ende su error estándar será nulo (Gutiérrez 2016).

En R, utilizando el diseño muestral definido previamente, es posible, generar resúmenes de la información de la encuesta para cada categoría de la variable Zone. Para ello, los datos se agrupan según la zona geográfica, lo que permite obtener resultados independientes para cada uno de estos dominios de estudio. A partir de este procedimiento se producen dos tipos principales de resultados. En primer lugar, se calcula el número de observaciones efectivamente recolectadas en la muestra, sin considerar los factores de expansión, usando la función unweighted(). En segundo lugar, se estima el tamaño poblacional asociado a cada dominio incorporando la información del diseño de muestreo. Junto con las estimaciones poblacionales también se obtienen medidas de precisión, como el error estándar y el intervalo de confianza. Los resultados se presentan en la tabla 4.1.

survey_design %>%
  group_by(Zone) %>%
  summarise(
    n = unweighted(n()),
    size = survey_total(vartype = c("se", "ci"))
  )
Tabla 4.1: Tamaño poblacional estimado por zona geográfica
Zone n size size_se size_low size_upp
Rural 1297 72102 3062 66039 78165
Urban 1308 78164 2847 72526 83802

En efecto, el tamaño de muestra fue de 1297 personas en la zona rural y de 1308 en la zona urbana. A partir de estas muestras se estimó una población de 72,102 personas para la zona rural, con un error estándar de 3,062, y de 78,164 personas para la zona urbana, con un error estándar de 2,847. Considerando un nivel de confianza del 95%, los intervalos de confianza para las estimaciones poblacionales fueron de 66,038.5 a 78,165.4 personas en la zona rural y de 72,526.2 a 83,801.7 personas en la zona urbana. De manera análoga, también es posible estimar el número de personas según los distintos niveles de pobreza.

survey_design %>%
  group_by(Poverty) %>%
  summarise(size = survey_total(vartype = c("se", "ci")))
Tabla 4.2: Tamaño poblacional estimado por condición de pobreza
Poverty size size_se size_low size_upp
NotPoor 91398 4395 82696 100101
Extreme 21519 4949 11719 31319
Relative 37349 3695 30032 44666

La tabla 4.2 refelja una población en la que la mayoría de las personas no vive en pobreza, pero en la que esa aparente normalidad convive con una fractura difícil de considerar marginal: cerca de 58.868 personas se encuentran en pobreza relativa o extrema. De ellas, 21.519 padecen las privaciones más severas y 37.349 permanecen por debajo de los niveles de vida socialmente aceptables.

Otra variable categórica relevante en las encuestas de hogares es el estado de ocupación. En este caso, la información se agrupa según las categorías de la variable Employment, lo que permite obtener estimaciones separadas para cada condición de actividad laboral de la población. Mediante el uso de la función group_by() es posible desagregar las estimaciones en niveles más detallados, facilitando el análisis comparativo entre los distintos grupos ocupacionales. En primer lugar, se excluyen los registros con valores faltantes en la variable de empleo, garantizando que los resultados se calculen únicamente con personas activas en la fuerza de trabajo. Posteriormente, para cada categoría de ocupación se estima el tamaño poblacional, junto con el error estándar y los intervalos de confianza.

survey_design %>%
  filter(!is.na(Employment)) %>%
  group_by(Employment) %>%
  summarise(size = survey_total(vartype = c("se", "ci")))
Tabla 4.3: Tamaño poblacional estimado por estado de ocupación
Employment size size_se size_low size_upp
Unemployed 4635 761 3129 6141
Inactive 41465 2163 37183 45748
Employed 61877 2540 56847 66907

A partir de los resultados presentados en la tabla 4.3, se estima que la población ocupada asciende a 61.877 personas. Por su parte, la población inactiva se estima en 41.465 personas, mientras que cerca de 4.635 personas se encontrarían desempleadas. En conjunto, las estimaciones muestran que los desempleados representan el grupo de menor tamaño, aunque la amplitud relativa de su intervalo de confianza indica una mayor incertidumbre en comparación con las estimaciones de la población ocupada e inactiva.

Finalmente, las estimaciones también pueden desagregarse simultáneamente por más de una variable categórica. Por ejemplo, es posible analizar el estado ocupacional según el nivel de pobreza, cuyos resultados se presentan en la tabla 4.4, de donde se puede concluir que el empleo constituye una protección importante frente a la pobreza. Entre las 61.877 personas ocupadas, 17.277 continúan en situación de pobreza, de las cuales 5.128 se encuentran en pobreza extrema y 12.149 en pobreza relativa. La vulnerabilidad es aún más visible entre las 41.465 personas inactivas, pues 17.119 viven en pobreza, mientras que entre las 4.635 personas desempleadas apenas 1.768 son clasificadas como no pobres y 2.866 padecen pobreza extrema o relativa.

survey_design %>%
  filter(!is.na(Employment)) %>%
  group_by(Employment, Poverty) %>%
  cascade(
    size = survey_total(vartype = c("se", "ci")),
    .fill = "Total"
  )
Tabla 4.4: Tamaño poblacional estimado por estado de ocupación y condición de pobreza
Employment Poverty size size_se size_low size_upp
Unemployed NotPoor 1768 405 966 2571
Unemployed Extreme 1169 348 480 1859
Unemployed Relative 1697 458 791 2604
Unemployed Total 4635 761 3129 6141
Inactive NotPoor 24346 1736 20908 27784
Inactive Extreme 6422 1321 3807 9037
Inactive Relative 10697 1460 7806 13589
Inactive Total 41465 2163 37183 45748
Employed NotPoor 44600 2596 39460 49741
Employed Extreme 5128 1122 2907 7349
Employed Relative 12149 1347 9483 14816
Employed Total 61877 2540 56847 66907
Total Total 107977 3466 101115 114839

4.1.2 Proporciones

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 y caracterizar condiciones de bienestar. Para obtener este tipo de estimaciones, se calcula el promedio ponderado de la variable dicotómica, lo que asegura que la estimación represente adecuadamente la distribución poblacional. Al convertir las categorías originales en variables indicadoras, la proporción estimada se calcula como:

\[ \hat{p}_d = \frac{\hat{N}_d}{\hat{N}} = \frac{\displaystyle\sum_{h} \sum_{i} \sum_{k} w_{hik} \ I(y_{hik}=d)} {\displaystyle\sum_{h} \sum_{i} \sum_{k} w_{hik}} \]

Como explica Gutiérrez (2016), si bien este estimador es conceptualmente sencillo, corresponde a una función no lineal de los totales poblacionales. Por esta razón, para derivar sus propiedades estadísticas, particularmente su varianza y error estándar, es necesario recurrir a métodos de aproximación como la linealización de Taylor. En este contexto, se utiliza la función \(z_{hik}=I(y_{hik}=d)-\hat{p}_d\). En la práctica, los programas estadísticos implementan automáticamente estos procedimientos y generan las estimaciones de proporciones junto con sus respectivos errores estándar e intervalos de confianza.

Cuando las proporciones estimadas toman valores cercanos a 0 o a 1, su precisión puede disminuir y las aproximaciones estadísticas tradicionales pueden resultar poco adecuadas. En estos casos, suele ser necesario disponer de tamaños de muestra mayores para obtener estimaciones suficientemente estables. Este problema adquiere especial importancia al analizar fenómenos poco frecuentes o muy concentrados, ya que pequeñas variaciones en la composición de la muestra pueden ocasionar cambios sustanciales en las proporciones estimadas (Edward L. Korn y Graubard 1999).

Esta dificultad también afecta la construcción de los intervalos de confianza. Como señala Agresti (2019), los intervalos basados directamente en la aproximación normal pueden producir límites inferiores menores que 0 o límites superiores mayores que 1, resultados incompatibles con el rango de una proporción. Una alternativa consiste en construir el intervalo en la escala logit y transformarlo posteriormente a la escala original. Para una proporción estimada \(\hat{p}_d\), el intervalo de confianza con nivel \(1-\alpha\) puede expresarse como

\[ CI(\hat{p}_d;1-\alpha) = \left[ \frac{\exp(L_d)}{1+\exp(L_d)}, \frac{\exp(U_d)}{1+\exp(U_d)} \right], \]

En donde

\[ L_d = \log\left(\frac{\hat{p}_d}{1-\hat{p}_d}\right) t_{1-\alpha/2, df} \frac{\widehat{SE}(\hat{p}_d)} {\hat{p}_d(1-\hat{p}_d)} \]

y

\[ U_d = \log\left(\frac{\hat{p}_d}{1-\hat{p}_d}\right) + t_{1-\alpha/2, df} \frac{\widehat{SE}(\hat{p}_d)} {\hat{p}_d(1-\hat{p}_d)}. \]

Al aplicar la transformación inversa del logit a los límites \(L_d\) y \(U_d\), se garantiza que el intervalo resultante permanezca dentro del rango válido entre 0 y 1. Nótese que el término \(t_{1-\alpha/2, df}\) representa el percentil asociado al nivel de confianza seleccionado, considerando \(df\) grados de libertad. Como se advirtió anteriormente, en el contexto de encuestas complejas, estos grados de libertad suelen definirse como la diferencia entre el número de unidades primarias de muestreo (UPM) y el número de estratos presentes en el subgrupo o dominio de análisis.

A diferencia de otros programas estadísticos que presentan los resultados en porcentaje, R reporta las proporciones en la escala [0,1]. Las funciones utilizadas permiten calcular directamente las estimaciones, sus errores estándar e intervalos de confianza, lo que facilita el análisis de variables categóricas en encuestas de hogares. A continuación se ilustra cómo obtener la proporción de personas por zona usando el diseño muestral previamente definido.

survey_design %>%
  group_by(Zone) %>%
  summarise(proportion = survey_mean(
    vartype = c("se", "ci"),
    proportion = TRUE
  ))
Tabla 4.5: Proporción de personas por zona geográfica
Zone proportion proportion_se proportion_low proportion_upp
Rural 0.48 0.014 0.452 0.508
Urban 0.52 0.014 0.492 0.548

En este ejemplo, la función survey_mean() se utiliza para calcular la estimación de proporciones poblacionales y, mediante el argumento proportion = TRUE, se especifica que el interés se centra en estimar la distribución relativa de la población entre las distintas categorías de la variable analizada. Los resultados presentados en la tabla 4.5 indican que aproximadamente el 48% de las personas reside en la zona rural, con un intervalo de confianza del 95% entre 45.2% y 50.8%, mientras que el 52% corresponde a población residente en la zona urbana, con un intervalo de confianza entre 49.2% y 54.8%.

4.1.3 Proporciones por dominios y subpoblaciones

La librería srvyr también dispone de la función survey_prop(), diseñada específicamente para la estimación de proporciones en encuestas complejas. Esta función produce resultados equivalentes a los obtenidos con survey_mean(), facilitando además una sintaxis más directa e intuitiva cuando el objetivo del análisis es exclusivamente el cálculo de proporciones. Además, si el interés se centra ahora en estimar proporciones para subpoblaciones específicas, por ejemplo, la proporción de hombres y mujeres que residen en la zona urbana, es necesario restringir el análisis a dicho dominio de estudio y posteriormente calcular las estimaciones correspondientes para cada categoría de sexo.

urban_subset %>%
  group_by(Sex) %>%
  summarise(proportion = survey_prop(vartype = c("se", "ci")))
Tabla 4.6: Proporción de hombres y mujeres en zona urbana
Sex proportion proportion_se proportion_low proportion_upp
Female 0.537 0.013 0.511 0.563
Male 0.463 0.013 0.437 0.489

La tabla 4.6 muestra una leve mayoría femenina en la población urbana: las mujeres representan el 53,6%, con un intervalo de confianza entre 51,0% y 56,2%, frente al 46,4% de los hombres, cuyo intervalo se sitúa entre 43,7% y 48,9%.

Ahora bien, si el análisis se restringe únicamente a la población masculina incluida en la base de datos y el interés consiste en estimar la distribución porcentual de los hombres según la zona de residencia, es posible calcular la proporción de hombres que viven en áreas urbanas y rurales utilizando el diseño muestral previamente definido.

male_subset %>%
  group_by(Zone) %>%
  summarise(proportion = survey_prop(vartype = c("se", "ci")))
Tabla 4.7: Distribución por zona en la subpoblación masculina
Zone proportion proportion_se proportion_low proportion_upp
Rural 0.491 0.018 0.455 0.526
Urban 0.509 0.018 0.474 0.545

Los resultados de la tabla 4.7 revelan una población masculina repartida casi por igual entre lo urbano y lo rural: el 50,9% reside en áreas urbanas, con un intervalo de confianza entre 47,4% y 54,5%, mientras que el 49,1% habita en zonas rurales, con un intervalo entre 45,5% y 52,6%.

La función group_by() permite generar distintos niveles de desagregación mediante la combinación de dos o más variables categóricas. Por ejemplo, es posible estimar la proporción de hombres según zona de residencia y condición de pobreza de manera simultánea. Este tipo de análisis permite caracterizar con mayor detalle las condiciones socioeconómicas de subpoblaciones específicas.

male_subset %>%
  group_by(Zone, Poverty) %>%
  summarise(proportion = survey_prop(vartype = c("se", "ci")))
Tabla 4.8: Proporción de hombres por zona y condición de pobreza
Zone Poverty proportion proportion_se proportion_low proportion_upp
Rural NotPoor 0.549 0.063 0.424 0.668
Rural Extreme 0.198 0.067 0.096 0.364
Rural Relative 0.254 0.037 0.187 0.334
Urban NotPoor 0.660 0.037 0.584 0.728
Urban Extreme 0.113 0.025 0.073 0.171
Urban Relative 0.227 0.026 0.180 0.283

La tabla 4.8 revela una geografía social particular. Mientras en las zonas urbanas el 66,0% de los hombres se encuentra fuera de la pobreza, en las rurales esta proporción desciende al 54,9%; mientras que la pobreza extrema aumenta del 11,3% al 19,8% al pasar de las zonas urbanas a las rurales. La pobreza relativa, en cambio, permanece más cercana entre ambos territorios.

Las variables cuantitativas también pueden agruparse en categorías para facilitar su análisis conjunto con variables cualitativas. Por ejemplo, la edad puede clasificarse en rangos etarios y cruzarse posteriormente con la condición de actividad, lo que permite examinar cómo varía la participación laboral entre distintos grupos de población. En este caso, la población femenina se divide en dos categorías: mujeres de 18 a 35 años y mujeres pertenecientes a los demás grupos de edad. A partir de esta clasificación, se estima la distribución de la condición laboral en cada grupo etario.

female_subset %>%
  filter(!is.na(Employment)) %>%
  mutate(age_range = case_when(
    Age >= 18 & Age <= 35 ~ "18 - 35",
    TRUE ~ "Other"
  )) %>%
  group_by(age_range, Employment) %>%
  summarise(proportion = survey_prop(vartype = c("se", "ci")))
Tabla 4.9: Proporción de mujeres por rango de edad y estado de ocupación
age_range Employment proportion proportion_se proportion_low proportion_upp
18 - 35 Unemployed 0.029 0.009 0.015 0.054
18 - 35 Inactive 0.517 0.038 0.442 0.591
18 - 35 Employed 0.455 0.036 0.385 0.526
Other Unemployed 0.016 0.007 0.007 0.036
Other Inactive 0.571 0.030 0.511 0.629
Other Employed 0.413 0.029 0.356 0.472

La tabla 4.9 muestra que la inactividad constituye la condición predominante entre las mujeres de ambos grupos de edad: alcanza el 51,7% entre aquellas de 18 a 35 años y el 57,1% entre las demás. Las mujeres más jóvenes presentan una mayor proporción de ocupación: 45,5%, frente a 41,3%, pero también un desempleo algo más elevado, de 2,9% frente a 1,6%.

4.2 Estimación de parámetros de asociación

Esta sección introduce herramientas para estudiar la relación entre dos o más variables categóricas en el contexto de encuestas complejas. A partir de tablas cruzadas y medidas como la razón de odds, se busca describir cómo se distribuyen ciertos grupos o condiciones de interés de manera conjunta, incorporando los pesos muestrales y la variabilidad inducida por el diseño.

4.2.1 Tablas cruzadas

De acuerdo con Heeringa, West, y Berglund (2017) y Agresti (2019), además de analizar cada variable de manera individual, resulta especialmente relevante estudiar si existe asociación entre dos variables categóricas. Este tipo de análisis permite identificar patrones y relaciones que aportan información valiosa para la toma de decisiones y la comprensión de fenómenos sociales. Por ejemplo, en el ámbito de las políticas públicas es posible relacionar educación y empleo para diseñar estrategias orientadas al mercado laboral; en la evaluación de programas sociales, analizar diferencias en el acceso a servicios de salud según el nivel de ingresos; y en investigación social, estudiar cómo variables demográficas y condiciones de vida se relacionan entre sí para comprender dinámicas y tendencias de la población.

Formalmente, sean \(x\) y \(y\) dos variables categóricas con \(R\) categorías para las filas y \(C\) categorías para las columnas, respectivamente. En el contexto de encuestas por muestreo, el interés suele centrarse en estimar la distribución conjunta de ambas variables, es decir, la proporción de unidades poblacionales que pertenecen simultáneamente a cada combinación posible de categorías. Para ello, las entradas de una tabla cruzada, también conocida como tabla de contingencia, se estiman mediante frecuencias ponderadas obtenidas a partir de los factores de expansión y del diseño muestral. La estimación del total poblacional asociado a cada celda \((r,c)\) se define como:

\[ \hat{N}_{rc} = \sum_{h} \sum_{i} \sum_{k} w_{hik} \ I(x_{hik}=r,\ y_{hik}=c), \]

donde \(w_{hik}\) representa el factor de expansión asociado al elemento \(k\) de la UPM \(i\) perteneciente al estrato \(h\), mientras que \(I(x_{hik}=r,\ y_{hik}=c)\) corresponde a una función indicadora que toma el valor de uno cuando la unidad observada pertenece simultáneamente a la categoría \(r\) de la variable \(x\) y a la categoría \(c\) de la variable \(y\), y toma el valor de cero en cualquier otro caso.

Además de las frecuencias conjuntas, también es posible estimar los tamaños marginales por filas y columnas, definidos respectivamente como \(\hat{N}_{r+} = \sum_{c=1}^{C} \hat{N}_{rc}\) y \(\hat{N}_{+c} = \sum_{r=1}^{R} \hat{N}_{rc}\). Mientras que el total general se expresa como \(\hat{N}_{++} = \sum_{r=1}^{R}\sum_{c=1}^{C} \hat{N}_{rc}\). Tradicionalmente, las tablas de contingencia se representan mediante arreglos bidimensionales de dimensión \(R \times C\), donde \(R\) corresponde al número de filas y \(C\) al número de columnas. La tabla 4.10 presenta la estructura general de este tipo de tablas:

Tabla 4.10: Estructura general de una tabla de contingencia con \(R\) filas y \(C\) columnas
\(1\) \(2\) \(\cdots\) \(C\) Total
\(1\) \(\widehat{N}_{11}\) \(\widehat{N}_{12}\) \(\cdots\) \(\widehat{N}_{1C}\) \(\widehat{N}_{1+}\)
\(2\) \(\widehat{N}_{21}\) \(\widehat{N}_{22}\) \(\cdots\) \(\widehat{N}_{2C}\) \(\widehat{N}_{2+}\)
\(\vdots\) \(\vdots\) \(\vdots\) \(\ddots\) \(\vdots\) \(\vdots\)
\(R\) \(\widehat{N}_{R1}\) \(\widehat{N}_{R2}\) \(\cdots\) \(\widehat{N}_{RC}\) \(\widehat{N}_{R+}\)
Total \(\widehat{N}_{+1}\) \(\widehat{N}_{+2}\) \(\cdots\) \(\widehat{N}_{+C}\) \(\widehat{N}_{++}\)

Sin embargo, las tablas de contingencia también pueden extenderse para incorporar más variables adicionales, generando subconjuntos o subtablas que permiten estudiar relaciones más complejas entre variables categóricas. A partir de los tamaños estimados, también pueden estimarse proporciones para cada celda de la tabla de contingencia, de la siguiente manera:

\[ \hat{p}_{rc}=\frac{\hat{N}_{rc}}{\hat{N}_{++}} \]

Aunque las tablas de contingencia se representan tradicionalmente como arreglos bidimensionales de dimensión \(R \times C\), en las aplicaciones que siguen los resultados se presentan en formato largo. En esta disposición, cada combinación de categorías de las variables involucradas ocupa una fila de la tabla. Esta reorganización no altera las estimaciones contenidas en la tabla de contingencia original, sino que facilita la incorporación, para cada una de ellas, de medidas de precisión como el error estándar y los límites del intervalo de confianza. Siguiendo con la base de datos de ejemplo, se estima la distribución porcentual por sexo dentro de cada condición de pobreza, junto con sus respectivos errores estándar e intervalos de confianza. Los resultados se presentan en la tabla 4.11. Esta forma de presentación permite describir la composición por sexo de la población según su condición de pobreza y, al mismo tiempo, evaluar la precisión de las estimaciones teniendo en cuenta el diseño muestral.

poverty_design <- survey_design %>%
  mutate(poor = factor(
    poor,
    levels = 0:1,
    labels = c("Not poor", "Poor")
  ))
poverty_design %>%
  group_by(poor, Sex) %>%
  summarise(proportion = survey_prop(vartype = c("se", "ci")))
Tabla 4.11: Proporción de hombres y mujeres en condición de pobreza y no pobreza
poor Sex proportion proportion_se proportion_low proportion_upp
Not poor Female 0.529 0.012 0.505 0.554
Not poor Male 0.471 0.012 0.446 0.495
Poor Female 0.524 0.016 0.492 0.555
Poor Male 0.476 0.016 0.445 0.508

Los resultados indican que el 52.4% de la población en condición de pobreza corresponde a mujeres, mientras que el 47.6% corresponde a hombres. Para las mujeres, el intervalo de confianza al 95% se encuentra entre 49.2% y 55.5%, mientras que para los hombres el intervalo correspondiente se ubica entre 44.5% y 50.8%. Estas estimaciones permiten observar la distribución relativa de la pobreza según sexo, considerando además la incertidumbre inherente al proceso de muestreo.

Otro análisis de interés relacionado con tablas de doble entrada en encuestas de hogares consiste en estimar el porcentaje de personas desempleadas según sexo. El procedimiento correspondiente y sus resultados se presentan en la tabla 4.12.

sex_by_employment_proportion <- survey_design %>%
  filter(!is.na(Employment)) %>%
  group_by(Employment, Sex) %>%
  summarise(proportion = survey_prop(vartype = c("se", "ci")))
Tabla 4.12: Proporción de hombres y mujeres por estado de ocupación
Employment Sex proportion proportion_se proportion_low proportion_upp
Unemployed Female 0.273 0.054 0.180 0.390
Unemployed Male 0.727 0.054 0.610 0.820
Inactive Female 0.770 0.023 0.721 0.813
Inactive Male 0.230 0.023 0.187 0.279
Employed Female 0.405 0.019 0.369 0.442
Employed Male 0.595 0.019 0.558 0.631

De la anterior salida se puede observar que el 27.2% de las personas desempleadas son mujeres y el 72.7% son hombres, con errores estándar de 5.3 puntos porcentuales para ambas estimaciones. Si ahora el objetivo es estimar la pobreza por región, se utiliza la variable numérica poor dentro de un flujo srvyr, como se muestra en la tabla 4.13.

region_poverty_proportion <- survey_design %>%
  group_by(Region, poor) %>%
  summarise(proportion = survey_prop(vartype = c("se", "ci")))
Tabla 4.13: Proporción en condición de pobreza por región
Region poor proportion proportion_se proportion_low proportion_upp
Norte 0 0.641 0.055 0.526 0.742
Norte 1 0.359 0.055 0.258 0.474
Sur 0 0.656 0.043 0.566 0.737
Sur 1 0.344 0.043 0.263 0.434
Centro 0 0.635 0.079 0.470 0.773
Centro 1 0.365 0.079 0.227 0.530
Occidente 0 0.599 0.047 0.504 0.687
Occidente 1 0.401 0.047 0.313 0.496
Oriente 0 0.548 0.088 0.374 0.711
Oriente 1 0.452 0.088 0.289 0.626

Los resultados muestran diferencias regionales relevantes en la incidencia de la pobreza. La mayor proporción estimada se observa en Oriente, donde el 45.2% de la población se encuentra en condición de pobreza, seguida de Occidente con 40.1%; en contraste, Sur presenta la menor proporción, con 34.4%, mientras que Norte y Centro registran valores de 35.9% y 36.5%, respectivamente. Sin embargo, estas diferencias deben interpretarse con cautela, ya que la precisión de las estimaciones varía considerablemente entre regiones: Oriente y Centro presentan los errores estándar más altos y, en consecuencia, intervalos de confianza más amplios. De hecho, el notable solapamiento de los intervalos de confianza sugiere que las diferencias observadas entre regiones no necesariamente reflejan diferencias estadísticamente significativas.

4.2.2 Razón de odds

De acuerdo con Agresti (2019), la razón de odds es una medida ampliamente utilizada para estudiar la asociación entre dos variables categóricas, especialmente cuando el interés se centra en comparar la probabilidad de ocurrencia de un evento entre distintos grupos poblacionales. Su interpretación se basa en comparar las ventajas relativas (odds) de ocurrencia de un evento entre dos categorías de análisis (Díaz Monroy, Morales Rivera, y León Dávila 2018).

En este sentido, este parámetro permite evaluar cómo cambia dicha ventaja entre diferentes grupos de interés y constituye una herramienta fundamental en estudios sociales, económicos y de salud; además, esta medida también puede utilizarse para cuantificar la relación entre los niveles de una variable y un factor categórico, comparando las ventajas relativas de ocurrencia del evento en cada grupo.

Por ejemplo, suponga que se desea estudiar la asociación entre el sexo de las personas y la condición de pobreza. En particular, interesa evaluar si la ventaja relativa de pertenecer al grupo de personas no pobres frente al grupo de personas pobres es diferente entre mujeres y hombres. Para ello, puede expresarse la siguiente razón de odds:

\[ \mathit{OR} = \frac{ P(\text{pobreza}=0 \mid \text{Sex}=\text{Female}) \big/ P(\text{pobreza}=1 \mid \text{Sex}=\text{Female}) }{ P(\text{pobreza}=0 \mid \text{Sex}=\text{Male}) \big/ P(\text{pobreza}=1 \mid \text{Sex}=\text{Male}) } \]

La expresión del numerador representa, entre las mujeres, la ventaja relativa de encontrarse en condición de no pobreza respecto de encontrarse en pobreza. De manera análoga, el denominador representa esa misma ventaja entre los hombres. Por tanto, la razón de odds compara ambas ventajas relativas y permite cuantificar si la asociación entre sexo y pobreza favorece más a un grupo que a otro.

Un valor igual a uno indicaría ausencia de asociación entre las variables, es decir, que la relación entre sexo y condición de pobreza es similar para hombres y mujeres. Valores superiores a uno indicarían una mayor ventaja relativa para las mujeres en comparación con los hombres, mientras que valores inferiores a uno sugerirían una mayor ventaja relativa para los hombres. En el contexto de encuestas de hogares, este tipo de medidas resulta especialmente útil para estudiar desigualdades sociodemográficas y brechas en condiciones de bienestar entre distintos grupos poblacionales (Heeringa, West, y Berglund 2017).

El procedimiento en R comienza con la estimación de las proporciones correspondientes a cada una de las celdas de la tabla cruzada entre las variables sexo y condición de pobreza, presentada en la tabla 4.14. Para ello, se crea una agrupación por las categorías de Sex y poor y se utiliza la función survey_prop(). El objeto sex_poverty_interaction_proportion contiene, por tanto, las estimaciones que pueden utilizarse directamente para presentar y describir la distribución conjunta de ambas variables.

El procedimiento en R comienza con la estimación de las proporciones correspondientes a cada una de las celdas de la tabla cruzada entre las variables sexo y condición de pobreza, presentada en la tabla 4.14. Para ello, se agrupa el diseño muestral sobre la variable categórica definida por interaction(Sex, poor). Esta función combina las categorías de sexo y pobreza en un único factor, de manera que cada nivel representa una celda de la tabla de contingencia. Como ambas variables tienen dos categorías, la interacción produce cuatro categorías correspondientes a las cuatro combinaciones posibles, conservando en un único objeto tanto las estimaciones de las celdas como su matriz de varianzas y covarianzas. Esta información es necesaria para construir posteriormente contrastes entre las proporciones mediante funciones como svycontrast(), ya que el error estándar de una función que involucra varias celdas depende no solo de la varianza de cada estimación por separado, sino también de las covarianzas existentes entre ellas.

sex_poverty_odds_contrast <- 
  svymean(x = ~interaction(Sex, poor),
          design = survey_design,
          se = TRUE, na.rm = TRUE, ci = TRUE,
          keep.vars = TRUE)
Tabla 4.14: Proporciones conjuntas de sexo y condición de pobreza
mean SE
interaction(Sex, poor)Female.0 0.322 0.018
interaction(Sex, poor)Male.0 0.286 0.018
interaction(Sex, poor)Female.1 0.205 0.017
interaction(Sex, poor)Male.1 0.187 0.018

Luego, la función svycontrast() realiza el contraste dividiendo cada uno de los elementos de la expresión mostrada anteriormente. Note que el odds estimado de que una mujer no se encuentre en situación de pobreza, en comparación con un hombre, es igual a 1.02. Esto significa que, sin considerar otras variables de la encuesta, las mujeres presentan una razón de probabilidades de no estar en pobreza aproximadamente 2% mayor que la observada en los hombres. En otras palabras, la probabilidad relativa de no encontrarse en condición de pobreza es ligeramente superior para las mujeres respecto a los hombres.

odds_ratio <- quote(
 (`interaction(Sex, poor)Female.0` /
  `interaction(Sex, poor)Female.1`) /
 (`interaction(Sex, poor)Male.0` /
  `interaction(Sex, poor)Male.1`)
)

svycontrast(
  stat = sex_poverty_odds_contrast,
  contrasts = odds_ratio
)
         nlcon  SE
contrast  1.02 0.1

4.3 Pruebas de hipótesis

Esta sección presenta procedimientos para evaluar hipótesis sobre variables categóricas considerando el diseño muestral de la encuesta. En particular, se abordan pruebas sobre diferencias de proporciones y pruebas de independencia para tablas de contingencia, con el propósito de determinar si las diferencias o asociaciones observadas en la muestra cuentan con respaldo estadístico en la población.

4.3.1 Pruebas sobre diferencias de proporciones

Las pruebas de hipótesis también permiten evaluar si las diferencias observadas entre proporciones estimadas para distintos grupos reflejan diferencias en la población o si pueden atribuirse al error de muestreo (Edward L. Korn y Graubard 1995). Supóngase que \(p_H\) representa la proporción de hombres desocupados y \(p_M\) la proporción de mujeres desocupadas dentro de la población económicamente activa. El parámetro de interés corresponde a la diferencia entre ambas proporciones:

\[ \Delta_p = p_H - p_M. \]

Para evaluar si las proporciones de desocupación de hombres y mujeres son diferentes, se plantea el siguiente sistema de hipótesis bilateral:

\[ \begin{cases} H_{0}: & \Delta_p = 0 \\ H_{1}: & \Delta_p \neq 0 \end{cases} \]

El estimador muestral de esta diferencia se define como \(\hat{\Delta}_p = \hat{p}_H - \hat{p}_M\). Su error estándar debe considerar tanto las varianzas de las proporciones estimadas como la covarianza entre ellas:

\[ \widehat{se}(\hat{\Delta}_p) = \sqrt{ \widehat{Var}(\hat{p}_H) + \widehat{Var}(\hat{p}_M) - 2\widehat{Cov}(\hat{p}_H,\hat{p}_M) }. \]

A partir de estas cantidades, el estadístico de prueba se expresa como:

\[ t = \frac{\hat{\Delta}_p} {\widehat{se}(\hat{\Delta}_p)} \sim t_{df}, \]

el cual sigue aproximadamente una distribución \(t\) de Student con \(df\) grados de libertad, determinados por el diseño de muestreo. Bajo la hipótesis nula, valores absolutos elevados del estadístico \(t\) proporcionan evidencia en contra de la igualdad de las proporciones.

Supóngase que el objetivo es evaluar, mediante una prueba de hipótesis, si la tasa de desempleo difiere significativamente entre hombres y mujeres. Para implementar esta prueba, se utiliza la variable indicadora unemployed, definida previamente, que toma el valor de uno para las personas desocupadas y de cero para el resto. Dado que la tasa de desempleo se calcula exclusivamente sobre la población económicamente activa, el análisis debe restringirse a las personas ocupadas y desocupadas, excluyendo tanto a la población inactiva como a las observaciones con valores perdidos en la variable Employment, que incluyen a los menores de edad. En consecuencia, la media de unemployed dentro de cada grupo de sexo corresponde a la proporción estimada de personas desocupadas, lo que permite contrastar formalmente ambas tasas.

lf_design <- survey_design %>%
  filter(
    !is.na(Employment),
    Employment %in% c("Employed", "Unemployed")
  )  

lf_design %>%
  group_by(Sex) %>%
  summarise(
    proportion = survey_mean(
      unemployed,
      proportion = TRUE,
      vartype = c("se", "ci"),
      level = 0.95,
      na.rm = TRUE
    )
  )
Tabla 4.15: Estimación de la tasa de desempleo por sexo
Sex proportion proportion_se proportion_low proportion_upp
Female 0.048 0.012 0.029 0.078
Male 0.084 0.015 0.059 0.118

Las tasas de desempleo estimadas por sexo se presentan en la tabla 4.15. En R, la función svyttest() del paquete survey permite contrastar la diferencia entre las medias de esta variable binaria y, por tanto, la diferencia entre las proporciones de desocupación de hombres y mujeres, incorporando los ajustes asociados al diseño muestral.

lf_design <- survey_design %>%
  filter(
    !is.na(Employment),
    Employment %in% c("Employed", "Unemployed")
  )

ttest_unemployment_sex <- svyttest(
  unemployed ~ Sex,
  design = lf_design,
  level = 0.95
)
Tabla 4.16: Prueba de diferencia de proporciones de desocupación por sexo (población económicamente activa)
statistic p_value gl ci_lower ci_upper estimated_difference
2.18 0.031 118 0.003 0.068 0.036

A partir de la tabla 4.16, se concluye que la diferencia estimada entre la proporción de hombres desocupados y la proporción de mujeres desocupadas es de 0.0359, es decir, la proporción correspondiente a los hombres es 3.59 puntos porcentuales mayor. El estadístico obtenido es \(t = 2.182\), con 118 grados de libertad y un valor-p de 0.031. Dado que el valor-p es inferior al nivel de significancia del 5%, se rechaza la hipótesis nula de igualdad de proporciones. Por tanto, existe evidencia estadística suficiente para afirmar que, dentro de la población económicamente activa, la proporción de desocupados es diferente entre hombres y mujeres.

4.3.2 Prueba de independencia de Rao-Scott

Como se introdujo en los capítulos anteriores, una prueba de hipótesis es un procedimiento estadístico utilizado para evaluar si la evidencia observada en una muestra es compatible con una afirmación acerca de la población. En el contexto de tablas de contingencia, las pruebas de independencia permiten analizar si existe asociación entre dos variables categóricas (Agresti 2019).

En este caso, la hipótesis nula (\(H_{0}\)) establece que ambas variables son independientes; es decir, que la distribución de una variable no depende de las categorías de la otra. Bajo este supuesto, las diferencias observadas en la muestra se atribuyen únicamente a la variabilidad muestral y no a una relación real entre las variables en la población. Matemáticamente, esta hipótesis puede expresarse como:

\[ H_0: p_{rc}^0 = p_{r+} \times p_{+c}, \quad \text{para todo } r = 1,\ldots,R \text{ y } c = 1,\ldots,C \]

En donde \(p_{rc}^0\) representa la proporción esperada en la celda \((r,c)\) bajo el supuesto de independencia, mientras que \(p_{r+}\) y \(p_{+c}\) corresponden a las proporciones marginales de las filas y columnas, respectivamente. Bajo esta formulación, la hipótesis de independencia implica que la probabilidad conjunta de cada celda puede expresarse como el producto de sus probabilidades marginales.

En consecuencia, la prueba de independencia consiste en comparar las proporciones observadas o estimadas \(\hat{p}_{rc}\) con las proporciones esperadas \(p_{rc}^0\) bajo la hipótesis nula. Cuando las diferencias entre ambas son pequeñas, la evidencia empírica resulta consistente con el supuesto de independencia. Por el contrario, discrepancias suficientemente grandes sugieren la existencia de asociación entre las variables y conducen al rechazo de \(H_0\).

Como señalan J. N. K. Rao y Scott (1981), las características propias de los diseños muestrales complejos utilizados en las encuestas de hogares (estratificación, la selección por conglomerados y el uso de factores de expansión) modifican la estructura de variabilidad de los estimadores. En consecuencia, la prueba clásica de independencia basada en el estadístico \(\chi^2\) de Pearson no resulta, en general, adecuada para el análisis de tablas de contingencia construidas a partir de este tipo de encuestas, ya que ignora la variabilidad adicional inducida por el diseño de muestreo y, por tanto, puede conducir a inferencias incorrectas.

Con el propósito de corregir esta limitación, Fay (1979), Fellegi (1980) y Thomas y Rao (1987) propusieron algunos de los primeros ajustes al estadístico \(\chi^2\) de Pearson, apoyados en el efecto de diseño generalizado (\(GDEFF\)). Posteriormente, Jon N. K. Rao y Scott (1984) amplió y formalizó el marco teórico de estas correcciones, dando lugar a lo que actualmente se conoce como la prueba de Rao-Scott. Este procedimiento ajusta la prueba de independencia para incorporar las características del diseño complejo y constituye una de las principales herramientas para el análisis de datos categóricos provenientes de encuestas por muestreo (Heeringa, West, y Berglund 2017).

\[ \chi_{RS}^2 = \frac{n_{++}}{GDEFF} \sum_r \sum_c \frac{(\hat{p}_{rc} - p_{rc}^0)^2}{p_{rc}^0} \]

En donde \(n_{++}\) representa el tamaño total de la muestra, \(\hat{p}_{rc}\) corresponde a la proporción estimada en la celda \((r,c)\) de la tabla de contingencia y \(p_{rc}^0\) denota la proporción esperada bajo la hipótesis nula de independencia, calculada a partir del producto de las proporciones marginales de filas y columnas. El término \(GDEFF\) representa el efecto de diseño generalizado y mide cuánto se incrementa o disminuye la variabilidad de las estimaciones como consecuencia del diseño complejo de la encuesta respecto a la variabilidad que se observaría bajo un muestreo aleatorio simple.

Bajo la hipótesis nula de independencia, \(H_0\), el estadístico de Rao-Scott, \(\chi_{RS}^2\), puede aproximarse mediante una distribución \(\chi^2\) con \((R-1)(C-1)\) grados de libertad, donde \(R\) y \(C\) corresponden al número de categorías de las variables dispuestas en las filas y columnas de la tabla de contingencia, respectivamente. Sin embargo, en encuestas con diseños muestrales complejos también es habitual emplear una aproximación basada en la distribución \(F\), ya que esta permite incorporar de manera más adecuada la variabilidad inducida por características del diseño complejo.

El paquete survey de R implementa estas pruebas mediante la función svychisq(). Al especificar statistic = "F", la función utiliza la corrección de Rao-Scott de segundo orden y aproxima la distribución del estadístico mediante una distribución \(F\). Este ajuste tiene en cuenta tanto la media como la variabilidad del estadístico de prueba e incorpora, además de los grados de libertad asociados al contraste de independencia, los grados de libertad disponibles en el diseño muestral para estimar dicha variabilidad. En R, los grados de libertad se obtienen mediante el comando survey::degf(survey_design).

En la función svychisq(), el argumento formula especifica las dos variables categóricas cuya independencia se desea evaluar, mientras que design corresponde al objeto que contiene la información del diseño muestral previamente definido. Por su parte, statistic = "F" indica que la inferencia se realizará utilizando la aproximación basada en la distribución \(F\). La decisión estadística se toma comparando el valor-p con el nivel de significancia establecido. Por ejemplo, para un nivel de significancia del 5%, si el valor-p es superior a 0.05 no se rechaza \(H_0\), por lo que no existe evidencia estadística suficiente para afirmar que las variables están asociadas. En cambio, si el valor-p es inferior a 0.05, se rechaza \(H_0\), lo que proporciona evidencia de una asociación entre las variables categóricas analizadas.

A modo de ejemplo, para evaluar si la condición de pobreza es independiente del sexo, se puede ejecutar el siguiente código:

svychisq(formula = ~Sex + poor, 
         design = survey_design, 
         statistic = "F")

    Pearson's X^2: Rao & Scott adjustment

data:  NextMethod()
F = 0.06, ndf = 1, ddf = 119, p-value = 0.8

El resultado de la prueba de independencia de Rao-Scott no proporciona evidencia de una asociación estadísticamente significativa entre el sexo y la condición de pobreza. En particular, el valor-p obtenido es considerablemente mayor que los niveles de significancia usuales, por lo que no se rechaza la hipótesis nula de independencia entre ambas variables. En consecuencia, con base en la muestra analizada y teniendo en cuenta el diseño complejo de la encuesta, que dispone de 119 grados de libertad, no se observan diferencias estadísticamente significativas en la distribución de la condición de pobreza entre hombres y mujeres. Este mismo procedimiento puede emplearse para evaluar otras asociaciones entre variables categóricas, como desempleo y sexo.

svychisq(formula = ~Sex + Employment, 
         design = survey_design, 
         statistic = "F")

    Pearson's X^2: Rao & Scott adjustment

data:  NextMethod()
F = 62, ndf = 2, ddf = 201, p-value <0.0000000000000002

En este primer caso, para el contraste de independencia entre las variables Sex y Employment, el estadístico obtenido fue \(F = 62.251\), con un valor-\(p\) muy cercano a cero, lo que proporciona evidencia estadísticamente significativa para rechazar la hipótesis nula de independencia entre ambas variables. En consecuencia, los resultados sugieren que sí existe una asociación significativa entre el sexo y la condición de empleo en la población de estudio.

svychisq(formula = ~Region + poor, design = survey_design, statistic = "F")

    Pearson's X^2: Rao & Scott adjustment

data:  NextMethod()
F = 0.5, ndf = 3, ddf = 358, p-value = 0.7

Por otro lado, esta prueba de independencia entre las variables Region y poor, da como resultado \(F = 0.48794\), con un valor-\(p = 0.6914\). Dado que este valor-\(p\) es considerablemente mayor que niveles de significancia convencionales, no existe evidencia suficiente para rechazar la hipótesis nula de independencia. Por tanto, los resultados sugieren que, bajo el diseño muestral considerado, no se observa una asociación estadísticamente significativa entre la región y la condición de pobreza.

4.4 Estimación de contrastes

Cuando se analizan conjuntamente dos variables categóricas, es posible examinar cómo se distribuye una de ellas dentro de los grupos definidos por la otra. Por ejemplo, puede estudiarse la proporción de personas en situación de pobreza por sexo, zona de residencia o condición de actividad. Cada una de estas categorías define una subpoblación específica, para la cual pueden estimarse proporciones y sus correspondientes medidas de precisión (Edward L. Korn y Graubard 1999; Heeringa, West, y Berglund 2017).

Sin embargo, la estimación separada de estas proporciones no siempre es suficiente. Con frecuencia, el interés principal consiste en determinar cuánto difieren dos grupos y si la brecha observada es suficientemente grande en relación con la incertidumbre asociada al muestreo. Para ello, pueden construirse contrastes lineales que expresen la diferencia entre dos proporciones estimadas y permitan obtener su error estándar, intervalo de confianza y, cuando corresponda, una prueba de significancia.

Supóngase, por ejemplo, que se desea comparar la proporción de mujeres en situación de pobreza con la proporción correspondiente a los hombres. Este contraste puede expresarse como \(\hat{p}_F-\hat{p}_M\), donde \(\hat{p}_F\) representa la proporción estimada de mujeres en pobreza y \(\hat{p}_M\) la proporción estimada de hombres en la misma condición.

sex_poverty_contrast <- svyby(
  formula = ~poor,
  by = ~Sex,
  design = survey_design,
  FUN = svymean,
  na.rm = TRUE,
  covmat = TRUE,
  vartype = c("se", "ci")
)
Tabla 4.17: Proporción en condición de pobreza por sexo
Sex poor se ci_l ci_u
Female Female 0.389 0.032 0.327 0.451
Male Male 0.395 0.037 0.323 0.466

Con base en los resultados presentados en la tabla 4.17, puede estimarse la diferencia entre las proporciones de mujeres y hombres en situación de pobreza, así como su correspondiente error estándar. Para ello, se resta la proporción estimada de hombres en pobreza de la proporción estimada de mujeres en la misma condición:

sex_poverty_estimate <- setNames(
  as.numeric(sex_poverty_contrast[["poor"]]),
  sex_poverty_contrast[["Sex"]]
)

sex_poverty_estimate["Female"] - sex_poverty_estimate["Male"]
  Female 
-0.00532 

Para estimar correctamente la variabilidad asociada a esta diferencia debe incorporarse la covarianza entre ambas estimaciones, ya que estas no provienen de dos muestras independientes. En efecto, hombres y mujeres pueden pertenecer a los mismos hogares y, además, los hogares de ambos grupos son seleccionados dentro de las mismas unidades primarias de muestreo (UPM). Por consiguiente, las dos proporciones comparten la estructura de dependencia inducida por el diseño de muestreo. Esto implica que las variaciones observadas en una estimación pueden estar relacionadas con las de la otra y, por tanto, que su covarianza no puede suponerse igual a cero. En este contexto, el error estándar de la diferencia (contraste) debe calcularse aplicando las propiedades de la varianza e incorporando explícitamente dicha covarianza, de la siguiente forma:

\[ \widehat{se}\left(\hat{p}_{F}-\hat{p}_{M}\right) = \sqrt{ \widehat{Var}\left(\hat{p}_{F}\right) + \widehat{Var}\left(\hat{p}_{M}\right) - 2\,\widehat{Cov}\left(\hat{p}_{F},\hat{p}_{M}\right) } \]

En R, la matriz de varianzas y covarianzas puede obtenerse mediante la función vcov, cuyos resultados se presentan en la tabla 4.18:

sex_poverty_vcov <- vcov(sex_poverty_contrast)
Tabla 4.18: Matriz de varianzas y covarianzas de la proporción de pobreza por sexo
Female Male
Female 0.000998 0.000918
Male 0.000918 0.001342

A partir de esta matriz, el error estándar de la diferencia de proporciones se estima, utilizando la expresión general para la varianza de una diferencia entre estimadores, la cual corresponde a la suma de las varianzas de cada estimación menos dos veces la covarianza entre ellas.

sqrt(
  sex_poverty_vcov["Female", "Female"] +
    sex_poverty_vcov["Male", "Male"] -
    2 * sex_poverty_vcov["Female", "Male"]
)
[1] 0.0224

No obstante, el paquete survey permite realizar este procedimiento de forma directa mediante la función svycontrast, la cual calcula tanto el contraste lineal como su error estándar asociado. Para obtener la diferencia entre las proporciones de mujeres y hombres en condición de pobreza, se utiliza el siguiente código:

svycontrast(
  stat = sex_poverty_contrast,
  contrasts = list(sex_difference = c(1, -1))
) %>%
  data.frame()
               contrast sex_difference
sex_difference -0.00532         0.0224

De lo que se concluye que la diferencia estimada entre las proporciones de mujeres y hombres en estado de pobreza es -0.005 (-0.5%), con un error estándar de 0.022. Dada la magnitud del error estándar respecto de la diferencia, la estimación no debe interpretarse por sí sola como evidencia de una menor proporción de pobreza entre las mujeres.

Otro ejercicio que puede desarrollarse a partir de una encuesta de hogares consiste en estimar la proporción de personas desempleadas según la región de residencia. Para ello, se estiman las proporciones de desempleo para cada una de las regiones consideradas en el análisis. Los resultados obtenidos se presentan en la tabla 4.19:

region_unemployment_contrast <- svyby(
  formula = ~ unemployed,
  by = ~ Region,
  design = survey_design %>%
    filter(!is.na(unemployed)),
  FUN = svymean,
  na.rm = TRUE,
  covmat = TRUE,
  vartype = c("se", "ci")
)
Tabla 4.19: Proporción en condición de desempleo por región
Region unemployed se ci_l ci_u
Norte Norte 0.049 0.020 0.010 0.088
Sur Sur 0.066 0.024 0.019 0.112
Centro Centro 0.039 0.012 0.014 0.063
Occidente Occidente 0.040 0.012 0.016 0.064
Oriente Oriente 0.030 0.013 0.005 0.054

Una vez estimadas las proporciones de desempleo por región, el siguiente paso consiste en evaluar si existen diferencias estadísticamente significativas entre algunas de estas proporciones mediante contrastes lineales. En particular, el interés se centra en comparar las diferencias entre las proporciones estimadas de desempleo de distintas regiones. Los contrastes considerados corresponden a \(\hat{p}_{Norte} - \hat{p}_{Centro} = 0.01004\), \(\hat{p}_{Sur} - \hat{p}_{Centro} = 0.02691\) y \(\hat{p}_{Occidente} - \hat{p}_{Oriente} = 0.01046\). De manera matricial, estos contrastes entre regiones pueden escribirse así:

\[ \left[\begin{array}{ccccc} 1 & 0 & -1 & 0 & 0\\ 0 & 1 & -1 & 0 & 0\\ 0 & 0 & 0 & 1 & -1 \end{array}\right] \]

Para calcular los errores estándar asociados a cada uno de los contrastes anteriores, es necesario considerar no solo las varianzas de las estimaciones regionales, sino también las covarianzas entre ellas.

region_unemployment_vcov <- vcov(region_unemployment_contrast)
Tabla 4.20: Matriz de varianzas y covarianzas de la proporción de desempleo por región
Norte Sur Centro Occidente Oriente
Norte 0.000401 0.000000 0.000000 0.000000 0.000000
Sur 0.000000 0.000564 0.000000 0.000000 0.000000
Centro 0.000000 0.000000 0.000154 0.000000 0.000000
Occidente 0.000000 0.000000 0.000000 0.000151 0.000000
Oriente 0.000000 0.000000 0.000000 0.000000 0.000158

La matriz de varianzas y covarianzas presentada en la tabla 4.20 muestra que las covarianzas entre las estimaciones regionales son iguales a cero, lo que refleja la independencia entre las muestras seleccionadas en cada región. A continuación se estiman los errores estándar asociados a acada contraste.

# Norte - Centro
sqrt(
  region_unemployment_vcov["Norte", "Norte"] +
    region_unemployment_vcov["Centro", "Centro"] -
    2 * region_unemployment_vcov["Norte", "Centro"]
)
[1] 0.0236
# Sur - Centro
sqrt(
  region_unemployment_vcov["Sur", "Sur"] +
    region_unemployment_vcov["Centro", "Centro"] -
    2 * region_unemployment_vcov["Sur", "Centro"]
)
[1] 0.0268
# Occidente - Oriente
sqrt(
  region_unemployment_vcov["Occidente", "Occidente"] +
    region_unemployment_vcov["Oriente", "Oriente"] -
    2 * region_unemployment_vcov["Occidente", "Oriente"]
)
[1] 0.0176

Alternativamente, el paquete survey permite calcular estos contrastes de manera directa mediante la función svycontrast, la cual obtiene tanto las diferencias estimadas entre proporciones como sus respectivos errores estándar. En este caso, la estimación de los contrastes definidos anteriormente se realiza de la siguiente manera:

svycontrast(
  stat = region_unemployment_contrast,
  contrasts = list(
    north_center = c(1, 0, -1, 0, 0),
    south_center = c(0, 1, -1, 0, 0),
    west_east    = c(0, 0, 0, 1, -1)
  )) %>%
  data.frame()
             contrast     SE
north_center   0.0100 0.0236
south_center   0.0269 0.0268
west_east      0.0105 0.0176

4.5 Visualización de variables categóricas

La visualización de variables categóricas es fundamental en el análisis de encuestas de hogares, ya que permite comunicar de manera clara la distribución de grupos poblacionales y las comparaciones entre ellos. Al igual que en el análisis de variables continuas, los gráficos deben permitir que la representación visual corresponda a estimaciones válidas a nivel poblacional.

4.5.1 Gráficos de barras

La construcción de gráficos de barras en R requiere, como paso previo, obtener las estimaciones que se desean representar visualmente. En el contexto de encuestas complejas, estas estimaciones pueden calcularse mediante las funciones survey_total() o survey_prop() del paquete srvyr, dependiendo de si el interés se centra en totales poblacionales o proporciones. En esta sección se utiliza el paquete ggplot2 para construir los gráficos.

library(ggplot2)

Para representar adecuadamente la variabilidad de las estimaciones derivada del diseño muestral, los gráficos de barras deberían incorporar los correspondientes intervalos de confianza obtenidos mediante los procedimientos descritos en este capítulo. De esta manera, el gráfico no solo muestra la magnitud de las estimaciones puntuales, sino también la incertidumbre asociada a cada una de ellas, lo que permite realizar una interpretación más completa de los resultados. A continuación, se ilustra este procedimiento utilizando las estimaciones del tamaño poblacional según zona de residencia. Los resultados se presentan en la figura 4.1.

zone_size <- survey_design %>%
  group_by(Zone) %>%
  summarise(size = survey_total(vartype = c("se", "ci")))

zone_colors <- c(Urban = "#48C9B0", Rural = "#117864")

ggplot(data = zone_size,
       aes(
         x = Zone,
         y = size,
         ymax = size_upp,
         ymin = size_low,
         fill = Zone
       )) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_errorbar(position = position_dodge(width = 0.9), width = 0.3) +
  scale_fill_manual(values = zone_colors) +
  theme_bw() +
  theme(legend.position = "top")
Figura 4.1: Estimación del tamaño poblacional por zona geográfica

El código comienza estimando, para cada categoría de la variable Zone, el tamaño poblacional mediante survey_total(), teniendo en cuenta el diseño muestral complejo. Además de la estimación puntual, se solicitan el error estándar y los límites del intervalo de confianza mediante vartype = c("se", "ci"), cuyos resultados se almacenan en el objeto zone_size. Posteriormente, se define una paleta de colores específica para las zonas urbana y rural y se construye el gráfico con ggplot2. En la estética del gráfico, size determina la altura de cada barra, mientras que size_low y size_upp establecen los límites inferior y superior de las barras de error. La función geom_bar() representa los tamaños poblacionales estimados y geom_errorbar() añade los intervalos de confianza correspondientes. Finalmente, scale_fill_manual() asigna los colores definidos previamente, theme_bw() aplica un formato visual limpio y theme(legend.position = "top") ubica la leyenda en la parte superior del gráfico.

El procedimiento anterior puede extenderse naturalmente a variables con más de dos categorías. En estos casos, el gráfico de barras facilita la comparación simultánea de las estimaciones correspondientes a cada categoría y, al incorporar sus intervalos de confianza, permite apreciar también la precisión asociada a cada una de ellas. A modo de ejemplo, a continuación se presenta la distribución estimada de la población según su condición de pobreza; los resultados gráficos se muestran en la figura 4.2.

poverty_size <- 
  survey_design %>%
  group_by(Poverty) %>%
  summarise(
    size = survey_total(vartype = c("se", "ci")))

ggplot(data = poverty_size,
       aes(
         x = Poverty,
         y = size,
         ymax = size_upp,
         ymin = size_low,
         fill = Poverty
       )) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_errorbar(position = position_dodge(width = 0.9), width = 0.3) +
  theme_bw() +
  theme(legend.position = "top")
Figura 4.2: Estimación del número de personas según condición de pobreza

Una de las ventajas de los gráficos de barras es que pueden extenderse fácilmente al análisis conjunto de dos variables categóricas. En este contexto, permiten comparar las estimaciones correspondientes a las distintas combinaciones de categorías y apreciar de manera visual las diferencias entre grupos. A modo de ejemplo, se presenta la estimación del número de personas según su condición de pobreza y estado de ocupación, cuyos resultados se muestran en la figura 4.3.

employment_poverty_size <- 
  survey_design %>%
  group_by(unemployed, Poverty) %>%
  summarise(
    size = survey_total(vartype = c("se", "ci"))) %>%
  as.data.frame() %>%
  mutate(
    unemployed = case_when(
      unemployed == 0 ~ "Occupied",
      unemployed == 1 ~ "Unemployed",
      is.na(unemployed) ~ "Not in the Labour Force"
    )
  )

ggplot(
  data = employment_poverty_size,
  aes(
    x = Poverty, y = size,
    ymax = size_upp, ymin = size_low,
    fill = as.factor(unemployed)
  )
) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_errorbar(position = position_dodge(width = 0.9), width = 0.3) +
  theme_bw() +
  theme(legend.position = "top")
Figura 4.3: Estimación del número de personas por estado de ocupación y situación de pobreza

Este tipo de análisis gráfico resulta especialmente útil para examinar posibles intersecciones de vulnerabilidad, ya que permite representar simultáneamente dos o más características de la población y comparar los resultados entre distintos grupos. Además de mostrar conteos o tamaños poblacionales estimados, los gráficos de barras pueden emplearse para representar proporciones, junto con sus correspondientes medidas de precisión. A modo de ejemplo, se presenta la proporción estimada de hombres en condición de pobreza según zona de residencia, incorporando los intervalos de confianza asociados a cada estimación. Los resultados se muestran en la figura 4.4.

male_zone_poverty_proportion <- 
  male_subset %>%
  group_by(Zone, Poverty) %>%
  summarise(proportion = 
              survey_prop(vartype = c("se", "ci")))

ggplot(
  data = male_zone_poverty_proportion,
  aes(
    x = Poverty,
    y = proportion,
    ymax = proportion_upp,
    ymin = proportion_low,
    fill = Zone
  )
) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_errorbar(position = position_dodge(width = 0.9), width = 0.3) +
  scale_fill_manual(values = zone_colors) +
  theme_bw() +
  theme(legend.position = "top")
Figura 4.4: Proporción de hombres en condición de pobreza por zona geográfica

De manera análoga, este tipo de representación puede extenderse a niveles más detallados de desagregación geográfica. Por ejemplo, es posible comparar la proporción estimada de hombres en condición de pobreza entre las distintas regiones, incorporando en cada caso sus correspondientes intervalos de confianza. Esta representación permite identificar diferencias territoriales en las estimaciones y, al mismo tiempo, evaluar la precisión con la que han sido obtenidas. Los resultados se presentan en la figura 4.5.

male_region_poverty_proportion <- 
  male_subset %>%
  group_by(Region, poor) %>%
  summarise(
    proportion = survey_prop(vartype = c("se", "ci"))) %>%
  data.frame()

ggplot(
  data = male_region_poverty_proportion,
  aes(
    x = Region,
    y = proportion,
    ymax = proportion_upp,
    ymin = proportion_low,
    fill = as.factor(poor)
  )
) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_errorbar(position = position_dodge(width = 0.9), width = 0.3) +
  theme_bw() +
  theme(legend.position = "top")
Figura 4.5: Proporción de hombres en condición de pobreza por región

4.5.2 Mapas temáticos

Como explica Tennekes (2018), los mapas temáticos constituyen una herramienta de visualización especialmente útil en el análisis de encuestas de hogares, ya que permiten representar la distribución territorial de indicadores sociales y demográficos. En este contexto, las estimaciones calculadas en secciones anteriores pueden proyectarse directamente sobre estas unidades geográficas, facilitando así la identificación de patrones espaciales y desigualdades regionales. De acuerdo con Pebesma et al. (2026), Tennekes (2026) y Pebesma (2018), para construir este tipo de mapas en R se requiere información geoespacial en formato shapefile, la cual contiene los polígonos asociados a cada unidad geográfica de análisis. En este capítulo se utiliza el archivo shapeBigCity/BigCity.shp, cuyas regiones corresponden a las definidas en la base de datos BigCity.

En R, las librerías sf y tmap permiten cargar, manipular y visualizar esta información geográfica de manera integrada con los resultados obtenidos a partir de la encuesta. La librería sf permite leer y manipular objetos espaciales modernos, mientras que tmap proporciona herramientas para elaborar mapas temáticos. La instrucción tmap_mode("plot") establece el modo de visualización estática de los mapas, apropiado para documentos y reportes. Finalmente, la función read_sf() importa el archivo geográfico BigCity.shp, almacenándolo en el objeto bigcity_shape, el cual contiene los polígonos correspondientes a las regiones de análisis.

library(sf)
library(tmap)
tmap_mode("plot")
bigcity_shape <- read_sf("../Data/shapeBigCity/BigCity.shp")

Con el shapefile cargado, se puede generar un mapa de las regiones usando tm_shape() y tm_polygons(), como se muestra en la figura 4.6:

tm_shape(bigcity_shape) +
  tm_polygons(col = "Region")
Figura 4.6: Mapa de regiones geográficas de BigCity

Por ejemplo, si se desea representar geográficamente la proporción de hombres en condición de pobreza por región, mostrada previamente en la figura 4.5, es necesario integrar las estimaciones obtenidas con la información espacial del shapefile. Para ello, el objeto male_region_poverty_proportion, que contiene las proporciones estimadas para cada región, se vincula con el archivo geográfico mediante la función left_join(). Posteriormente, se filtran únicamente las observaciones correspondientes a la categoría de pobreza (poor == 1), de manera que el mapa represente exclusivamente la distribución espacial de la población masculina en condición de pobreza.

shape_region_map <- tm_shape(
  bigcity_shape %>%
    left_join(
      male_region_poverty_proportion %>%
        filter(poor == 1),
      by = "Region"
    )
)

Una vez construido el objeto espacial con las estimaciones de interés, el argumento breaks ayuda a definir los puntos de corte que determinarán los intervalos de la escala de color utilizada en el mapa. Posteriormente, se genera el mapa temático, permitiendo visualizar la distribución regional de la proporción de hombres en condición de pobreza, como se presenta en la figura 4.7.

poverty_breaks <- c(0, 0.2, 0.4, 0.6, 0.8, 1)
shape_region_map +
  tm_polygons(
    fill = "proportion",
    fill.scale = tm_scale_intervals(
      breaks = poverty_breaks,
      values = "YlOrRd"
    ),
    fill.legend = tm_legend(
      title = "Poverty proportion",
      na.show = FALSE
    )
  )
Figura 4.7: Proporción de hombres en condición de pobreza por región

Otro uso de los mapas en encuestas, señalado por CEPAL (2023), es la visualización de la precisión de las estimaciones. Por ejemplo, usando el coeficiente de variación del ingreso medio por región es posible identificar las áreas donde las estimaciones son menos confiables, como se muestra en la figura 4.8.

El siguiente código calcula y representa geográficamente el coeficiente de variación del ingreso medio por región. En primer lugar, se estima el ingreso promedio para cada región. El argumento vartype = "cv" solicita el cálculo del coeficiente de variación de cada estimación. Posteriormente, se definen los intervalos de clasificación de la escala de color mediante el objeto cv_breaks, y las estimaciones se integran con la información geográfica del shapefile usando left_join(). Finalmente, mediante las funciones tm_shape() y tm_polygons() del paquete tmap, se construye el mapa que representa espacialmente los coeficientes de variación utilizando una escala de colores en blanco y negro y ajustando la proporción del mapa con tm_layout(asp = 0).

region_mean <- survey_design %>%
  group_by(Region) %>%
  summarise(
    mean = survey_mean(Income, 
                       na.rm = TRUE, 
                       vartype = c("cv")))

cv_breaks <- c(0, 0.1, 0.2, 1)
shape_cv_map <- tm_shape(
  bigcity_shape %>%
    left_join(region_mean, by = "Region")
)

shape_cv_map +
  tm_polygons(
    fill = "mean_cv",
    fill.scale = tm_scale_intervals(
      breaks = cv_breaks,
      values = c("#F2F2F2", "#8C8C8C", "#1A1A1A")
    ),
    fill.legend = tm_legend(
      title = "Mean income CV",
      na.show = FALSE
    )
  ) +
  tm_layout(asp = 0)
Figura 4.8: Coeficiente de variación del ingreso medio por región

Los polígonos con tonos más oscuros corresponden a regiones donde la estimación del ingreso presenta mayor variabilidad relativa. Un coeficiente de variación elevado indica menor precisión relativa, pero no permite atribuirla únicamente a un tamaño muestral insuficiente, pues también puede reflejar la ponderación y otras características del diseño.

De acuerdo con Prener, Grossenbacher, y Zehr (2025) y Wilke (2025), cuando se desea representar simultáneamente dos variables (por ejemplo, la proporción de pobreza y su coeficiente de variación) es posible construir un mapa bivariante utilizando ggplot2 junto con los paquetes biscale y cowplot. Este tipo de visualización permite identificar regiones con alta pobreza y alta incertidumbre en la estimación de forma conjunta, como se presenta en la figura 4.9. El siguiente código estima la proporción de mujeres en condición de pobreza en zonas rurales para cada región, incorporando además el cálculo del coeficiente de variación de las estimaciones, generando así una base de datos lista para la construcción de un mapa bivariado.

region_sex_poverty_proportion <- 
  survey_design %>%
  group_by(Region, Zone, Sex, poor) %>%
  summarise(proportion = survey_mean(vartype = "cv")) %>%
  filter(poor == 1, 
         Zone == "Rural", 
         Sex == "Female")

El siguiente código construye un mapa bivariado que permite visualizar simultáneamente la proporción de pobreza femenina rural y el coeficiente de variación asociado a dicha estimación por región. En primer lugar, se integran las estimaciones contenidas en region_sex_poverty_proportion con la información geográfica del shapefile mediante left_join(). Posteriormente, la función bi_class() del paquete biscale clasifica conjuntamente las variables proportion y proportion_cv en una cuadrícula de \((3 \times 3)\) categorías (dim = 3), empleando el método de clasificación de Fisher (style = "fisher"). Luego, con ggplot2 y geom_sf(), se genera el mapa temático utilizando colores bivariados definidos por bi_scale_fill(), mientras que bi_theme() aplica un estilo minimalista y se elimina la leyenda predeterminada.

A continuación, la función bi_legend() crea una leyenda especializada que permite interpretar simultáneamente ambas dimensiones del mapa: el coeficiente de variación y la pobreza femenina rural. Finalmente, mediante las funciones ggdraw() y draw_plot() del paquete cowplot, se combinan el mapa y la leyenda en una única visualización.

library(biscale)
library(cowplot)

bivariate_shape <- bigcity_shape %>%
  left_join(region_sex_poverty_proportion, by = "Region")

k <- 3
bivariate_palette <- "DkViolet"
bivariate_data <- bi_class(
  bivariate_shape,
  y = proportion,
  x = proportion_cv,
  dim = k,
  style = "fisher"
)

bivariate_map <- ggplot() +
  geom_sf(
    data = bivariate_data,
    aes(fill = bi_class, geometry = geometry),
    colour = "white",
    size = 0.1
  ) +
  bi_scale_fill(pal = bivariate_palette, dim = k) +
  bi_theme() +
  theme(legend.position = "none")

bivariate_legend <- bi_legend(
  pal = bivariate_palette,
  dim = k,
  xlab = "Coefficient of variation",
  ylab = "Rural female poverty",
  size = 6
)

ggdraw() +
  draw_plot(bivariate_map, 0.02, 0.04, 0.68, 0.9) +
  draw_plot(bivariate_legend, 0.67, 0.25, 0.3, 0.38)
Figura 4.9: Mapa bivariante: proporción de pobreza femenina rural y su coeficiente de variación por región

En este mapa, cada celda de la leyenda combina un tono de la proporción de pobreza (eje vertical) con un tono del coeficiente de variación (eje horizontal), permitiendo identificar simultáneamente regiones con alta pobreza y alta incertidumbre en la estimación. Este tipo de representación puede ayudar a priorizar una evaluación del diseño y de la precisión en zonas geográficas específicas; por sí solo, sin embargo, no determina automáticamente que deba ampliarse el tamaño muestral.