Usando un enfoque tidy en R para analizar la ENVIPE 2024 de México

Parte 1: Estimando la prevalencia delictiva con el paquete {srvyr}

análisis de datos
estadísticas oficiales
México
encuestas a hogares
ENVIPE
delito
victimización
seguridad pública
tidyverse
srvyr
microdatos
Author

Juan Armando Torres Munguía

Published

January 27, 2025

Introducción

En este artículo, te guiaré en el proceso de analizar la Encuesta Nacional de Victimización y Percepción sobre Seguridad Pública 2024 (ENVIPE) de México utilizando el marco de trabajo {tidyverse} para análisis de encuestas, junto con el paquete {srvyr}. En particular, calcularemos la tasa de prevalencia delictiva por cada 100,000 habitantes por entidad federativa, según sexo de la víctima.

Las tablas oficiales con este indicador pueden consultarse aquí.

Al final de este artículo, podrás usar el {tidyverse} para:

  • Cargar los microdatos de la encuesta desde el sitio web del INEGI.
  • Especificar el diseño muestral de la ENVIPE.
  • Calcular indicadores de prevalencia delictiva.

Acerca de la ENVIPE

La ENVIPE es una encuesta oficial que proporciona información representativa a nivel nacional y estatal sobre la victimización delictiva en los hogares y la percepción de seguridad pública en México. Desde 2011, es realizada anualmente por el Instituto Nacional de Estadística y Geografía (INEGI), recolectando datos sobre los siguientes delitos:

  • Robo total de vehículo (auto, camioneta o camión).
  • Robo de accesorios, refacciones o herramientas de vehículo (auto, camioneta o camión).
  • Grafiti en paredes, daños intencionales a vehículos y otros tipos de vandalismo.
  • Robo a casa habitación o intento de robo.
  • Secuestro.
  • Desaparición forzada.
  • Homicidio.
  • Robo o asalto en la calle o transporte público.
  • Robo distinto a los anteriores.
  • Fraude bancario.
  • Fraude al consumidor.
  • Extorsión.
  • Amenazas.
  • Lesiones.
  • Secuestro.
  • Hostigamiento o intimidación.
  • Manoseo.
  • Exhibicionismo.
  • Intento de violación.
  • Violación sexual.
  • Otros delitos.

Toda la información relacionada con la encuesta, incluidos cuestionarios, metodología, glosarios, resúmenes y microdatos, está disponible en el sitio web del INEGI.

Preparación del entorno

Primero, instala y carga los paquetes requeridos:

library(tidyverse) # Marco de análisis de datos con sintaxis tidy
library(srvyr) # Sintaxis tidy para análisis de encuestas
library(archive) # Extraer archivos de un ZIP
library(kableExtra) # Crear tablas HTML

Cargando microdatos de la encuesta desde el INEGI

Los microdatos están disponibles aquí en varios formatos (CSV, DBF, DTA, SAV y RData). En este ejemplo usaremos los archivos en formato RData.

load(archive_read(
  archive = "https://www.inegi.org.mx/contenidos/programas/envipe/2024/microdatos/bd_envipe_2024_RData.zip",
  file = "BD_ENVIPE_2024.RData"
))
Tip

Usando el paquete {archive}, podemos extraer directamente el archivo requerido desde bd_envipe_2024_RData.zip.

Esto carga los siguientes objetos en el entorno global:

  • THogar: Contiene el resultado de la entrevista, la fila del informante seleccionado, el factor de expansión del hogar y otras características del hogar.

  • TMod_Vic: Incluye información sobre los delitos sufridos por el informante seleccionado y su hogar durante el año de referencia (2023). Proviene del módulo de victimización de la encuesta.

  • TPer_Vic1: Incluye información relacionada con la percepción de seguridad pública en el área geográfica del entrevistado, conductas antisociales en su entorno inmediato y cambios de hábitos por temor a ser víctima de un delito en 2023. También presenta información sobre el desempeño y la confianza en las autoridades (Secciones IV y V del cuestionario).

  • TPer_Vic2: Consolida información sobre victimización del hogar y personal, especialmente en delitos de alto impacto (como secuestro, desaparición forzada u homicidio) sufridos por el hogar o el entrevistado. Incluye las Secciones VI y VII del cuestionario.

  • TSDem: Contiene las características sociodemográficas de los integrantes del hogar (Sección III del cuestionario).

  • TSVivienda: Contiene las características de las viviendas registradas en la portada del cuestionario, así como el número de residentes y de hogares (Secciones I y II del cuestionario).

Cálculo de la tasa de prevalencia delictiva por cada 100,000 habitantes por entidad federativa, según sexo de la víctima

Para estimar la tasa de prevalencia delictiva, utilizamos información de TPer_Vic2 (preguntas de cribado sobre victimización) y de TMod_Vic (módulo específico para víctimas). TPer_Vic2 se usa para caracterizar a la población total y TMod_Vic para describir a las víctimas y los delitos asociados.

