abr. 11, 2025, 14:47 p.m.
Para facilitar el proceso de aplicación de la evaluación de estándares de calidad, el Instituto Nacional de Estadísticas ha desarrollado el paquete calidad, una herramienta en R que permite aplicar de forma sencilla estándares oficiales para la evaluación de calidad en encuestas de hogares y económicas. Este paquete busca apoyar tanto a equipos técnicos como a personas interesadas en mejorar la comprensión y uso de las estadísticas oficiales.
El paquete calidad está construido sobre la base de dos grandes pasos:
- Estimación y generación de insumos
- Evaluación de calidad
En este tutorial se presentan casos de uso para estándares de encuestas de hogares y de encuestas económicas. Para ello, utilizaremos dos conjuntos de datos incluidos en el paquete:
- Encuesta Nacional de Empleo 2020 (ENE)
- VII Encuesta Longitudinal de Empresas (ELE).
Procesamiento de datos:
Ambos conjuntos de datos se cargan automáticamente al iniciar la sesión con el paquete. En el caso de la ENE, se realizará un procesamiento adicional para permitir la estimación en subpoblaciones:
# cargando paquetes
if (!require("calidad")) install.packages("calidad")
if (!require("dplyr")) install.packages("dplyr")
if (!require("survey")) install.packages("survey")
library(calidad)
library(dplyr)
library(survey)
# edicion base de datos ENE
ene <- ene %>%
mutate(fdt = if_else(cae_especifico >= 1 & cae_especifico <= 9, 1, 0), # fuerza de trabajo
ocupado = if_else(cae_especifico >= 1 & cae_especifico <= 7, 1, 0),
desocupado = if_else(cae_especifico >= 8 & cae_especifico <= 9, 1, 0),
hombre = if_else(sexo == 1, 1, 0),
mujer = if_else(sexo == 2, 1, 0))
Diseño de muestra
Antes de comenzar a utilizar el paquete, es necesario declarar el diseño muestral de la encuesta usando el paquete survey. En esta declaración se debe especificar la unidad primaria de muestreo, el estrato y los factores de expansión (pesos). Además, puede ser útil configurar una opción específica para manejar los estratos que contienen solo una unidad primaria de muestreo.
Diseño complejo ENE:
dc_ene <- svydesign(ids = ~conglomerado , strata = ~estrato_unico, weights = ~fact_cal, data = ene)
options(survey.lonely.psu = "certainty")
Diseño complejo ELE:
dc_ele <- svydesign(ids = ~rol_ficticio, weights = ~fe_transversal, strata = ~estrato, fpc = ~pob, data = ELE7)
options(survey.lonely.psu = 'remove')
Creación de insumos
Para evaluar la calidad de la estimación en base a los estándares del INE, se estableció un criterio particular para proporciones o razones entre 0 y 1, lo cual diferencia a estas estimaciones del resto. En todos los casos se utiliza el tamaño de muestra (n) y los grados de libertad (df), pero para proporciones y razones entre 0 y 1 se considera el error estándar (se), mientras que para los demás casos se usa el coeficiente de variación (cv).
El paquete incluye funciones que ayudan a generar la estimación y los insumos para medias, proporciones (y razones), totales y tamaños. Para ello, utilizamos las funciones create_mean(), create_prop(), create_size() y create_total(). Sus principales parámetros son:
- var: Variable a estimar
- domains: Dominio de interés.
- subpop: Subpoblación de referencia (variable dummy que realiza filtro de los datos).
- design: Diseño de muestra creado con survey
Adicionalmente, estas funciones pueden retornar el efecto de diseño (
deff), el conteo de casos no ponderado (
ess), el coeficiente de variación logarítmico (
log_cv) y los intervalos de confianza (
ci), según se indique.
Encuesta nacional de empleo
Realicemos la estimación de la proporción y total de personas desocupadas según sexo:
# proporción de personas desocupadas
insumos_prop <- create_prop(var = "desocupado", domains = "sexo", subpop = "fdt", design = dc_ene)
insumos_total
<- create_size(var = "desocupado", domains = "sexo", subpop = "fdt", design = dc_ene)
insumos_total
## sexo stat se df n cv
## 1 399299.4 14530.92 880 1564 0.03639102
## 2 402505.4 14688.19 913 1629 0.03649190
Para agregar más dominios, podemos usar el símbolo "+", como se muestra a continuación:
create_prop(var = "desocupado", domains = "sexo+region", subpop = "fdt", design = dc_ene)
Las funciones
create_* incluyen el parámetro
ci, que nos permite obtener el intervalo de confianza y que por defecto es
FALSE
. Para proporciones, adicionalmente, está disponible el intervalo de confianza logístico, el cual se puede incluir mediante el parámetro
ci_logit = TRUE
:
create_size(var = "desocupado", domains = "sexo", subpop = "fdt"", design = dc_ene, ci = TRUE)
create_prop("desocupado", subpop = "fdt", design = dc_ene, ci_logit = TRUE)
Encuesta longitudinal de empresas
En algunos casos podríamos estar interesados en estimar la razón entre dos variables. La función
create_prop
permite realizar la estimación de razones, indicando explícitamente el numerador y el denominador a utilizar. Para ello, está disponible el parámetro
denominator.
Veamos un ejemplo estimando la productividad salarial, que se calcula como la razón entre el valor agregado y la remuneración total brutal del personal contratado según tamaño:
prod_salarial <- create_prop('VA_2022f', denominator = 'REMP_TOTAL', domains = 'cod_tamano', design = dc_ele)
Evaluación de la estimación
Una vez que hemos generado la estimación y los insumos, podemos realizar la evaluación usando la función assess
, la cual por defecto aplica el estándar de las encuestas de hogares del INE. Actualmente, están disponibles cuatro estándares de calidad, dos de INE Chile (encuesta de hogares y económicas) y dos de CEPAL (2020 y 2023). Este tutorial se enfoca en la aplicación de los estándares de INE Chile. Para ver más detalle de la aplicación de los demás estándares, revisar el tutorial publicado en el siguiente link tutorial-cran.
Los parámetros principales de la función assess
se describen a continuación:
- table: Tabla con las estimaciones generadas con funciones create_*.
- scheme: String que indica el estándar a evaluar. Este puede ser "chile", "eclac_2020", "eclac_2023" y "chile_economics".
- publish: Booleano,
TRUE.
Evalúa el porcentaje de estimaciones fiables en el tabulado completo. Default FALSE.
- domain_info: Booleano, donde
TRUE
implica que la estimación coincide con un estrato de muestreo. Default FALSE
(se usa para "eclac_2023" y "chile_economics" ).
- table_n_obj: Dataframe que contiene el tamaño de muestra objetivo, n_obj, de los dominios indicados en la estimación. Por default es
NULL
y se evaluarán como no fiables las estimaciones que tengan un tamaño menor a 30. (se usa para "chile_economics").
Es importante que en este dataframe los nombres de los dominios coincidan con los utilizados en la función create_* y que la columna del tamaño objetivo se llame n_obj.
- ratio_between_0_1: Booleano.
TRUE
indica que la estimación corresponde a una proporción entre 0 y 1. Por defecto es TRUE
y se evalúa solo cuando tenemos una clase proporción (estimación con create_prop).
Para realizar la evaluación en encuestas de hogares, el estándar a utilizar es
scheme ="chile"
(valor por defecto):
evaluacion_prop <- assess(insumos_prop)
evaluacion_total <- assess(insumos_total, scheme = "chile")
En el caso de las encuestas económicas, debemos indicar
scheme = "chile_economics"
. Adicionalmente, indicamos, según corresponda, el parámetro
domain_info y
table_n_obj.
# procesamos el tamaño de muestra objetivo disponible en el paquete
table_n_obj <- ELE7_n_obj %>%
dplyr::mutate(cod_actividad = cod_actividad_letra,
cod_tamano = as.character(cod_tamano)) %>%
dplyr::select(-cod_actividad_letra)
# evaluación para razón no acotada entre 0 y 1
eval_ratio <- assess(prod_salarial, scheme = 'chile_economics',
domain_info = TRUE, table_n_obj = table_n_obj,
ratio_between_0_1 = FALSE)
Tal como mencionamos anteriormente, podemos realizar una evaluación general de nuestro tabulado usando el parámetro publish
. Si se obtiene más del 50% de las estimaciones como fiables, se indicará que el tabulado es publicable:
evaluacion_total <- assess(insumos_total, scheme = "chile", publish=TRUE)
## sexo stat se df n cv eval_n eval_df eval_cv label publication pass
## 1 399299.4 14530.92 880 1564 0.03639102 sufficient sample size sufficient df cv <= 0.15 reliable publish 100% reliable estimates
## 2 402505.4 14688.19 913 1629 0.03649190 sufficient sample size sufficient df cv <= 0.15 reliable publish 100% reliable estimates