--- title: "Explorar el censo por tema" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Explorar el censo por tema} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include=FALSE} knitr::opts_chunk$set(collapse = TRUE, comment = "#>") library(censosbo) ``` El CPV-2024 tiene 393 variables. Buscarlas por nombre funciona cuando ya sabes qué buscas, pero no ayuda a responder «¿qué hay sobre educación?» ni —más importante— «¿a quién se le preguntó esto?». Esta viñeta cubre las dos cosas. ## Los temas Cada variable pertenece a uno de 21 temas, y el mismo vocabulario se aplica a los cinco censos. Diecisiete son los que el propio INE declara en su catálogo ANDA; los otros cuatro los añade el paquete y están marcados en la columna `fuente`. ```{r} censo_temas()[, c("tema", "etiqueta", "capitulo", "n_variables")] ``` El conteo se calcula en el momento, así que puedes acotarlo a una tabla: ```{r} censo_temas(tabla = "vivienda")[, c("tema", "etiqueta", "n_variables")] ``` Para ver las variables de un tema, `codebook()` acepta el argumento `tema`: ```{r} codebook(tema = "educacion", tabla = "persona")[, c("variable", "etiqueta", "universo")] ``` ## Descargar solo un tema `vars_tema()` devuelve los nombres en el orden del cuestionario, listos para el argumento `variables`: ```{r} vars_tema("educacion", tabla = "persona") ``` ```{r eval=FALSE} get_personas_2024( departamento = "Cochabamba", variables = vars_tema("educacion", tabla = "persona") ) ``` Las derivadas del INE van al final. Si solo quieres las preguntas tal cual se hicieron, filtra por `origen`: ```{r} vars_tema("caracteristicas_economicas", tabla = "persona", origen = "cuestionario") ``` ## El universo: a quién se le preguntó Esta es la columna que más errores evita. El cuestionario del CPV-2024 lleva impresos cuatro filtros de edad y sexo, y varias variables derivadas se calculan sobre poblaciones aún más restringidas. Compararlas sin tenerlo en cuenta produce cifras equivocadas sin ningún aviso. ```{r} codebook(c("p40_lee", "p43_pago", "p53_ecivil", "p54_hvtot", "nivel_edu"), tabla = "persona")[, c("variable", "etiqueta", "universo")] ``` Ahí se ve por qué importa: `nivel_edu` **no** describe a toda la población, sino a las personas de 19 años o más. Si calculas el porcentaje con secundaria sobre el total de personas, el denominador incluye a menores que nunca pudieron responder y el resultado sale hacia abajo. El universo correcto es el que declara la variable. Para ver todas las variables que comparten un universo: ```{r} cb <- codebook(tabla = "persona") table(cb$universo, useNA = "no") ``` La versión textual del INE, con sus palabras exactas, está en `codebook_docs()`: ```{r} codebook_docs("p40_lee", campos = "universo_literal")$universo_literal ``` ## Qué mide exactamente una variable `codebook_docs()` da acceso a la documentación conceptual oficial: la definición, la pregunta tal como se leyó en campo y las instrucciones que recibió el censista. ```{r} codebook_docs("p32_pueblo_per", campos = "definicion")$definicion ``` ```{r} codebook_docs("v17_tenencia", campos = "pregunta_literal")$pregunta_literal ``` Y para las variables que el INE construyó, la regla con la que las calculó: ```{r} codebook_docs("nivel_edu", campos = "regla_derivacion")$regla_derivacion ``` Distinguir una pregunta de una construcción del INE es útil por sí mismo: ```{r} table(codebook(tabla = "persona")$origen) ``` ## Capítulos: la estructura del cuestionario El cuestionario del CPV-2024 tiene siete capítulos, de la A a la G. `capitulo` reproduce esa estructura, así que puedes recorrer el censo en el mismo orden en que se aplicó: ```{r} codebook(capitulo = "C", origen = "cuestionario")[, c("pregunta", "variable", "etiqueta")] ``` Un detalle que conviene saber: **capítulo y tema son dos ejes independientes**, no una jerarquía. `v01_tipoviv` está en el capítulo B y `v17_tenencia` en el C, y las dos son del tema `vivienda_hogar`, porque el cuestionario separó el tipo de vivienda de su tenencia aunque conceptualmente vayan juntas. ```{r} codebook(tema = "vivienda_hogar", tabla = "vivienda")[, c("variable", "capitulo", "pregunta")] ``` ## Comparar entre censos Los temas son el eje transversal: el mismo vocabulario se aplica a los cinco censos, porque el INE publica un diccionario DDI de todos ellos. ```{r} for (anio in c(1976, 1992, 2001, 2012, 2024)) { # En 1976 la tabla de personas se llama `poblacion`. tabla <- if (anio == 1976) "poblacion" else "persona" cb <- codebook(tema = "educacion", tabla = tabla, anio = anio) cat(anio, "->", nrow(cb), "variables:", paste(cb$variable, collapse = ", "), "\n") } ``` Un tema existe solo en un censo: **religión**, que preguntó únicamente el de 1992. ```{r} codebook(tema = "religion", anio = 1992)[, c("variable", "etiqueta")] ``` Los capítulos, en cambio, **solo existen en 2024**: los cuestionarios anteriores tienen otra estructura, el de 2001 no numera sus etiquetas y los de 1976 y 1992 numeran las secciones de vivienda y de persona en paralelo (`v03` es el material de las paredes y `p03` el sexo). Lo que sí traen los cuatro anteriores es la agrupación oficial del INE de su época, en la columna `grupo_ine`: ```{r} table(codebook(anio = 1992)$grupo_ine, useNA = "no") ``` ### El universo también cambió entre censos Esta es la razón principal por la que vale la pena tener el metadato de los cinco censos: el INE movió el filtro de edad de varias preguntas, así que comparar una serie temporal sin igualar el universo mide poblaciones distintas en cada punto. ```{r} for (anio in c(1976, 1992, 2001, 2024)) { v <- switch(as.character(anio), "1976" = "p10", "1992" = "P10", "2001" = "P36", "2024" = "p40_lee") tabla <- if (anio == 1976) "poblacion" else "persona" cat(anio, "alfabetismo ->", codebook(v, tabla = tabla, anio = anio)$universo, "\n") } ``` `get_temporal()` avisa de esto automáticamente cuando se piden variables armonizadas cuyo universo no coincide entre los años solicitados. Para poder hacerle caso al aviso hace falta la columna `edad` en el resultado, y `get_temporal()` solo devuelve lo que se le pide. Los grupos predefinidos (`grupo = "educacion"`) ya la incluyen; si pides variables sueltas, añádela: ```{r eval=FALSE} get_temporal(variables = c("sabe_leer", "edad"), anios = c(1992, 2001, 2024)) |> filter(edad >= 6, !is.na(sabe_leer)) |> # el universo comparable: 6+ group_by(anio) |> summarise(pct_alfabetizado = round(100 * mean(sabe_leer == 1), 1)) ``` ## Los indicadores de manzano y comunidad Las fichas del geoportal tienen su propio desglose, más fino que el tema: 15 bloques. Conviven con la taxonomía, así que puedes usar el que te convenga. ```{r} censo_bloques_meta[, c("bloque", "etiqueta", "tema")] ``` Cada indicador es un conteo, y para leerlo como porcentaje hace falta el total sobre el que se calcula. Eso está en `denominador`: ```{r} codebook(tabla = "ficha")[3:8, c("variable", "bloque", "denominador")] ``` Las variables cuyo `denominador` es `NA` son los totales mismos. ## Fuentes y atribución La taxonomía y los metadatos de contexto se construyen a partir de dos fuentes oficiales del INE Bolivia: - El **cuestionario censal del CPV-2024**, de donde salen los capítulos, la numeración de preguntas y los filtros de universo impresos en el formulario. - Los **diccionarios DDI del catálogo ANDA**, estudios 132 (CPV-2024), 8 (CPV-2012), 10 (CNPV-2001), 47 (CNPV-1992) y 46 (CNPV-1976), de donde salen los temas oficiales, el universo de cada variable, las definiciones conceptuales, las preguntas literales y las reglas de derivación. Los textos de `codebook_docs_meta` se reproducen literalmente; el INE los publica bajo la condición «Uso público». El objeto guarda la procedencia exacta de los archivos usados: ```{r} attr(codebook_docs_meta, "ddi")[, c("anio", "estudio", "idno", "fecha")] ``` Un aviso que el propio contraste con estas fuentes hizo evidente: el DDI del INE tiene errores puntuales. En el CPV-2012, la variable de estado civil viene con las categorías de otra pregunta. Por eso el paquete **nunca sobrescribe** las etiquetas de valor que ya trae el diccionario de microdatos; las discrepancias se registran para revisión en `data-raw/ddi/reporte_valores.md`.