Skip to contents

dosr provee funciones de alto nivel para calcular estimaciones sobre diseños de encuestas complejas (como la CASEN) y generar reportes estandarizados en Excel con clasificación de fiabilidad estadística.

Instalación

remotes::install_github("GabrielSotomayorl/dosr")

Datos incluidos

El paquete incluye dos subconjuntos de la Encuesta CASEN listos para usar: casen_2022 (202 231 hogares) y casen_2024 (218 367 hogares). Ambas contienen las variables necesarias para reproducir todos los ejemplos de esta viñeta.

library(dosr)
library(srvyr)
#> 
#> Attaching package: 'srvyr'
#> The following object is masked from 'package:stats':
#> 
#>     filter

design_2022 <- as_survey_design(casen_2022,
  ids     = varunit,
  strata  = varstrat,
  weights = expr
)

design_2024 <- as_survey_design(casen_2024,
  ids     = varunit,
  strata  = varstrat,
  weights = expr
)

Proporciones: obs_prop()

Distribución de la población según situación de pobreza, desagregada por región:

resultado_prop <- obs_prop(
  design_2022,
  sufijo     = "2022",
  var        = "pobreza",
  des        = "region",
  porcentaje = TRUE,
  save_xlsx  = FALSE,
  verbose    = FALSE
)
head(resultado_prop[, c("region", "pobreza", "prop_2022", "fiabilidad_2022")])
#> # A tibble: 6 × 4
#>   region             pobreza             prop_2022 fiabilidad_2022
#>   <fct>              <fct>                   <dbl> <chr>          
#> 1 NA                 Pobreza extrema          8.48 Fiable         
#> 2 NA                 Pobreza no extrema      12.0  Fiable         
#> 3 NA                 Fuera de la pobreza     79.5  Fiable         
#> 4 Región de Tarapacá Pobreza extrema         12.6  Fiable         
#> 5 Región de Tarapacá Pobreza no extrema      14.1  Fiable         
#> 6 Región de Tarapacá Fuera de la pobreza     73.2  Fiable

Medias: obs_media()

Ingreso total del hogar corregido (ytotcorh) promedio por región en 2022:

resultado_media <- obs_media(
  design_2022,
  sufijo    = "2022",
  var       = "ytotcorh",
  des       = "region",
  save_xlsx = FALSE,
  verbose   = FALSE
)
head(resultado_media[, c("region", "media_2022", "fiabilidad_2022")])
#> # A tibble: 6 × 3
#>   region                media_2022 fiabilidad_2022
#>   <fct>                      <dbl> <chr>          
#> 1 NA                      1713534. Fiable         
#> 2 Región de Tarapacá      1515201. Fiable         
#> 3 Región de Antofagasta   1819321. Fiable         
#> 4 Región de Atacama       1487318. Fiable         
#> 5 Región de Coquimbo      1438892. Fiable         
#> 6 Región de Valparaíso    1499137. Fiable

Cuantiles: obs_cuantil()

Mediana del ingreso del hogar por región:

resultado_cuantil <- obs_cuantil(
  design_2022,
  sufijo    = "2022",
  var       = "ytotcorh",
  des       = "region",
  cuant     = 0.5,
  save_xlsx = FALSE,
  verbose   = FALSE
)
head(resultado_cuantil[, c("region", "cuantil_2022", "fiabilidad_2022")])
#> # A tibble: 6 × 3
#>   region                cuantil_2022 fiabilidad_2022
#>   <fct>                        <dbl> <chr>          
#> 1 NA                         1250000 Fiable         
#> 2 Región de Tarapacá         1230736 Fiable         
#> 3 Región de Antofagasta      1416697 Fiable         
#> 4 Región de Atacama          1205000 Fiable         
#> 5 Región de Coquimbo         1120083 Fiable         
#> 6 Región de Valparaíso       1165472 Fiable

Totales: obs_total()

Población en situación de pobreza por ingresos (variable binaria construida desde pobreza):

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

design_2022_pob <- design_2022
design_2022_pob$variables <- design_2022_pob$variables %>%
  mutate(pobre = as.integer(as.numeric(pobreza) %in% c(1, 2)))

resultado_total <- obs_total(
  design_2022_pob,
  sufijo    = "2022",
  var       = "pobre",
  des       = "region",
  save_xlsx = FALSE,
  verbose   = FALSE
)
head(resultado_total[, c("region", "total_2022", "fiabilidad_2022")])
#> # A tibble: 6 × 3
#>   region                total_2022 fiabilidad_2022
#>   <fct>                      <dbl> <chr>          
#> 1 NA                       4070695 Fiable         
#> 2 Región de Tarapacá        106748 Fiable         
#> 3 Región de Antofagasta     138875 Fiable         
#> 4 Región de Atacama          67461 Fiable         
#> 5 Región de Coquimbo        209288 Fiable         
#> 6 Región de Valparaíso      419063 Fiable