1. Especificando el diseño muestral de la ENVIPE

La ENVIPE sigue un diseño probabilístico, estratificado, por conglomerados y en tres etapas. La unidad de muestreo es el hogar, y la unidad de análisis es la población de 18 años o más en hogares seleccionados. Más detalles aquí.

De la documentación sobre la estructura de datos, las variables clave para el diseño son:

  • ID_PER: Identificador de persona

  • EST_DIS: Estrato

  • UPM_DIS: Unidad primaria de muestreo

  • FAC_ELE: Factor de expansión para estimaciones de victimización y percepción de seguridad.

El diseño se especifica así:

# Identificar víctimas en TMod_Vic, excluyendo
# "Grafiti, daños intencionales a vehículos y otros vandalismos" (BPCOD != "03")
id_victims <- TMod_Vic |>
  filter(BPCOD != "03") |>
  pull(ID_PER)

# Crear variable de victimización en TPer_Vic2
TPer_Vic2 <- TPer_Vic2 |>
  mutate(victimization = ifelse(ID_PER %in% id_victims, 1, 0))

# Convertir FAC_ELE (pesos) a numérico
TPer_Vic2 <- TPer_Vic2 |>
  mutate(FAC_ELE = as.numeric(FAC_ELE))

# Etiquetar variable SEXO
TPer_Vic2 <- TPer_Vic2 |>
  mutate(SEXO = recode(SEXO, "1" = "Hombre", "2" = "Mujer"))

# Crear objeto de encuesta
envipe_design <- TPer_Vic2 |>
  as_survey_design(
    weights = FAC_ELE,
    strata = EST_DIS,
    ids = UPM_DIS,
    nest = TRUE
  )

2. Cálculo de estimaciones puntuales e indicadores de variabilidad

Para calcular proporciones usamos survey_mean() del paquete {srvyr}. NOM_ENT representa la entidad federativa y SEXO el sexo de la persona entrevistada.

envipe_design |>
  # La función `interact` se usa para calcular la proporción
  # sobre la interacción de entidad federativa y sexo
  group_by(interact(NOM_ENT, SEXO)) |>
  summarize(
    Proporcion = survey_mean(victimization,
      level = 0.90, # Nivel de confianza
      vartype = c("se", "ci", "cv") # Indicadores de variabilidad
    )
  ) |>
  ungroup() |>
  mutate(
    `Tasa de prevalencia` = Proporcion * 100000, # Tasa por cada 100,000 personas
    `Error estándar` = Proporcion_se * 100000,
    `Límite inferior IC 90%` = Proporcion_low * 100000,
    `Límite superior IC 90%` = Proporcion_upp * 100000,
    `Coeficiente de variación %` = Proporcion_cv * 100,
    Entidad = str_to_sentence(NOM_ENT) # Capitalizar solo la primera letra
  ) |>
  rename(Sexo = SEXO) |>
  select(
    Entidad, Sexo, `Tasa de prevalencia`, `Error estándar`,
    `Límite inferior IC 90%`, `Límite superior IC 90%`, `Coeficiente de variación %`
  ) |>
  kbl() |> # Tabla HTML
  kable_styling() # Aplicar tema bootstrap a la tabla

La tabla final es:

