survey_data <- readRDS("../Data/encuesta.rds")3 Análisis de las variables continuas
El análisis estadístico de encuestas ha evolucionado de manera constante, impulsado por el desarrollo de nuevas metodologías y enfoques que buscan mejorar la precisión y la representatividad de los resultados (Lumley 2010; Heeringa, West, y Berglund 2017). En general, estos avances surgen en el ámbito académico y, con el tiempo, son adoptados por instituciones públicas, empresas privadas y organismos estadísticos, que demandan su incorporación en los principales programas de análisis de datos.
Este capítulo presenta los principales procedimientos para el análisis estadístico de variables continuas utilizando R, incorporando adecuadamente las características del diseño muestral, tales como los factores de expansión, así como la estratificación y la conglomeración. A lo largo de este capítulo se presentan métodos para estimar parámetros poblacionales, evaluar la precisión de las estimaciones y realizar inferencias válidas a partir de datos provenientes de encuestas complejas. Asimismo, tanto en este capítulo como en el resto del documento, se introducen de manera gradual las principales funciones y herramientas del paquete survey, una de las alternativas más completas y ampliamente utilizadas en R para el análisis adecuado de encuestas de hogares.
De acuerdo con R Core Team (2026), las bases de datos utilizadas en el análisis de encuestas pueden encontrarse en una amplia variedad de formatos, como xlsx, dat, csv, parquet, sas7bdat, sav y txt, entre otros. Sin embargo, una buena práctica consiste en importar la información desde cualquiera de estos formatos y guardarla posteriormente en un archivo con extensión .rds, un formato nativo de R que permite almacenar distintos tipos de objetos, como bases de datos, vectores, matrices o listas. Otro formato nativo de R es .RData, que permite guardar varios objetos en un mismo archivo. En contraste, los archivos .rds almacenan un único objeto, lo que facilita un manejo más controlado, explícito y reproducible de la información. Por esta razón, se recomienda utilizar preferentemente el formato .rds al documentar proyectos y desarrollar análisis reproducibles.
Para ilustrar la sintaxis computacional que se utilizará a lo largo del capítulo, se empleará una base de datos proveniente de una encuesta con un diseño de muestreo complejo. A continuación, se muestra cómo cargar el archivo, almacenado en formato .rds:
El objeto survey_data carga la infomración desde el archivo encuesta.rds, el cual está organizado de manera que cada fila corresponde a una unidad observada, mientras que las columnas contienen tanto las variables de interés como la información necesaria para representar el diseño muestral. Para examinar rápidamente su estructura, puede utilizarse la función glimpse(), que presenta el número de observaciones y variables, sus nombres, sus tipos de datos y una muestra de los valores registrados.
library(tidyverse)
dplyr::glimpse(survey_data)Rows: 2,605
Columns: 20
$ HHID <chr> "idHH00031", "idHH00031", "idHH00031", "idHH00031", "idHH0…
$ Stratum <chr> "idStrt001", "idStrt001", "idStrt001", "idStrt001", "idStr…
$ NIh <int> 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9…
$ nIh <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ dI <dbl> 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5…
$ PersonID <chr> "idPer01", "idPer02", "idPer03", "idPer04", "idPer05", "id…
$ PSU <chr> "PSU0003", "PSU0003", "PSU0003", "PSU0003", "PSU0003", "PS…
$ Zone <chr> "Rural", "Rural", "Rural", "Rural", "Rural", "Rural", "Rur…
$ Sex <chr> "Male", "Female", "Female", "Male", "Female", "Female", "F…
$ Age <int> 68, 56, 24, 26, 3, 61, 23, 5, 1, 59, 50, 33, 81, 76, 45, 4…
$ MaritalST <fct> Married, Married, Married, Married, NA, Widowed, Separated…
$ Income <dbl> 409.9, 409.9, 409.9, 409.9, 409.9, 823.8, 823.8, 823.8, 82…
$ Expenditure <dbl> 346.3, 346.3, 346.3, 346.3, 346.3, 392.2, 392.2, 392.2, 39…
$ Employment <fct> Employed, Employed, Employed, Employed, NA, Employed, Inac…
$ Poverty <fct> NotPoor, NotPoor, NotPoor, NotPoor, NotPoor, NotPoor, NotP…
$ dki <dbl> 8.00, 8.00, 8.00, 8.00, 8.00, 8.00, 8.00, 8.00, 8.00, 8.00…
$ dk <dbl> 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 42, 42, 42…
$ wk <dbl> 34.5, 33.6, 33.6, 34.5, 33.6, 33.6, 33.6, 34.5, 33.6, 34.5…
$ Region <fct> Norte, Norte, Norte, Norte, Norte, Norte, Norte, Norte, No…
$ CatAge <ord> Más de 60, 46-60, 16-30, 16-30, 0-5, Más de 60, 16-30, 0-5…
La base contiene 2.605 registros individuales y 20 variables. Cada fila corresponde a una persona, identificada mediante PersonID, y se encuentra vinculada con su hogar a través de HHID. Además de variables sociodemográficas y económicas, como sexo, edad, estado civil, condición de empleo, ingreso, gasto y situación de pobreza, la base incluye información necesaria para representar el diseño de muestreo complejo, como el estrato (Stratum), la unidad primaria de muestreo (PSU) y los factores de expansión (wk). También incorpora variables de clasificación geográfica y demográfica, como zona, región y grupo de edad.
Según Naciones Unidas (2009, sec. 7.8), es fundamental que la estructura del diseño muestral sea tenida en cuenta en el proceso de inferencia al estimar estadísticas oficiales basadas en encuestas de hogares. Como se ha insistido en este documento, ignorar este aspecto puede generar estimaciones sesgadas y errores de muestreo subestimados. En este sentido los programas estadísticos incorporan funcionalidades específicas para manejar datos provenientes de encuestas con diseños complejos.
Una vez cargada la encuesta de hogares en R, el siguiente paso es definir el diseño muestral del cual proviene dicha muestra. Para ello se utilizará el paquete srvyr, que surge como un complemento del paquete survey. Estas librerías permiten definir objetos tipo survey.design, a los que se aplican las funciones de estimación y análisis de encuestas, y que pueden ser combinadas con la programación del paquete tidyverse. A continuación, se muestra un ejemplo en el que se define un objeto de tipo survey_design para la encuesta:
options(survey.lonely.psu = "adjust")
library(survey)
library(srvyr)
survey_design <- survey_data %>%
as_survey_design(
strata = Stratum,
ids = PSU,
weights = wk,
nest = TRUE
)Como explica Lumley et al. (2026), la opción options(survey.lonely.psu = "adjust") define cómo el paquete survey debe tratar los estratos que contienen una sola UPM en la muestra. En estos estratos no es posible calcular directamente la variabilidad entre UPM, porque no existe una segunda unidad con la cual realizar la comparación. Con el método "adjust", la contribución de la UPM solitaria a la varianza se calcula centrando su estimación en la media general de las UPM de la muestra, en lugar de utilizar la media del propio estrato. Este ajuste evita que la contribución del estrato sea omitida o quede indefinida y suele producir una estimación conservadora de la varianza. La opción no modifica las estimaciones puntuales, sino únicamente sus varianzas, errores estándar e intervalos de confianza. Su aplicación debe distinguirse del caso en el que una UPM sea seleccionada con probabilidad de inclusión uno. En cualquier caso, la contribución a la varianza debe especificarse mediante la información apropiada del diseño.
En la implementación descrita por Freedman Ellis y Schneider (2026), survey_data corresponde a la base de datos que contiene la muestra seleccionada. A partir de estos datos, la función as_survey_design() convierte la información en un objeto de clase tbl_svy, el cual almacena todos los elementos necesarios para describir el diseño muestral de la encuesta. Entre ellos se incluyen la variable de estratificación (strata), que identifica los estratos definidos en el diseño, junto con la variable que representa las unidades primarias de muestreo (UPM) o conglomerados seleccionados en la primera etapa del muestreo (ids). Asimismo, el argumento weights define la variable que contiene los factores de expansión asociados a cada observación. Finalmente, la opción nest = TRUE vuelve únicos dentro de cada estrato los identificadores de conglomerado que pudieran repetirse entre estratos.
3.1 Estimación de parámetros descriptivos
En las encuestas de hogares es común estimar parámetros descriptivos asociados a variables numéricas, tales como totales, medias, razones y desviaciones estándar. Estas medidas permiten caracterizar distintos fenómenos sociales y económicos de la población. En esta sección se presenta la lógica detrás de la sintaxis utilizada para este tipo de estimación, junto con sus correspondientes medidas de precisión.
3.1.1 Totales
Como se ha señalado anteriormente, el total poblacional de una variable de interés puede estimarse de manera aproximadamente insesgada mediante el estimador de calibración (Deville y Särndal 1992), que pondera el valor observado en cada unidad por su correspondiente factor de expansión calibrado. En un diseño de muestreo con estratificación y selección en varias etapas, este estimador se expresa como:
\[ \hat{t}_y = \sum_{h} \sum_{i} \sum_{k} w_{hik}\,y_{hik}, \]
donde \(h\) identifica el estrato, \(i\) la unidad primaria de muestreo y \(k\) la unidad final observada. El término \(y_{hik}\) representa el valor de la variable de interés para la unidad \(k\) perteneciente a la unidad primaria \(i\) del estrato \(h\), mientras que \(w_{hik}\) corresponde a su factor de expansión. De este modo, cada unidad de la muestra representa a un determinado número de unidades de la población, y la suma ponderada permite reconstruir el total poblacional.
En R, la función survey_total() se utiliza para estimar totales a partir del objeto de diseño. Esta función incorpora automáticamente los factores de expansión y la estructura del diseño, garantizando que las estimaciones reflejen correctamente el modelo de inferencia.
survey_total(
x,
na.rm = FALSE,
vartype = c("se", "ci", "var", "cv"),
level = 0.95,
deff = FALSE
)Los argumentos principales de la función survey_total() son x, na.rm, vartype, level y deff. El argumento x corresponde a la variable sobre la cual se desea calcular el total; también puede dejarse vacío cuando se busca obtener únicamente el total ponderado de casos de la muestra. Por su parte, na.rm indica si los valores faltantes (NA) deben eliminarse antes de realizar el cálculo, siendo FALSE el valor predeterminado.
El argumento vartype permite especificar el tipo de medida de incertidumbre que se desea estimar, pudiendo solicitarse uno o varios resultados simultáneamente, tales como el error estándar ("se"), el intervalo de confianza ("ci"), la varianza ("var") o el coeficiente de variación ("cv"). Asimismo, level define el nivel de confianza utilizado para el cálculo de los intervalos de confianza, cuyo valor por defecto es 0.95. Por otro lado, el intervalo de confianza puede obtenerse directamente al incluir el argumento vartype = "ci" dentro de survey_total(), o bien utilizando la función confint() sobre el objeto resultante, especificando el nivel de confianza requerido. Finalmente, deff es un valor lógico que indica si se debe retornar el efecto del diseño (DEFF).
El siguiente ejemplo presenta cómo estimar totales y sus intervalos de confianza para diferentes variables de interés en R, utilizando la función survey_total(), cuyos resultados se presentan en la tabla 3.1:
survey_design %>%
summarise(
total = survey_total(Income,
vartype = c("se", "ci"),
deff = TRUE))| total | total_se | total_low | total_upp | total_deff |
|---|---|---|---|---|
| 85793667 | 4778674 | 76331414 | 95255920 | 11 |
De la tabla, se obtiene que la estimación del total poblacional para el ingreso total es de 85.793.667. Este valor corresponde al estimador puntual obtenido a partir de la encuesta, incorporando los factores de expansión y las características del diseño muestral. El error estándar asociado a esta estimación es de 4.778.674, lo que refleja la variabilidad muestral del estimador. A partir de este valor se construye un intervalo de confianza del 95%, cuyos límites inferior y superior son 76.331.414 y 95.255.920, respectivamente. El efecto de diseño (deff), en el sentido desarrollado por Kish (1965), es igual a 11, lo cual sugiere una ligera pérdida de precisión asociada principalmente a las características del diseño complejo. En consecuencia, aunque el tamaño muestral nominal pueda ser grande, el tamaño muestral efectivo resultaría un poco menor debido al efecto combinado de la ponderación, la estratificación y la conglomeración.
Para continuar ilustrando el uso de la función survey_total(), estimemos el total de gastos de los hogares, pero ahora calculando el intervalo de confianza al 90%. El siguiente código realiza esta estimación, presentada en la tabla 3.2:
survey_design %>%
summarise(total = survey_total(
Expenditure,
vartype = "ci",
level = 0.9,
deff = TRUE
))| total | total_low | total_upp | total_deff |
|---|---|---|---|
| 55677504 | 51360469 | 59994539 | 10.2 |
Si el objetivo es estimar el total de ingresos de los hogares, pero desagregado por sexo, se puede utilizar la función group_by() para agrupar por la variable de interés, junto con cascade() de la librería srvyr, que permite agregar una fila con el total general al final de la tabla. De esta manera, se pueden obtener fácilmente los totales por categoría y el total global dentro del mismo marco de resumen, como se muestra en la tabla 3.3.
survey_design %>%
group_by(Sex) %>%
cascade(
total = survey_total(Income,
vartype = c("se", "ci"),
level = 0.95),
.fill = "Total income")| Sex | total | total_se | total_low | total_upp |
|---|---|---|---|---|
| Female | 44153820 | 2324452 | 39551172 | 48756467 |
| Male | 41639847 | 2870194 | 35956576 | 47323118 |
| Total income | 85793667 | 4778674 | 76331414 | 95255920 |
Como se observa en los códigos anteriores, una forma práctica de obtener las estimaciones del total, su error estándar y su intervalo de confianza es mediante el argumento vartype, especificando las opciones "se" y "ci" respectivamente.
3.1.2 Medias
Según Gutiérrez (2016), la estimación de la media poblacional ocupa un lugar central en las encuestas de hogares, ya que muchos de los indicadores utilizados para el análisis socioeconómico corresponden a valores promedio, como el ingreso medio del hogar, el gasto per cápita o las horas promedio trabajadas. Este tipo de parámetros permite resumir el comportamiento general de las variables de interés y describir las tendencias centrales de la población objetivo. El estimador de la media poblacional puede expresarse como una razón no lineal entre dos totales poblacionales, los cuales se estiman de la siguiente manera:
\[ \hat{\bar{y}}= \frac{\hat{t}_y}{\hat{N}} = \frac{\sum_{h}\sum_{i}\sum_{k} w_{h i k} \ y_{hik}}{\sum_{h}\sum_{i}\sum_{k} w_{h i k}} \]
De acuerdo con Särndal, Swensson, y Wretman (2003), dado que \(\hat{\bar{y}}\) no es una estadística lineal, su varianza suele estimarse mediante una aproximación. Por esta razón, es necesario recurrir a métodos de remuestreo o a la linealización de Taylor para aproximar su varianza. En este caso particular, utilizando series de Taylor, la varianza se define como:
\[ \widehat{Var}\left(\hat{\bar{y}}\right) \approx \frac{\widehat{Var}\left(\hat{t}_y\right)+\hat{\bar{y}}^{2}\ \widehat{Var}\left(\hat{N}\right)-2\ \hat{\bar{y}} \ \widehat{Cov}\left(\hat{t}_y,\hat{N}\right)}{\hat{N}^{2}} \]
Como se puede observar, el cálculo de la varianza de la media poblacional implica componentes analíticos complejos, como la covarianza entre el total estimado y el tamaño poblacional estimado. Sin embargo, el paquete srvyr en R facilita estos cálculos al incorporar funciones que estiman directamente la media, su error estándar, el intervalo de confianza y el efecto del diseño. A continuación, se presenta la sintaxis para estimar la media de los ingresos de los hogares, junto con su intervalo de confianza al 95%, cuyos resultados se presentan en la tabla 3.4:
survey_design %>%
summarise(mean = survey_mean(
Income,
vartype = c("se", "ci"),
level = 0.95,
deff = TRUE
))| mean | mean_se | mean_low | mean_upp | mean_deff |
|---|---|---|---|---|
| 571 | 28.5 | 515 | 627 | 8.82 |
Como se aprecia, los argumentos utilizados en la función survey_mean() son similares a los de survey_total(). En este caso, vartype permite obtener el error estándar ("se") y el intervalo de confianza ("ci"), mientras que el argumento deff = TRUE solicita el cálculo del efecto del diseño. La estimación indica que el ingreso medio de los hogares en la población es de aproximadamente 571 dólares. El error estándar asociado es de 28,5, lo que refleja la incertidumbre muestral de la estimación. El intervalo de confianza, cuyos límites son 515 y 627, para un nivel de confianza del 95%. Además, el efecto de diseño estimado es de 8,82, lo que significa que la varianza de la media bajo el diseño muestral complejo es 8,82 veces mayor que la que se obtendría con un muestreo aleatorio simple de igual tamaño. Este valor evidencia una pérdida considerable de eficiencia, posiblemente asociada con la magnitud de la variabilidad del ingreso entre las unidades primarias de muestreo.
De forma análoga, es posible estimar la media de los gastos de los hogares, empleando la misma estructura de código, presentada en la tabla 3.5:
survey_design %>%
summarise(mean = survey_mean(
Expenditure,
vartype = c("se", "ci"),
level = 0.95,
deff = TRUE
))| mean | mean_se | mean_low | mean_upp | mean_deff |
|---|---|---|---|---|
| 371 | 13.3 | 344 | 397 | 6.02 |
La media estimada del gasto es de 371 dólares, con un error estándar de 13,3. El intervalo de confianza se extiende entre 344 y 397, mientras que el efecto de diseño de 6,02 indica una alta heterogeneidad entre las UPM de la muestra con respecto al gasto promedio. También se pueden realizar estimaciones de la media por subgrupos siguiendo el mismo esquema mostrado previamente. De manera análoga, se pueden calcular las medias del gasto por zona, las cuales son presentadas en la tabla 3.6:
survey_design %>%
group_by(Zone) %>%
cascade(
mean = survey_mean(Expenditure,
level = 0.95,
vartype = c("se", "ci")),
.fill = "Mean expenditure")| Zone | mean | mean_se | mean_low | mean_upp |
|---|---|---|---|---|
| Mean expenditure | 371 | 13.3 | 344 | 397 |
| Rural | 274 | 10.3 | 254 | 294 |
| Urban | 460 | 22.2 | 416 | 504 |
Al desagregar por zona, se observa que los hogares urbanos registran un gasto medio de 460, frente a 274 en los hogares rurales. Aunque los intervalos de confianza muestran mayor incertidumbre en la zona urbana, no se superponen, lo que sugiere una diferencia importante entre ambas zonas. Asimismo, es posible realizar una estimación combinada por zona y región, presentada en la tabla 3.7:
survey_design %>%
group_by(Zone, Region) %>%
cascade(
mean = survey_mean(Expenditure,
level = 0.95,
vartype = c("se", "ci")),
.fill = "Mean expenditure")| Zone | Region | mean | mean_se | mean_low | mean_upp |
|---|---|---|---|---|---|
| Mean expenditure | Mean expenditure | 371 | 13.3 | 344 | 397 |
| Rural | Norte | 307 | 18.4 | 271 | 343 |
| Rural | Sur | 317 | 14.6 | 288 | 346 |
| Rural | Centro | 337 | 42.8 | 252 | 422 |
| Rural | Occidente | 242 | 11.1 | 220 | 264 |
| Rural | Oriente | 242 | 22.8 | 197 | 287 |
| Rural | Mean expenditure | 274 | 10.3 | 254 | 294 |
| Urban | Norte | 402 | 48.0 | 307 | 497 |
| Urban | Sur | 497 | 62.5 | 373 | 621 |
| Urban | Centro | 531 | 53.1 | 426 | 636 |
| Urban | Occidente | 376 | 20.9 | 334 | 417 |
| Urban | Oriente | 466 | 45.3 | 377 | 556 |
| Urban | Mean expenditure | 460 | 22.2 | 416 | 504 |
El gasto medio varía de forma importante según la zona de residencia y la región. En el área rural, los mayores promedios se observan en las regiones Centro, Sur y Norte, mientras que Occidente y Oriente presentan los valores más bajos. En el área urbana, el gasto medio es superior en todas las regiones y alcanza sus niveles más altos en Centro, Sur y Oriente. No obstante, algunas estimaciones regionales, especialmente las de Centro rural y Sur urbano, presentan errores estándar relativamente elevados, por lo que deben interpretarse con mayor cautela.
3.1.3 Razones
La razón poblacional es un parámetro no lineal definido como el cociente entre los totales de dos variables de interés. Permite cuantificar la relación entre ambas variables y resulta especialmente útil para construir indicadores relativos, comparar grupos y analizar su evolución a lo largo del tiempo. En las encuestas de hogares, este parámetro se utiliza ampliamente para calcular indicadores como el número de hombres por cada mujer, la proporción de personas ocupadas respecto de la población en edad de trabajar y la prevalencia de la subalimentación (FAO 2026).
Dado que la razón corresponde al cociente entre dos parámetros (totales) poblacionales desconocidos, tanto el numerador como el denominador deben ser estimados a partir de la muestra. Siendo \(t_y\) el total de la variable \(y\) y \(t_x\) el total de la variable \(x\), la razón poblacional se define como \(R = \frac{t_y}{t_x}\) y su estimador puntual se expresa como:
\[ \hat{R} = \frac{\hat{t}_y}{\hat{t}_x} = \frac{\sum_{h}\sum_{i}\sum_{k} w_{hik} \ y_{hik}} {\sum_{h}\sum_{i}\sum_{k} w_{hik} \ x_{hik}} \]
Sin embargo, la estimación de la varianza de una razón requiere procedimientos específicos, entre los que destacan la linealización de Taylor y los métodos de remuestreo. En el contexto de encuestas complejas, la función survey_ratio() permite estimar razones poblacionales y obtener sus correspondientes medidas de precisión, incorporando adecuadamente las características del diseño muestral.
Como primer ejemplo de aplicación, se estima la razón entre el número de mujeres y el número de hombres en la población representada por la base de datos. Este indicador permite examinar la composición de la población por sexo y detectar posibles diferencias en la presencia relativa de ambos grupos. Aunque está estrechamente relacionado con el índice de feminidad, en este caso se expresa directamente como una razón y, por tanto, no se multiplica por 100.
Un valor igual a 1 indica que existe el mismo número de mujeres y hombres; un valor superior a 1 refleja una mayor cantidad de mujeres, mientras que un valor inferior a 1 señala una mayor cantidad de hombres. Por ejemplo, una razón de 1,05 indica que existen aproximadamente 1,05 mujeres por cada hombre, lo que equivale a una presencia ligeramente mayor de mujeres en la población. El procedimiento de estimación y los resultados obtenidos se presentan en la tabla 3.8:
survey_design %>%
summarise(ratio = survey_ratio(
numerator = (Sex == "Female"),
denominator = (Sex == "Male"),
level = 0.95,
vartype = c("se", "ci")
))| ratio | ratio_se | ratio_low | ratio_upp |
|---|---|---|---|
| 1.11 | 0.035 | 1.04 | 1.18 |
Dado que la variable sexo en la base de datos es categórica, fue necesario acudir a variables indicadoras para realizar el cálculo de la razón, utilizando Sex == "Female" para identificar a las mujeres y Sex == "Male" para los hombres. Los resultados muestran que en la población analizada hay una mayor cantidad de mujeres que de hombres, obteniéndose una razón estimada de 1.11. Esto indica que, por cada 100 hombres, existen aproximadamente 111 mujeres. Además, el intervalo de confianza al 95% sugiere que esta razón podría variar entre 1.04 y 1.18. La tabla 3.9 presenta la estimación de esta razón en la zona rural. Esta salida se obtuvo con la ejecución del siguiente código:
rural_subset <- survey_design %>%
filter(Zone == "Rural")
rural_subset %>%
summarise(ratio = survey_ratio(
numerator = (Sex == "Female"),
denominator = (Sex == "Male"),
level = 0.95,
vartype = c("se", "ci")
))| ratio | ratio_se | ratio_low | ratio_upp |
|---|---|---|---|
| 1.07 | 0.035 | 0.997 | 1.14 |
La razón estimada entre el número de mujeres y el número de hombres en la zona rural es de 1,07, lo que indica que el número de mujeres es cerca de un 7 % mayor que el de hombres. El intervalo de confianza se extiende de 0,997 a 1,14. Dado que el intervalo de confianza incluye el valor 1, no existe evidencia suficiente para concluir que la cantidad de mujeres difiere de la cantidad de hombres en la zona rural.
Otro ejemplo frecuente de estimación de razones en las encuestas de hogares es la razón entre el gasto y el ingreso, la cual permite analizar patrones de consumo y aproximarse a la capacidad de los hogares para sostener sus niveles de gasto (OECD 2013). A continuación, se muestra cómo estimar este indicador, cuyos resultados se presentan en la tabla 3.10:
survey_design %>%
summarise(ratio = survey_ratio(
numerator = Expenditure,
denominator = Income,
level = 0.95,
vartype = c("se", "ci")
))| ratio | ratio_se | ratio_low | ratio_upp |
|---|---|---|---|
| 0.649 | 0.023 | 0.603 | 0.695 |
En este caso, se especificaron la variable de gasto como numerador (numerator), la variable de ingreso como denominador (denominator), el nivel de confianza (level) utilizado para la construcción de los intervalos de confianza y las medidas de precisión requeridas mediante el argumento (vartype). Como se puede observar, la razón entre el gasto y el ingreso es cercana a 0.65. Esto implica que, por cada 100 dólares que ingresan al hogar, se gastan aproximadamente 65; el intervalo de confianza al 95% va de 0.60 a 0.69.
Ahora bien, otro análisis de interés es estimar la razón de gastos en cada una de las regiones. A continuación, se presentan los códigos computacionales, los cuales dan origen a las estimaciones presentadas en la tabla 3.11.
survey_design %>%
group_by(Region) %>%
summarise(ratio = survey_ratio(
numerator = Expenditure,
denominator = Income,
level = 0.95,
vartype = c("se", "ci")
))| Region | ratio | ratio_se | ratio_low | ratio_upp |
|---|---|---|---|---|
| Norte | 0.627 | 0.034 | 0.559 | 0.695 |
| Sur | 0.674 | 0.062 | 0.553 | 0.796 |
| Centro | 0.752 | 0.043 | 0.667 | 0.837 |
| Occidente | 0.606 | 0.042 | 0.522 | 0.690 |
| Oriente | 0.600 | 0.054 | 0.493 | 0.708 |
La razón entre el gasto y el ingreso presenta diferencias entre las regiones. No obstante, los intervalos de confianza se superponen ampliamente, por lo que las diferencias observadas entre las regiones no necesariamente representan diferencias estadísticamente significativas. En conjunto, los resultados indican que los hogares destinan, en promedio, entre el 60 % y el 75 % de sus ingresos al gasto, con una mayor proporción en la región Centro.
3.2 Estimación de parámetros de distribución y desigualdad
El análisis de encuestas de hogares no se limita a la estimación de medidas descriptivas, pues también resulta fundamental describir la dispersión, la posición relativa de las observaciones y el grado de desigualdad de la distribución de las variables. Debido a su naturaleza no lineal, la forma funcional de los estimadores y la cuantificación de su incertidumbre deben tratarse usando procedimientos de linealización de Taylor o los métodos de replicación.
3.2.1 Varianza y desviación estándar
En las encuestas de hogares, la estimación de medidas de dispersión es fundamental para evaluar el grado de heterogeneidad de la población respecto de las variables analizadas. Ya sea que una encuesta mida el consumo de alcohol en la población adulta o el índice de masa corporal de los niños en edad escolar, una desviación estándar poblacional pequeña indica una mayor homogeneidad en la población, mientras que una desviación estándar grande indica una población más heterogénea (SAS Institute Inc. 2012).
En particular, estudiar la variabilidad de los ingresos permite identificar diferencias económicas entre los hogares y aporta información relevante para el diagnóstico de la desigualdad y el diseño de políticas públicas. Una de las medidas de dispersión más utilizadas es la desviación estándar, que cuantifica cuánto se alejan, en promedio, los valores respecto de la media. Una desviación estándar pequeña indica que los ingresos se encuentran relativamente concentrados alrededor del promedio y, por tanto, que la población es más homogénea en términos económicos. Por el contrario, una desviación estándar elevada refleja una mayor dispersión y, en consecuencia, diferencias más marcadas entre los ingresos de los hogares.
De acuerdo con Heeringa, West, y Berglund (2017), la desviación estándar poblacional se estima mediante una transformación no lineal del estimador de la varianza poblacional, \(\hat{S}_y^2\). Esta transformación incorpora, además, una corrección por grados de libertad basada en el número de observaciones válidas, denotado por \(n\). En consecuencia, el estimador de la desviación estándar poblacional se expresa como:
\[ \hat s_y = \sqrt{\frac{n}{n-1} \cdot \hat{S}^2_y} = \sqrt{\frac{n}{n-1}\frac{\sum_{h}\sum_{i}\sum_{k} w_{hik} \ \left(y_{hik}-\hat{\bar{y}}\right)^{2}}{\sum_{h}\sum_{i}\sum_{k} w_{hik}}} \]
El error estándar de este estimador puede aproximarse mediante linealización de Taylor o, equivalentemente, mediante el método delta [sarndal2003model]. Para estimar la desviación estándar de una variable numérica en encuestas de hogares mediante R, se estima primero la varianza poblacional con la función survey_var() y, posteriormente, se obtiene su raíz cuadrada. A continuación, se ilustra este procedimiento mediante la estimación de la desviación estándar del ingreso desagregada por zona.
survey_design %>%
group_by(Zone) %>%
summarise(
Var = survey_var(
Income,
level = 0.95,
vartype = c("se", "ci"),
na.rm = TRUE
)
) %>%
mutate(
Sd = sqrt(Var),
Sd_low = sqrt(Var_low),
Sd_upp = sqrt(Var_upp)
)| Zone | Var | Var_se | Var_low | Var_upp | Sd | Sd_low | Sd_upp |
|---|---|---|---|---|---|---|---|
| Rural | 96274 | 13794 | 68960 | 123588 | 310 | 263 | 352 |
| Urban | 338628 | 81241 | 177763 | 499494 | 582 | 422 | 707 |
Los argumentos de la función survey_var() son equivalentes a los utilizados previamente para la estimación de medias y totales. Los resultados de la tabla 3.12 muestran que los ingresos presentan una dispersión considerablemente mayor en la zona urbana que en la rural. En la zona rural, la desviación estándar alcanza 310 dólares, mientras que en la zona rural se eleva a 582 dólares. Además, los intervalos de confianza de las desviaciones estándar no se superponen, lo que proporciona evidencia de que la variabilidad de los ingresos es efectivamente mayor en las áreas urbanas.
3.2.2 Percentiles y medianas
Los percentiles permiten identificar puntos específicos de la distribución de una variable de interés y determinar los valores por debajo de los cuales se encuentra una proporción determinada de la población. En las encuestas de hogares, estas medidas resultan especialmente útiles para caracterizar la distribución de variables económicas y sociales, como el ingreso, el gasto o las horas trabajadas. Por ejemplo, los percentiles de ingreso pueden utilizarse para identificar a la población perteneciente al 10% superior de la distribución con fines tributarios (UNECE 2011), o para focalizar subsidios dirigidos a los hogares ubicados en los percentiles más bajos. La mediana, correspondinte al valor que divide a la población en dos partes iguales es poco sensible a valores extremos, razón por la cual suele considerarse una medida robusta de tendencia central.
Los percentiles constituyen un caso particular de los cuantiles. En términos generales, el cuantil de orden \(q\) (con \(0 < q < 1\)) es el valor que deja por debajo una proporción \(q\) de la población. Cuando esta proporción se expresa en una escala de 0 a 100, el cuantil se denomina percentil. La estimación de cuantiles en encuestas complejas se basa en el uso de estimadores ponderados y en la estimación de la función de distribución acumulada (FDA) de la población (Schulze Waltrup y Kauermann 2016). Para una población finita de tamaño \(N\), un estimador de esta distribución está dado por:
\[ \hat{F}\left(x\right) = \frac{\sum_{h} \sum_{i} \sum_{k} w_{hik} \ I\left(y_{k}\leq x\right)}{\sum_{h}\sum_{i}\sum_{k} w_{hik}} \]
en donde la función \(I\left(y_{k}\leq x\right)\) es una variable indicadora que toma el valor uno si \(y_k \leq x\) y cero en otro caso. Una vez estimada la FDA utilizando los pesos del diseño muestral, el cuantil \(q\)-ésimo de una variable \(y\) se define como el menor valor de \(y\) para el cual la FDA es mayor o igual que \(q\). En particular, la mediana estimada es el valor donde la FDA estimada es mayor o igual a 0.5. Para la estimación de cuantiles en encuestas complejas, se ordenan las observaciones en orden ascendente (estadísticas de orden) de forma que \(y_{(1)} \leq y_{(2)} \leq \ldots \leq y_{(n)}\) y se identifica el valor de \(j\) \((j=1,\ldots,n)\) tal que:
\[ \hat{F}\left(y_{(j)}\right)\leq q\leq\hat{F}\left(y_{(j+1)}\right) \]
Bajo esta condición, el estimador del cuantil \(q\)-ésimo se obtiene mediante interpolación lineal, la cual permite obtener estimaciones más estables y precisas de los cuantiles, especialmente cuando la FDA presenta saltos importantes asociados al uso de pesos muestrales.
Woodruff (1952) propone el método de inversión de la función de distribución acumulada como procedimiento para construir intervalos de confianza de cuantiles. Por su parte, Kovar, Rao, y Wu (1988) analiza la estimación de la varianza y la construcción de intervalos de confianza para percentiles y medianas, y muestra que los métodos de replicación presentan un desempeño satisfactorio para estos parámetros no lineales en encuestas con diseños muestrales complejos.
Tanto los estimadores de cuantiles como los métodos para estimar sus varianzas se encuentran implementados en R. En particular, la función survey_median() permite estimar la mediana y obtener, de manera conjunta, su error estándar y su intervalo de confianza. Al igual que otros parámetros poblacionales, la mediana puede estimarse para diferentes dominios de estudio, como la zona geográfica, el sexo o los grupos de edad. A continuación, se presenta la sintaxis empleada para estimar la mediana del gasto de los hogares por zona a partir de la base de datos de ejemplo.
survey_design %>%
group_by(Zone) %>%
summarise(
median = survey_median(Expenditure,
level = 0.95,
vartype = c("se", "ci")))| Zone | median | median_se | median_low | median_upp |
|---|---|---|---|---|
| Rural | 241 | 11.0 | 214 | 258 |
| Urban | 381 | 19.8 | 337 | 416 |
A partir de la tabla 3.13 se concluye que el ingreso mediano presenta una diferencia importante entre zonas. En el área rural, la mediana estimada es de 241 dólares, lo que indica que la mitad de la población rural tiene ingresos inferiores a este valor y la otra mitad registra ingresos superiores. En la zona urbana, la mediana asciende a 381 dólares, es decir, aproximadamente un 58 % más que en la zona rural. Los intervalos de confianza no se superponen, lo que sugiere una diferencia clara en los niveles centrales de ingreso entre ambas zonas. Aunque la estimación urbana presenta un error estándar mayor, los resultados muestran consistentemente que el ingreso mediano es más elevado en las áreas urbanas.
Cuando el objetivo es estimar un percentil distinto de la mediana, puede utilizarse la función survey_quantile(). De acuerdo con Dorfman y Valliant (1993), algunos procedimientos para construir intervalos de confianza de cuantiles pueden presentar un desempeño menos satisfactorio que otras alternativas disponibles. En particular, el argumento interval_type = "score" emplea un método de inversión para determinar los límites del intervalo, en lugar de calcularlos directamente a partir de la función de influencia del percentil.
A modo de ejemplo, a continuación se presenta la sintaxis para estimar el percentil 25 del gasto. Los resultados obtenidos se muestran en la tabla 3.14.
survey_design %>%
summarise(
quantile = survey_quantile(
Expenditure,
quantiles = 0.25,
level = 0.95,
vartype = c("se", "ci"),
interval_type = "score"
)
)| quantile_q25 | quantile_q25_se | quantile_q25_low | quantile_q25_upp |
|---|---|---|---|
| 200 | 13.8 | 163 | 218 |
De los resultados anteriores, el percentil 25 del gasto se estima en 200 dólares, lo que indica que aproximadamente una cuarta parte de la población presenta niveles de gasto iguales o inferiores a este valor, mientras que el 75 % restante registra gastos superiores. El error estándar de 13,8 dólares refleja la incertidumbre asociada a la estimación.
3.2.3 El coeficiente de Gini y la curva de Lorenz
El tema sobre desigualdad económica trasciende el ámbito estrictamente estadístico y constituye uno de los temas centrales del análisis social contemporáneo. La desigualdad económica se relaciona con la persistencia de brechas en el acceso a oportunidades, la baja movilidad social y el debilitamiento de la cohesión social. En este contexto, su medición rigurosa resulta fundamental para producir diagnósticos sólidos y orientar el diseño, la implementación y la evaluación de políticas públicas integrales dirigidas a reducir las desigualdades y promover el desarrollo social inclusivo (CEPAL 2025, 32-33).
Entre los indicadores más ampliamente utilizados para cuantificar la desigualdad económica se encuentra el coeficiente de Gini (\(G\)), el cual mide el grado de concentración del ingreso comparando la distribución observada con una situación hipotética de igualdad perfecta. Este coeficiente toma valores entre 0 y 1, donde \(G = 0\) representa igualdad perfecta y \(G = 1\) corresponde al máximo nivel de desigualdad posible. En consecuencia, cuanto más cercano a uno sea el coeficiente, mayor será la concentración del ingreso en una proporción reducida de la población.
En el contexto de las encuestas de hogares, la estimación del coeficiente de Gini debe incorporar adecuadamente las características del diseño muestral, incluyendo los factores de expansión, la estratificación y la conglomeración. Siguiendo a Binder y Kovačević (1995) y Langel y Tillé (2013), el estimador ponderado del coeficiente de Gini puede expresarse en función de la posición acumulada de cada observación en la distribución del ingreso, así:
\[ \hat{G} = \frac{2\sum_{h}\sum_{i}\sum_{k}w_{hik}^{*} \ \hat{F}_{hik} \ y_{hik}}{\hat{\bar{y}}}-1 \]
donde \(w_{hik}^{*}=\dfrac{w_{hik}}{\sum_{h}\sum_{i}\sum_{k}w_{hik}}\) corresponde al peso muestral normalizado, \(\hat{F}_{hik}\) representa la función de distribución acumulada (FDA) estimada para la observación \(k\) dentro del conglomerado \(i\) del estrato \(h\), y \(\hat{\bar{y}}\) denota la media ponderada de la variable de ingreso en la población.
Con respecto a la estimación de la varianza, Osier (2009) desarrolla un procedimiento de linealización que aproxima el estimador no lineal mediante una variable linealizada. A partir de este desarrollo, Jacob, Pessoa, y Damico (2024) presenta su implementación en R mediante la función svygini(). Para ello, primero se prepara el diseño muestral mediante convey_prep(). Luego, la función svygini() calcula el índice de Gini utilizando la variable de ingreso y el diseño de encuesta complejo especificado.
A continuación, se presenta la sintaxis utilizada para estimar el coeficiente de Gini en la base de datos de ejemplo, cuyos resultados se muestran en la tabla 3.15.
library(convey)
gini_design <- convey_prep(survey_design)
gini <- svygini( ~ Income, design = gini_design)
data.frame(
Gini = coef(gini),
standard_error = SE(gini),
ci_lower = confint(gini)[1],
ci_upper = confint(gini)[2]
)| Gini | Income | ci_lower | ci_upper | |
|---|---|---|---|---|
| Income | 0.413 | 0.019 | 0.377 | 0.45 |
El coeficiente de Gini estimado indica un grado apreciable de desigualdad en la distribución del ingreso y evidencia una concentración relevante de los ingresos en una parte de la población.
Por su parte, la curva de Lorenz representa gráficamente la distribución del ingreso mediante la relación entre la proporción acumulada de la población, ordenada de menor a mayor ingreso, y la proporción acumulada del ingreso total que le corresponde (Lorenz 1905). La diagonal de 45 grados representa una situación hipotética de igualdad perfecta, en la que cada proporción acumulada de la población concentra una proporción equivalente del ingreso total.
El coeficiente de Gini se obtiene como la razón entre el área comprendida entre la curva de Lorenz y la línea de igualdad y el área total situada bajo dicha línea (Deaton 1997). Dado que esta última área es igual a un medio, el coeficiente también puede expresarse como el doble del área situada entre ambas curvas. En consecuencia, cuanto más próxima se encuentre la curva de Lorenz a la línea de igualdad, más equitativa será la distribución del ingreso; por el contrario, una mayor distancia entre ambas indica un grado más elevado de desigualdad.
En encuestas con diseños muestrales complejos, la estimación de las ordenadas de la curva de Lorenz y de sus varianzas debe incorporar las ponderaciones y las demás características del diseño muestral (Kovačević y Binder 1997). Para realizar la curva de Lorenz en R se utiliza la función svylorenz():
clorenz <- svylorenz(
formula = ~Income,
design = gini_design,
quantiles = seq(0, 1, .05),
alpha = .01,
plot = TRUE
)
El argumento formula = ~Income especifica la variable de ingreso sobre la cual se calculará la distribución acumulada. El argumento design = gini_design indica el objeto de diseño muestral previamente definido, el cual contiene la información relacionada con pesos, estratos y conglomerados de la encuesta. Por su parte, quantiles = seq(0, 1, .05) define los puntos de la distribución en los cuales se evaluará la curva de Lorenz, generando percentiles desde 0 hasta 1 en incrementos de 0.05. Finalmente, el argumento alpha = .01 establece un nivel de significación del 1%, lo que equivale a construir intervalos de confianza del 99% para las estimaciones asociadas a la curva.
A partir de la figura 3.1, se observa un grado considerable de desigualdad en la distribución del ingreso per cápita, dado que la curva de Lorenz se sitúa claramente por debajo de la línea de igualdad perfecta. Su marcada curvatura muestra que los grupos ubicados en la parte inferior de la distribución concentran una proporción reducida del ingreso total, mientras que una participación considerable se acumula entre las personas de mayores ingresos. La separación entre ambas líneas se amplía progresivamente hacia los tramos superiores, lo que refleja una mayor concentración del ingreso en estos grupos. Por su parte, la banda sombreada representa la incertidumbre asociada a la estimación de la curva.
3.2.4 Correlaciones
En el estudio de encuestas de hogares, además de describir variables de forma individual, es importante analizar cómo se relacionan dos variables entre sí. Una de las herramientas más utilizadas para este propósito es el coeficiente de correlación de Pearson, el cual mide la fuerza y la dirección de la relación lineal entre dos variables numéricas. Este coeficiente toma valores entre –1 y 1. Un valor positivo indica que ambas variables tienden a aumentar simultáneamente, mientras que un valor negativo señala que cuando una variable aumenta, la otra tiende a disminuir. Por su parte, valores cercanos a cero sugieren la ausencia de una relación lineal fuerte entre las variables analizadas. Por ejemplo, en una encuesta de hogares puede ser de interés estudiar qué tan fuerte es la asociación entre el ingreso de los hogares y su nivel de gasto. Este tipo de análisis permite comprender mejor los patrones económicos y sociales en la población.
Supóngase que se dispone de dos variables numéricas de interés, denotadas por \(x\) y \(y\), observadas en la encuesta compleja. De acuerdo con Heeringa, West, y Berglund (2017), la asociación lineal entre ambas variables puede estimarse mediante el coeficiente de correlación de Pearson ponderado, definido como la covarianza ponderada entre \(x\) y \(y\) dividida por el producto de sus desviaciones estándar ponderadas. Esta estandarización elimina la influencia de las unidades de medida y permite evaluar tanto la dirección como la intensidad de la relación lineal. Si \(\hat{\bar{x}}\) y \(\hat{\bar{y}}\) representan las estimaciones de las medias poblacionales de \(x\) y \(y\), respectivamente, el coeficiente de correlación ponderado se expresa como:
\[ \hat{\rho}_{xy} = \frac{\displaystyle \sum_{h} \sum_{i} \sum_{k} w_{hik} (y_{hik} - \hat{\bar{y}})(x_{hik} - \hat{\bar{x}})} {\sqrt{\displaystyle \sum_{h} \sum_{i} \sum_{k} w_{hik} (y_{hik} - \hat{\bar{y}})^2} \sqrt{\displaystyle \sum_{h} \sum_{i} \sum_{k} w_{hik} (x_{hik} - \hat{\bar{x}})^2}} \]
El paquete survey cuenta con la función svyvar() que permite obtener matrices de covarianzas ponderadas, a partir de las cuales se puede calcular la correlación. La tabla 3.16 presenta un ejemplo de estimación para la matriz de varianzas y covarianzas entre el ingreso y el gasto de los hogares.
cov_matrix <- svyvar(~Income + Expenditure, design = survey_design)| Variable | Income | Expenditure | |
|---|---|---|---|
| Income | Income | 243719 | 98337 |
| Expenditure | Expenditure | 98337 | 77887 |
La función svyvar estima la matriz de varianzas y covarianzas considerando el diseño muestral. A partir de dicha matriz puede obtenerse la correlación aplicando las siguientes instrucciones:
cov_xy <- cov_matrix[1, 2]
sd_x <- sqrt(cov_matrix[1, 1])
sd_y <- sqrt(cov_matrix[2, 2])
weighted_cor <- cov_xy / (sd_x * sd_y)
weighted_cor[1] 0.714
Si además se desea realizar inferencia estadística sobre la correlación, por ejemplo obtener errores estándar o intervalos de confianza, pueden utilizarse métodos de replicación compatibles con el paquete survey. Otra opción es utilizar la función svycor() del paquete jtools (Long 2026) para estimar directamente la correlación:
library(jtools)
svycor(~Income + Expenditure, design = survey_design) Income Expenditure
Income 1.00 0.71
Expenditure 0.71 1.00
La correlación entre el ingreso y el gasto es relativamente alta, con un coeficiente de Pearson estimado de 0,71. Esto indica que, en términos generales, los hogares con mayores ingresos tienden a registrar también niveles de gasto más elevados. Los valores iguales a 1 en la diagonal corresponden a la correlación de cada variable consigo misma. Finalmente, este resultado refleja una asociación lineal y no debe interpretarse como evidencia de una relación causal.
3.3 Pruebas de hipótesis
En el análisis de datos provenientes de encuestas de hogares no basta con estudiar cada variable de manera aislada, sino que también es fundamental comparar grupos y evaluar si las diferencias observadas entre ellos reflejan desigualdades reales en la población o si podrían explicarse simplemente por el error de muestreo. Por ejemplo, una pregunta de interés consiste en determinar si existen diferencias estadísticamente significativas en el ingreso medio entre hogares dirigidos por hombres y hogares dirigidos por mujeres. Este tipo de análisis permite identificar brechas sociales y económicas, además de generar evidencia útil para el diseño y evaluación de políticas públicas.
Para responder este tipo de interrogantes se utilizan pruebas de hipótesis; es decir, procedimientos estadísticos que permiten contrastar afirmaciones sobre parámetros poblacionales utilizando la información observada en la muestra. En el contexto de las encuestas de hogares, estas pruebas deben incorporar adecuadamente las características del diseño muestral con el fin de garantizar inferencias válidas y resultados confiables.
En términos generales, toda prueba de hipótesis se basa en el contraste entre dos proposiciones opuestas: la hipótesis nula, denotada por \(H_0\), y la hipótesis alternativa, denotada por \(H_1\). En el caso más común de una prueba bilateral, estas hipótesis se expresan como:
\[ \begin{cases} H_{0}: & \theta = \theta_0 \\ H_{1}: & \theta \neq \theta_0 \end{cases} \]
donde \(\theta\) representa el parámetro poblacional de interés y \(\theta_0\) un valor de referencia especificado bajo la hipótesis nula. Dependiendo del objetivo del análisis, la hipótesis alternativa también puede formularse de manera unilateral, por ejemplo, cuando se desea evaluar si \(\theta > \theta_0\) o si \(\theta < \theta_0\). En cualquier caso, el propósito de la prueba es determinar si la evidencia contenida en la muestra resulta suficientemente fuerte para rechazar la hipótesis nula en favor de la hipótesis alternativa.
Por ejemplo, supóngase que \(\bar{y}_1\) y \(\bar{y}_2\) representan las medias poblacionales de una variable \(y\) en dos dominios distintos, como los hogares con jefatura masculina y femenina. En este caso, el parámetro de interés corresponde a la diferencia entre ambas medias:
\[ \Delta = \bar{y}_1 - \bar{y}_2 \]
Su estimador muestral se define como:
\[ \hat{\Delta} = \hat{\bar{y}}_1 - \hat{\bar{y}}_2 \]
Su error estándar se estima mediante la siguiente expresión:
\[ \widehat{se}(\hat{\Delta}) = \sqrt{ \widehat{Var}(\hat{\bar{y}}_1) + \widehat{Var}(\hat{\bar{y}}_2) - 2\widehat{Cov}(\hat{\bar{y}}_1, \hat{\bar{y}}_2) } \]
La presencia del término de covarianza es importante porque las estimaciones de ambos dominios suelen provenir de la misma muestra y, por tanto, no necesariamente son independientes. Una vez calculado el estimador y su error estándar, el contraste de hipótesis se realiza utilizando el siguiente estadístico de prueba:
\[ t = \frac{\hat{\Delta}} {\widehat{se}(\hat{\Delta})} \sim t_{df} \]
Este estadístico sigue aproximadamente una distribución \(t\) de Student con \((df)\) grados de libertad. En la práctica, estos grados de libertad suelen aproximarse mediante \(df = n_I - H\), donde \(n_I\) representa el número de unidades primarias de muestreo y \(H\) el número de estratos. Bajo la hipótesis nula, valores absolutos elevados del estadístico \(t\) constituyen evidencia en contra de \(H_0\). De manera complementaria, también puede construirse un intervalo de confianza para el parámetro \(\Delta\). Para un nivel de confianza de \((1-\alpha)100\%\), dicho intervalo está dado por:
\[ \hat{\Delta} \;\pm\; t_{(1-\alpha/2,df)} \, \hat{se}(\hat{\Delta}). \]
Este intervalo proporciona un rango de valores plausibles para la diferencia poblacional y constituye una herramienta útil para evaluar tanto la magnitud como la significación estadística de las diferencias observadas entre grupos.
En R, estas pruebas pueden implementarse mediante la función svyttest() del paquete survey, la cual incorpora automáticamente los ajustes asociados al diseño muestral. El siguiente código crea primero el objeto survey_design_heads, que conserva únicamente las observaciones correspondientes a las personas jefas de hogar, identificadas mediante PersonID == "idPer01", sin perder las características del diseño muestral. Posteriormente, la función svyttest() compara el ingreso medio entre las categorías de la variable Sex. El argumento level = 0.95 establece un nivel de confianza del 95 % para los intervalos.
survey_design_heads <- survey_design %>%
filter(PersonID == "idPer01")
ttest_sex <- svyttest(Income ~ Sex,
design = survey_design_heads,
level = 0.95)| statistic | p_value | gl | ci_lower | ci_upper | estimated_difference |
|---|---|---|---|---|---|
| 2.76 | 0.007 | 118 | 34.7 | 210 | 122 |
A partir de los resultados presentados en la tabla 3.17, se estima que el ingreso medio de los hombres jefes de hogar es 122 dólares mayor al de las muejeres jefes de hogar. Dado que el valor \(p\) obtenido es 0,007, inferior al nivel de significación establecido de \(\alpha = 0,05\), se rechaza la hipótesis nula de igualdad de medias y se concluye que la diferencia observada es estadísticamente significativa. Esta conclusión es consistente con el intervalo de confianza del 95 %, que no incluye el valor cero. En conjunto, los resultados aportan evidencia de que, en la población representada por la encuesta, las mujeres jefas de hogar presentan un ingreso medio significativamente menor al de los hombres jefes de hogar.
El procedimiento descrito no se limita a las medias, sino que también puede aplicarse a proporciones, totales, razones o cualquier función diferenciable de totales. En todos los casos, el contraste se fundamenta en la estimación puntual, su varianza (incluyendo covarianzas cuando corresponde) y la comparación con la distribución \(t\) ajustada al diseño muestral.
3.4 Estimación de contrastes
En el análisis de encuestas de hogares es frecuente que el interés no se limite a comparar únicamente dos subpoblaciones, sino varias de manera simultánea. Por ejemplo, puede ser necesario comparar los ingresos medios de los hogares entre distintas regiones, áreas geográficas o grupos poblacionales, con el propósito de identificar diferencias y establecer patrones de desigualdad entre ellos. En este tipo de situaciones, las pruebas de diferencia de medias presentadas anteriormente resultan limitadas, ya que están diseñadas para comparar únicamente pares de poblaciones.
Según Heeringa, West, y Berglund (2017), para abordar comparaciones más generales se utilizan los contrastes, que constituyen una herramienta flexible para evaluar combinaciones lineales de parámetros poblacionales. En términos generales, un contraste se define como:
\[ f\left(\theta_1,\theta_2,\ldots,\theta_J\right) = \sum_{j=1}^{J} a_j \theta_j, \]
donde los coeficientes \(a_j\) son constantes conocidas y \(\theta_j\) representan los parámetros de interés. Este enfoque permite formular y evaluar una amplia variedad de comparaciones entre grupos, incluyendo diferencias entre medias, comparaciones múltiples y combinaciones más complejas de parámetros.
Por ejemplo, si se quiere comparar los ingresos medios de dos subpoblaciones particulares (las regiones Norte y Sur) se puede usar el contraste \(\bar{y}_{Norte} - \bar{y}_{Sur}\). Dado que la muestra cubre cinco regiones en total, el contraste debe construirse asignando coeficientes únicamente a las regiones involucradas en la comparación y dejando coeficientes iguales a cero para las demás regiones. De esta manera, el contraste se define como:
\[ 1\times\hat{\bar{y}}_{Norte}+\left(-1\right)\times\hat{\bar{y}}_{Sur}+0\times\hat{\bar{y}}_{Centro}+0\times\hat{\bar{y}}_{Occidente}+0\times\hat{\bar{y}}_{Oriente}. \]
Esta expresión indica que el contraste corresponde a la diferencia entre las medias estimadas de las regiones Norte y Sur, mientras que las demás regiones no participan en la comparación. De forma matricial, el contraste puede escribirse como:
\[ \left[1,\,-1,\,0,\,0,\,0\right] \times \left[\begin{array}{c} \hat{\bar{y}}_{Norte}\\ \hat{\bar{y}}_{Sur}\\ \hat{\bar{y}}_{Centro}\\ \hat{\bar{y}}_{Occidente}\\ \hat{\bar{y}}_{Oriente} \end{array}\right]. \]
En consecuencia, el vector de contraste asociado a esta comparación es \(\left[1,\,-1,\,0,\,0,\,0\right]\), donde los coeficientes positivos y negativos indican las poblaciones que se desean comparar y los ceros representan las poblaciones excluidas del contraste. En R, estos procedimientos se encuentran disponibles mediante la función svycontrast() del paquete survey. Para esto, es necesario crear un objeto con las medias de los ingresos desagregados por región, como se presenta en la tabla 3.18:
region_mean_contrast <- svyby(
formula = ~ Income,
by = ~ Region,
design = survey_design,
FUN = svymean,
na.rm = TRUE,
covmat = TRUE,
vartype = c("se", "ci")
)| Region | Income | se | ci_l | ci_u | |
|---|---|---|---|---|---|
| Norte | Norte | 552 | 55.4 | 444 | 661 |
| Sur | Sur | 626 | 62.4 | 503 | 748 |
| Centro | Centro | 651 | 61.5 | 530 | 771 |
| Occidente | Occidente | 517 | 46.2 | 426 | 608 |
| Oriente | Oriente | 542 | 71.7 | 401 | 682 |
La función svyby() estima el ingreso medio por región, de acuerdo con el diseño de muestreo survey_design. El argumento formula = ~Income especifica la variable numérica de interés, mientras que by = ~Region define los dominios para los cuales se realizará la estimación. La opción FUN = svymean indica que debe calcularse la media del ingreso en cada región y na.rm = TRUE excluye las observaciones con valores faltantes. Por su parte, vartype = c("se", "ci") solicita el error estándar y el intervalo de confianza de cada media estimada. Finalmente, covmat = TRUE calcula la matriz de varianzas y covarianzas entre las estimaciones regionales, lo que permite realizar posteriormente contrastes o comparaciones entre ellas.
Luego, la función svycontrast() devuelve el contraste estimado y su error estándar, como se muestra en la tabla 3.19. Los argumentos de esta función son los promedios de los ingresos estimados (stat) y las constantes de contraste (contrasts).
contrast_region_ns <- svycontrast(
stat = region_mean_contrast,
contrasts = list(north_south_difference = c(1, -1, 0, 0, 0))
)| contrast | estimate | variance | standard_error |
|---|---|---|---|
| north_south_difference | -73.4 | 6959 | 83.4 |
La estimación de la diferencia de medias indica que el ingreso promedio en la región Norte es aproximadamente 73,4 dólares inferior al observado en la región Sur. Sin embargo, el error estándar de 83,4 es mayor que la diferencia estimada, lo que refleja una incertidumbre considerable. Por tanto, no hay evidencia suficiente para concluir que exista una diferencia estadísticamente significativa entre ambas regiones. Nótese que estos mismos resultados podrían obtenerse realizando explícitamente el proceso de construcción del estimador del contraste y de su varianza estimada. Si se consideran únicamente los ingresos medios estimados de las regiones Norte y Sur, su diferencia es:
# Paso 1: diferencia de las estimaciones (Norte - Sur)
region_income_mean <- setNames(
as.numeric(region_mean_contrast[["Income"]]),
region_mean_contrast[["Region"]]
)
region_income_mean["Norte"] - region_income_mean["Sur"]Norte
-73.4
El paso siguiente consiste en calcular la matriz de varianzas y covarianzas y extraer de ella los elementos correspondientes a las regiones Norte y Sur, los cuales se presentan en la tabla 3.20. Las covarianzas estimadas entre las regiones son todas nulas, lo que resulta coherente con el diseño muestral, dado que la estratificación se realizó por región y la selección de la muestra se efectuó de manera independiente en cada estrato. En consecuencia, los estimadores regionales no comparten unidades muestrales y su covarianza bajo el diseño es igual a cero.
# Paso 2: matriz de varianzas y covarianzas
region_vcov <- vcov(region_mean_contrast)| Region | Norte | Sur | Centro | Occidente | Oriente |
|---|---|---|---|---|---|
| Norte | 3065 | 0 | 0 | 0 | 0 |
| Sur | 0 | 3894 | 0 | 0 | 0 |
| Centro | 0 | 0 | 3778 | 0 | 0 |
| Occidente | 0 | 0 | 0 | 2136 | 0 |
| Oriente | 0 | 0 | 0 | 0 | 5136 |
Para calcular el error estándar de la diferencia (contraste) se usarán las propiedades de la varianza, de la siguiente forma:
\[ \widehat{se}\left(\hat{\bar{y}}_{Norte}-\hat{\bar{y}}_{Sur}\right)=\sqrt{\widehat {Var}\left(\hat{\bar{y}}_{Norte}\right)+ \widehat{Var}\left(\hat{\bar{y}}_{Sur}\right)- 2\, \widehat{Cov}\left(\hat{\bar{y}}_{Norte},\hat{\bar{y}}_{Sur}\right)} \]
Para evitar inconsistencias con valores redondeados, el cálculo se realiza directamente a partir de la matriz estimada:
sqrt(region_vcov["Norte", "Norte"] +
region_vcov["Sur", "Sur"] -
2 * region_vcov["Norte", "Sur"])[1] 83.4
Este resultado corresponde al mismo obtenido anteriormente con la función svycontrast().
Además de comparar únicamente dos poblaciones, los contrastes permiten evaluar simultáneamente varias comparaciones de interés entre diferentes grupos. Por ejemplo, supóngase que se desea comparar los ingresos medios entre distintas regiones geográficas. En particular, podrían considerarse contrastes como \(\bar{y}_{Norte} - \bar{y}_{Centro}\), \(\bar{y}_{Sur} - \bar{y}_{Centro}\) y \(\bar{y}_{Occidente} - \bar{y}_{Oriente}\). Cada una de estas expresiones representa un contraste lineal específico entre medias regionales. De manera conjunta, dichos contrastes pueden organizarse mediante la siguiente matriz de contrastes:
\[ \left[\begin{array}{ccccc} 1 & 0 & -1 & 0 & 0\\ 0 & 1 & -1 & 0 & 0\\ 0 & 0 & 0 & 1 & -1 \end{array}\right] \]
En esta matriz, cada fila define un contraste distinto y cada columna corresponde a una de las regiones consideradas en el análisis. Los coeficientes positivos y negativos indican las medias que participan en cada comparación, mientras que los ceros representan las regiones que no intervienen en el contraste correspondiente. A continuación, se muestra la implementación de los contrastes en R, cuyos resultados se presentan en la tabla 3.21.
contrast_regions <- svycontrast(
stat = region_mean_contrast,
contrasts = list(
north_south = c(1, 0, -1, 0, 0),
south_center = c(0, 1, -1, 0, 0),
west_east = c(0, 0, 0, 1, -1)
)
)| contrast | estimate | variance | standard_error |
|---|---|---|---|
| north_south | -98.4 | 6843 | 82.7 |
| south_center | -25.0 | 7673 | 87.6 |
| west_east | -24.7 | 7272 | 85.3 |
También es posible construir contrastes entre variables asociadas a diferentes grupos poblacionales, como ocurre al comparar el ingreso medio según el sexo del jefe de hogar. Siguiendo el mismo procedimiento del ejemplo anterior, y haciendo uso del objeto survey_design_heads, el primer paso consiste en estimar el ingreso medio para cada grupo, en este caso hombres y mujeres, como se presenta en la tabla 3.22.
sex_mean_contrast <- svyby(
formula = ~ Income,
by = ~ Sex,
design = survey_design_heads,
FUN = svymean,
na.rm = TRUE,
covmat = TRUE,
vartype = c("se", "ci")
)| Sex | Income | se | ci_l | ci_u |
|---|---|---|---|---|
| Female | 442 | 23.5 | 396 | 488 |
| Male | 564 | 34.0 | 498 | 631 |
En este caso, el contraste de interés está dado por \(\bar{y}_{F} - \bar{y}_{M}\), el cual permite cuantificar la diferencia entre el ingreso medio de las mujeres y el correspondiente a los hombres. A continuación, utilizando la función svycontrast(), se obtiene la estimación del contraste, cuyos resultados se presentan en la tabla 3.23. A partir de estos resultados, se concluye que, en promedio, los hombres jefes de hogar perciben 122 dólares más que las mujeres jefes de hogar, con un error estándar estimado de 44,3 dólares.
contrast_sex <- svycontrast(
stat = sex_mean_contrast,
contrasts = list(sex_difference = c(1, -1))
)| contrast | estimate | variance | standard_error |
|---|---|---|---|
| sex_difference | -122 | 1958 | 44.3 |
Dado que los contrastes corresponden a funciones lineales de parámetros, también es posible aplicarlos a estimadores de razón. Un ejemplo de ello consiste en comparar la relación entre ingresos y gastos según el sexo del jefe de hogar. En este caso, primero se estima la razón ingreso-gasto para cada grupo y posteriormente se construye el contraste entre dichas razones. A continuación, se presentan los códigos computacionales utilizados para realizar este análisis, cuyos resultados se muestran en la tabla 3.24:
sex_ratio_contrast <- svyby(
formula = ~ Income,
by = ~ Sex,
denominator = ~ Expenditure,
design = survey_design_heads,
FUN = svyratio,
na.rm = TRUE,
covmat = TRUE,
vartype = c("se", "ci")
)| Sex | Income/Expenditure | se.Income/Expenditure | ci_l | ci_u | |
|---|---|---|---|---|---|
| Female | Female | 1.42 | 0.051 | 1.31 | 1.52 |
| Male | Male | 1.59 | 0.072 | 1.45 | 1.74 |
La función svycontrast() permite construir el contraste entre estas razones estimadas a partir de diseños de muestreo complejos. A continuación, se presentan los códigos computacionales utilizados para realizar este análisis, cuyos resultados se muestran en la tabla 3.25. A partir de dichos resultados, puede concluirse que la diferencia entre las razones estimadas es de 0.178 a favor de los hombres.
contrast_sex_ratio <- svycontrast(
stat = sex_ratio_contrast,
contrasts = list(sex_difference = c(1, -1))
)| contrast | estimate | standard_error | variance |
|---|---|---|---|
| sex_difference | -0.178 | 0.088 | 0.00774 |
3.5 Visualización de variables continuas
La representación gráfica de variables continuas constituye un componente fundamental del análisis de encuestas de hogares. Los gráficos bien diseñados permiten examinar la forma de las distribuciones, identificar tendencias y explorar relaciones entre variables, lo que facilita tanto la interpretación de los resultados como su comunicación a distintos públicos. En este contexto, es importante que las representaciones gráficas incorporen, cuando corresponda, las características del diseño muestral (Lumley 2010). En particular, el uso de los factores de expansión permite que la distribución representada refleje adecuadamente a la población de interés, en lugar de limitarse a describir únicamente las observaciones incluidas en la muestra.
La construcción de los gráficos presentados en este docuemnto se basa en el enfoque conocido como la gramática de los gráficos, el cual concibe cada visualización como la combinación de distintos componentes que se agregan: los datos, las correspondencias entre variables y atributos visuales, los elementos geométricos, las escalas, las facetas y el sistema de coordenadas (Wilkinson 2005). Este enfoque se implementa en R mediante el paquete ggplot2, que permite construir representaciones gráficas de manera sistemática y flexible (Wickham et al. 2026). Las estimaciones obtenidas con los paquetes survey y srvyr, incluidos los factores de expansión y las medidas de incertidumbre, se utilizan como insumos para elaborar los gráficos. Cuando es necesario presentar varias visualizaciones de manera conjunta, el paquete patchwork permite organizarlas y combinarlas en una composición gráfica coherente (Pedersen 2025).
library(ggplot2)
library(patchwork)3.5.1 Histogramas
Un histograma es una representación gráfica de la distribución de una variable numérica continua, construida a partir de rectángulos cuya altura es proporcional a la frecuencia de observaciones dentro de determinados intervalos. En el contexto de las encuestas de hogares, los histogramas ponderados permiten aproximar la distribución de la variable de interés en la población, incorporando los factores de expansión asociados al diseño muestral.
A continuación, se presenta el histograma ponderado de la variable Income, construido incorporando los pesos muestrales (wk) con el fin de representar la distribución estimada del ingreso en la población. Los resultados obtenidos se muestran en la figura 3.2:
weighted_income_hist <- ggplot(
data = survey_data,
aes(x = Income, weight = wk)) +
geom_histogram(aes(y = ..density..)) +
ylab("") +
ggtitle("Histograma ponderado")
weighted_income_hist
En este código, se inicia la construcción del gráfico utilizando la base de datos survey_data. Dentro de aes(), el argumento x = Income indica que la variable representada en el eje horizontal corresponde al ingreso, mientras que weight = wk incorpora los pesos muestrales para construir un histograma ponderado que refleje la distribución estimada en la población. La función geom_histogram() genera el histograma y, mediante aes(y = ..density..), la altura de las barras se expresa en términos de densidad en lugar de frecuencias absolutas. Posteriormente, ylab("") elimina la etiqueta del eje vertical, y ggtitle("Histograma ponderado") agrega un título descriptivo al gráfico.
Los histogramas también permiten comparar visualmente la distribución de una variable entre distintos subgrupos de la población mediante el argumento fill, el cual asigna un color diferente a cada categoría. Por ejemplo, es posible comparar la distribución del ingreso entre zonas urbanas y rurales, como se muestra en la figura 3.3:
zone_colors <- c(Urban = "#48C9B0", Rural = "#117864")
weighted_zone_hist <- ggplot(survey_data, aes(x = Income, weight = wk)) +
geom_histogram(
aes(y = ..density.., fill = Zone),
alpha = 0.5, position = "identity") +
scale_fill_manual(values = zone_colors) +
ylab("") +
ggtitle("Weighted")
weighted_zone_hist
En este código, se construye un histograma ponderado utilizando la base de datos survey_data, donde x = Income define la variable representada en el eje horizontal y weight = wk incorpora los pesos muestrales para reflejar la distribución poblacional del ingreso. La función geom_histogram() genera el histograma y, mediante aes(y = ..density.., fill = Zone), representa las barras en términos de densidad y asigna colores diferentes según la variable Zone, permitiendo comparar visualmente la distribución del ingreso entre zonas. El argumento alpha = 0.5 agrega transparencia a las barras para facilitar la superposición de los histogramas, mientras que position = "identity" permite que las distribuciones se dibujen una encima de otra en lugar de apilarse. Posteriormente, scale_fill_manual(values = zone_colors) define manualmente los colores asociados a cada zona. Finalmente, ylab("") elimina la etiqueta del eje vertical, ggtitle("Weighted") agrega un título al gráfico.
Además, es posible superponer curvas de densidad suavizadas mediante la función geom_density(), lo que permite representar de manera continua la forma de la distribución de la variable analizada. Este tipo de gráfico facilita la identificación de características como la asimetría, la concentración de los valores y la posible presencia de múltiples modas. En la figura 3.4 se presentan los histogramas del ingreso y el gasto junto con sus respectivas curvas de densidad estimadas. Para disponer ambos gráficos uno al lado del otro, se utiliza el operador | del paquete patchwork, que permite combinar distintas visualizaciones en una misma composición gráfica.
weighted_income_hist +
geom_density(fill = "blue", alpha = 0.3) |
weighted_zone_hist +
geom_density(aes(fill = Zone), alpha = 0.3) +
theme(legend.position = "top")
3.5.2 Diagramas de caja (boxplots)
Introducidos por Tukey (1977), los diagramas de caja (boxplots) permiten identificar valores atípicos y evaluar la dispersión de la distribución. Son una representación gráfica que resume una variable mediante estadísticas basadas en cuartiles, permitiendo identificar la mediana, la dispersión de los datos y la presencia de valores atípicos. En el contexto de encuestas de hogares, este tipo de gráfico resulta útil para comparar distribuciones entre distintos grupos poblacionales de manera compacta y visualmente intuitiva.
Para construir boxplots ponderados en ggplot2 se utiliza la función geom_boxplot(), como se muestra en la figura 3.5. En este caso, la función ggplot() inicia la construcción del gráfico utilizando la base de datos survey_data, donde x = Income define la variable numérica analizada y weight = wk incorpora los pesos muestrales para representar la distribución estimada en la población. Posteriormente, geom_boxplot() genera los diagramas de caja y, mediante aes(fill = Zone) o aes(fill = Sex), asigna colores diferentes a cada categoría de las variables Zone y Sex, respectivamente, facilitando la comparación visual entre grupos. La función coord_flip() invierte los ejes para presentar los boxplots de forma horizontal, mejorando así su legibilidad. Por su parte, scale_fill_manual() permite definir manualmente los colores asociados a cada categoría mediante los vectores zone_colors y sex_colors.
weighted_zone_boxplot <-
ggplot(survey_data, aes(x = Income, weight = wk)) +
geom_boxplot(aes(fill = Zone)) +
ggtitle("Weighted") +
coord_flip() +
scale_fill_manual(values = zone_colors)
sex_colors <- c(Male = "#5DADE2", Female = "#2874A6")
weighted_sex_boxplot <-
ggplot(survey_data, aes(x = Income, weight = wk)) +
geom_boxplot(aes(fill = Sex)) +
ggtitle("Weighted") +
coord_flip() +
scale_fill_manual(values = sex_colors)
weighted_zone_boxplot | weighted_sex_boxplot
Además de las herramientas disponibles en ggplot2, las funciones especializadas svyhist() y svyboxplot() del paquete survey incorporan directamente las características del diseño muestral complejo en la construcción de los gráficos. Estas funciones permiten obtener representaciones gráficas coherentes con el diseño de la encuesta, facilitando el análisis exploratorio de las variables numéricas. Un ejemplo de su aplicación se presenta en la figura 3.6.
old_par <- par(no.readonly = TRUE)
par(mfrow = c(1, 2))
svyhist(
~ Income,
survey_design,
main = "Household income",
col = "grey80",
xlab = "Income",
probability = FALSE
)
svyboxplot(
Income ~ Zone,
survey_design,
col = "grey80",
ylab = "Income",
xlab = "Zone"
)
par(old_par)
3.5.3 Diagramas de dispersión
Los diagramas de dispersión permiten explorar visualmente la relación entre dos variables continuas, facilitando la identificación de patrones de asociación, tendencias y posibles valores atípicos. En el contexto de encuestas con diseños muestrales complejos, resulta importante incorporar la información de los pesos de muestreo para que la representación gráfica refleje adecuadamente la contribución relativa de cada observación en la población.
Cuando se trabaja con conjuntos de datos de gran tamaño, representar todos los puntos simultáneamente puede generar gráficos difíciles de interpretar debido a la sobreposición de observaciones. Sin embargo, en muestras de tamaño moderado, una estrategia sencilla y efectiva consiste en representar los pesos mediante el tamaño de los símbolos en el gráfico de dispersión. De esta manera, las observaciones con mayor peso poblacional aparecerán resaltadas visualmente. Un ejemplo de este tipo de representación se presenta en la figura 3.7:
weighted_basic_scatter <- ggplot(
data = survey_data,
aes(y = Income, x = Expenditure)) +
geom_point(aes(size = wk), alpha = 0.3)
weighted_basic_scatter
En este código, se construye un diagrama de dispersión entre las variables x = Expenditure y y = Income. La función geom_point() agrega los puntos del gráfico y, mediante aes(size = wk), utiliza los pesos muestrales (wk) para controlar el tamaño de cada punto, de modo que las observaciones con mayor representación poblacional aparezcan visualmente más destacadas. El argumento alpha = 0.3 incorpora transparencia a los puntos, reduciendo el problema de sobreposición y facilitando la visualización de áreas con alta concentración de observaciones.
Adicionalmente, es posible incorporar variables de agrupamiento en los diagramas de dispersión mediante los argumentos shape y color, los cuales permiten diferenciar visualmente las observaciones según categorías específicas de la población. Esto facilita la identificación de patrones diferenciados entre grupos y mejora la interpretación de la relación entre las variables analizadas. Un ejemplo de este tipo de representación se presenta en la figura 3.8.
weighted_zone_scatter <- ggplot(
data = survey_data,
aes(y = Income, x = Expenditure, shape = Zone)) +
geom_point(aes(size = wk, color = Zone), alpha = 0.3) +
labs(size = "Peso") +
scale_color_manual(values = zone_colors)
weighted_zone_scatter