Razones: obs_ratio()

Razón de feminidad (mujeres / hombres) por región:

design_2022_sex <- design_2022
design_2022_sex$variables <- design_2022_sex$variables %>%
  mutate(
    mujer  = as.integer(as.numeric(sexo) == 2),
    hombre = as.integer(as.numeric(sexo) == 1)
  )

resultado_ratio <- obs_ratio(
  design_2022_sex,
  sufijo    = "2022",
  num       = "mujer",
  den       = "hombre",
  des       = "region",
  save_xlsx = FALSE,
  verbose   = FALSE
)
head(resultado_ratio[, c("region", "ratio_2022", "fiabilidad_2022")])
#> # A tibble: 6 × 3
#>   region                ratio_2022 fiabilidad_2022
#>   <fct>                      <dbl> <chr>          
#> 1 NA                         1.03  Fiable         
#> 2 Región de Tarapacá         0.984 Fiable         
#> 3 Región de Antofagasta      0.989 Fiable         
#> 4 Región de Atacama          0.983 Fiable         
#> 5 Región de Coquimbo         1.04  Fiable         
#> 6 Región de Valparaíso       1.05  Fiable

Trabajo con múltiples diseños

Pasando una lista de diseños con el argumento sufijo, se comparan múltiples rondas en una sola llamada. El ejemplo compara la tasa de pobreza por región entre 2022 y 2024:

resultado_serie <- obs_prop(
  designs    = list(design_2022, design_2024),
  sufijo     = c("2022", "2024"),
  var        = "pobreza",
  des        = "region",
  porcentaje = TRUE,
  save_xlsx  = FALSE,
  verbose    = FALSE
)
cols <- c("region", "pobreza", "prop_2022", "prop_2024",
          "fiabilidad_2022", "fiabilidad_2024")
head(resultado_serie[, cols])
#> # A tibble: 6 × 6
#>   region             pobreza prop_2022 prop_2024 fiabilidad_2022 fiabilidad_2024
#>   <fct>              <fct>       <dbl>     <dbl> <chr>           <chr>          
#> 1 NA                 Pobrez…      8.48      6.87 Fiable          Fiable         
#> 2 NA                 Pobrez…     12.0      10.4  Fiable          Fiable         
#> 3 NA                 Fuera …     79.5      82.7  Fiable          Fiable         
#> 4 Región de Tarapacá Pobrez…     12.6       8.97 Fiable          Fiable         
#> 5 Región de Tarapacá Pobrez…     14.1      11.8  Fiable          Fiable         
#> 6 Región de Tarapacá Fuera …     73.2      79.2  Fiable          Fiable

Múltiples variables binarias: multi_bin()

Prevalencia de los ocho indicadores de inseguridad alimentaria (FIES) de la CASEN 2024, desagregada por área urbana/rural:

resultado_bin <- multi_bin(
  design_2024,
  vars_binarias = paste0("r8", letters[1:8]),
  des           = "area",
  dir           = tempdir(),
  verbose       = FALSE
)
nac <- resultado_bin$desagregacion_tipo == "Nacional"
resultado_bin[nac, c("etiqueta", "estimacion", "fiabilidad")]
#> # A tibble: 8 × 3
#>   etiqueta estimacion fiabilidad
#>   <chr>         <dbl> <chr>     
#> 1 r8a           31.2  Fiable    
#> 2 r8b           22.7  Fiable    
#> 3 r8c           23.8  Fiable    
#> 4 r8d           11.3  Fiable    
#> 5 r8e           16.1  Fiable    
#> 6 r8f            9.28 Fiable    
#> 7 r8g            8.93 Fiable    
#> 8 r8h            5.14 Fiable

Clasificación de fiabilidad

Todos los resultados incluyen una columna fiabilidad (o fiabilidad_{sufijo} en series de tiempo):

Valor Significado
Fiable Estimación publicable
Poco Fiable Publicar con advertencia
No Fiable No publicar
Sin casos Subgrupo vacío

Los umbrales son configurables con cv_umbral_alto, cv_umbral_medio y n_minimo.

Reportes Excel

Cuando save_xlsx = TRUE (valor por defecto), cada función genera un .xlsx en el directorio dir — que debe especificarse explícitamente, p. ej. dir = tempdir() o una carpeta del proyecto — con:

  • 1_Consolidado: tabla completa con todas las métricas de calidad
  • 2_nac: hoja de formato para el nivel nacional
  • 2_{variable}: una hoja de formato por cada variable de desagregación

Con sig = TRUE y múltiples diseños, las hojas de formato incluyen adicionalmente tablas de p-valores para comparaciones intra-año, contra el año anterior y contra el total nacional.