Entidad Sexo Tasa de prevalencia Error estándar Límite inferior IC 90% Límite superior IC 90% Coeficiente de variación %
Aguascalientes Hombre 33710.81 2172.7372 30136.71 37284.91 6.445224
Aguascalientes Mujer 32041.57 1831.7081 29028.45 35054.68 5.716662
Baja california Hombre 23043.35 1604.9769 20403.20 25683.50 6.965032
Baja california Mujer 24480.64 1536.1771 21953.66 27007.61 6.275070
Baja california sur Hombre 19329.94 1244.1353 17283.36 21376.51 6.436314
Baja california sur Mujer 23817.58 1466.2963 21405.56 26229.60 6.156361
Campeche Hombre 21832.87 1455.8508 19438.03 24227.71 6.668161
Campeche Mujer 23213.74 1381.0933 20941.88 25485.61 5.949465
Chiapas Hombre 16602.99 986.0052 14981.03 18224.94 5.938722
Chiapas Mujer 12074.36 978.7862 10464.28 13684.44 8.106318
Chihuahua Hombre 22303.22 1234.5065 20272.49 24333.96 5.535103
Chihuahua Mujer 22804.31 1181.0327 20861.54 24747.08 5.178990
Ciudad de mexico Hombre 34562.66 1089.2714 32770.84 36354.49 3.151584
Ciudad de mexico Mujer 30746.76 990.3528 29117.66 32375.87 3.220999
Coahuila de zaragoza Hombre 18179.70 1249.1422 16124.89 20234.51 6.871084
Coahuila de zaragoza Mujer 20447.19 1238.7111 18409.54 22484.84 6.058099
Colima Hombre 21106.85 1593.5970 18485.43 23728.28 7.550140
Colima Mujer 21295.28 1351.1455 19072.68 23517.88 6.344813
Durango Hombre 15240.74 1133.1868 13376.67 17104.80 7.435250
Durango Mujer 17401.18 1166.0910 15482.99 19319.37 6.701219
Guanajuato Hombre 20057.38 1428.0981 17708.20 22406.57 7.120063
Guanajuato Mujer 18930.15 1287.0811 16812.93 21047.37 6.799107
Guerrero Hombre 16981.89 1494.6554 14523.22 19440.56 8.801466
Guerrero Mujer 14572.44 1238.6234 12534.93 16609.94 8.499769
Hidalgo Hombre 22397.82 1338.0474 20196.77 24598.88 5.974006
Hidalgo Mujer 20215.02 1157.0294 18311.73 22118.30 5.723613
Jalisco Hombre 24390.13 1548.7916 21842.40 26937.85 6.350076
Jalisco Mujer 25141.90 1438.5170 22775.58 27508.23 5.721592
Mexico Hombre 32906.59 1632.3183 30221.47 35591.71 4.960460
Mexico Mujer 33023.78 1483.3471 30583.71 35463.85 4.491755
Michoacan de ocampo Hombre 14405.17 1031.1125 12709.01 16101.32 7.157934
Michoacan de ocampo Mujer 15485.20 1036.3320 13780.46 17189.94 6.692401
Morelos Hombre 26995.43 1517.6054 24499.00 29491.85 5.621713
Morelos Mujer 24869.74 1688.5969 22092.04 27647.44 6.789765
Nayarit Hombre 16075.56 1516.6195 13580.76 18570.36 9.434318
Nayarit Mujer 18639.61 1597.1842 16012.28 21266.94 8.568766
Nuevo leon Hombre 23602.12 1261.9498 21526.25 25678.00 5.346764
Nuevo leon Mujer 21440.72 1211.6372 19447.60 23433.83 5.651104
Oaxaca Hombre 12940.56 1158.2366 11035.29 14845.83 8.950434
Oaxaca Mujer 13548.61 1017.7020 11874.51 15222.70 7.511489
Puebla Hombre 26519.64 1342.0473 24312.00 28727.27 5.060579
Puebla Mujer 24176.45 1124.4656 22326.73 26026.17 4.651078
Queretaro Hombre 30297.50 1620.6534 27631.57 32963.44 5.349132
Queretaro Mujer 25746.31 1260.3524 23673.06 27819.56 4.895273
Quintana roo Hombre 22592.04 1384.4250 20314.70 24869.39 6.127932
Quintana roo Mujer 21775.64 1237.8095 19739.48 23811.81 5.684376
San luis potosi Hombre 24019.02 1874.7438 20935.11 27102.93 7.805247
San luis potosi Mujer 23227.97 1491.3111 20774.80 25681.14 6.420324
Sinaloa Hombre 21181.44 1122.0160 19335.76 23027.13 5.297165
Sinaloa Mujer 20562.22 1086.2790 18775.32 22349.12 5.282887
Sonora Hombre 26864.66 1816.2677 23876.94 29852.37 6.760808
Sonora Mujer 25742.16 1902.0264 22613.37 28870.95 7.388759
Tabasco Hombre 25881.72 1354.6212 23653.40 28110.04 5.233891
Tabasco Mujer 25522.45 1091.8488 23726.38 27318.51 4.277994
Tamaulipas Hombre 17788.15 1075.8038 16018.47 19557.82 6.047869
Tamaulipas Mujer 18368.67 1017.1639 16695.46 20041.88 5.537493
Tlaxcala Hombre 23968.33 1621.2198 21301.47 26635.20 6.764007
Tlaxcala Mujer 22295.82 1473.2391 19872.38 24719.26 6.607692
Veracruz de ignacio de la llave Hombre 16365.05 1055.8247 14628.24 18101.86 6.451705
Veracruz de ignacio de la llave Mujer 14712.45 947.9121 13153.15 16271.74 6.442927
Yucatan Hombre 20677.82 1239.0909 18639.55 22716.10 5.992366
Yucatan Mujer 17805.62 1141.8291 15927.34 19683.90 6.412745
Zacatecas Hombre 17328.49 1346.8466 15112.96 19544.02 7.772440
Zacatecas Mujer 15690.25 1335.9463 13492.65 17887.85 8.514502

Citation

BibTeX citation:
@online{torres munguía2025,
  author = {Torres Munguía, Juan Armando},
  title = {Usando Un Enfoque Tidy En {R} Para Analizar La {ENVIPE} 2024
    de {México}},
  date = {2025-01-27},
  url = {https://juan-torresmunguia.netlify.app/blog/posts-es/estimating-envipe-prevalence},
  langid = {en}
}
For attribution, please cite this work as:
Torres Munguía, Juan Armando. 2025. “Usando Un Enfoque Tidy En R Para Analizar La ENVIPE 2024 de México.” January 27, 2025. https://juan-torresmunguia.netlify.app/blog/posts-es/estimating-envipe-prevalence.