1. Preparación del entorno (librerías)

library(tidyverse) # manipulación, limpieza, transformación y visualización de datos y dplyr
## Warning: package 'dplyr' was built under R version 4.5.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.1     ✔ stringr   1.5.2
## ✔ ggplot2   4.0.0     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readxl) # permite importar archivos Excel (.xls y .xlsx)
library(janitor) # ayuda a limpiar nombres de columnas, detectar columnas vacías, eliminar espacios y formatear datos.
## 
## Adjuntando el paquete: 'janitor'
## 
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
library(caret) # limpia, transforma, entrena y valida modelos de forma estandarizada.
## Warning: package 'caret' was built under R version 4.5.2
## Cargando paquete requerido: lattice
## 
## Adjuntando el paquete: 'caret'
## 
## The following object is masked from 'package:purrr':
## 
##     lift
library(dplyr) #Manipulación de datos

2. Descarga y filtrado de información

# Cargar el archivo CSV
datos <- read.csv("ITER_19CSV20.csv")

# Filtrar registros por Mier y Noriega
mier_noriega <- datos %>%
  filter(NOM_MUN == "Mier y Noriega")

3. Exploración y limpieza de datos

Comprensión de variables clave:

_Fuente:INEGI (2021) Principales Resultados por Localidad (ITER) https://www.inegi.org.mx/app/scitel/doc/descriptor/fd_iter_cpv2020.pdf_

Tratamiento de datos:

# Convertir * en missing values y hacer variables numéricas donde corresponden
mier_noriega_2 <- mier_noriega %>%
  
  # Paso 1: convertir todo a character
  mutate(across(everything(), as.character)) %>%
  
  # Paso 2: reemplazar "*" por NA real
  mutate(across(everything(), ~na_if(.x, "*"))) %>%
  
  # Paso 3: reconvertir automáticamente tipos de variables
  mutate(across(everything(), ~type.convert(.x, as.is = TRUE)))

4. Análisis de la estructura poblacional y educativa

Resumen municipal

# Suma de la población municipal por localidad 
pob_municipal <- mier_noriega_2 %>%
  filter(!LOC %in% c(0, 9998, 9999)) %>%  
    # Se excluyeron los registros correspondientes a LOC = 0 (Total del Municipio), 9998 (localidades agrupadas con menos de dos habitantes) y 9999 (no especificado), con el fin de evitar doble contabilización y distorsiones en el análisis territorial.
  
  summarise(total = sum(POBTOT, na.rm = TRUE)) %>% 
  #crea total como la suma de POBTOT
  
  pull(total)


cat("Población municipal total de Mier y Noriega:" , pob_municipal, "personas")
## Población municipal total de Mier y Noriega: 7652 personas

Con 7,652 habitantes en 2020, Mier y Noriega representa apenas el 0.1% de la población total de Nuevo León (Data México, s.f.). Su baja densidad demográfica subraya su carácter rural y una tendencia a la despoblación, situación acentuada por su ubicación geográfica en el extremo sur del estado, colindando con Tamaulipas.

Indicadores de educación:

# Analfabetismo por localidad
mier_noriega_2 <- mier_noriega_2 %>%
  mutate(
    pct_analfabetismo = ifelse(
      # Se crea una nueva variable para saber el porcentaje de analfabetismo por localidad
      
      is.na(P_15YMAS) | P_15YMAS == 0, NA_real_,
      # Evitar NAs
      
      (P15YM_AN / P_15YMAS) * 100
      # Hacer la operación
    )
  ) 

# Grado promedio de escolaridad
    #Ya existe en la base de datos el grado promedio de escolaridad, separado por localidad. La variable se llama GRAPROES

alf_grapoe <- mier_noriega_2 |>
  dplyr::select(
    NOM_LOC,
    pct_analfabetismo,
    GRAPROES
  )

alf_grapoe
##                                      NOM_LOC pct_analfabetismo GRAPROES
## 1                        Total del Municipio         11.623364     6.59
## 2                             Mier y Noriega          9.880952     7.27
## 3                                 La Cardona         23.839009     5.30
## 4                             Cerros Blancos          9.809264     6.65
## 5                                    Dolores          5.497382     7.46
## 6                                 El Gallito         12.080537     5.44
## 7       Jesús María del Terrero (El Lindero)          7.432432     6.51
## 8                         La Joya del Zacate          3.333333     6.13
## 9                        Lagunita de Taberna          8.888889     5.87
## 10                     Las Mesas de San Juan          6.849315     6.58
## 11                    Las Palomas (Lajillas)          8.600000     6.71
## 12 La Presita de Cerros Blancos (La Presita)         20.454545     5.83
## 13              El Refugio de Cerros Blancos         11.173184     6.64
## 14                   San Antonio de Alamitos          6.115108     6.80
## 15                                 San Elías         11.111111     6.11
## 16                                San Isidro         22.448980     5.69
## 17                San José de Cuatro Caminos         13.636364     5.98
## 18      San José de Medina (Rancho de Abajo)         12.500000     6.13
## 19                San Rafael de los Martínez          6.511628     7.47
## 20                             Tapona Moreña         14.571429     6.27
## 21                                 San Diego                NA       NA
## 22                   Falfurrias (San Carlos)                NA       NA
## 23                                La Tortuga                NA       NA
## 24      La Puerta de Guadalupe (Los Mireles)                NA       NA
## 25                               Tanque Roto                NA       NA
## 26                                Los García                NA       NA
## 27               Localidades de una vivienda          0.000000     5.17
## 28              Localidades de dos viviendas         16.666667     4.42

A nivel agregado, el porcentaje municipal de analfabetismo es de 11.62%, con un grado promedio de escolaridad de 6.59 años, lo que indica que, en promedio, la población ha concluido la educación primaria pero no alcanza plenamente el nivel de secundaria. Naturalmente, a mayor porcentaje de analfabetismo, menor grado promedio de escolaridad.

Visualización del rezago educativo De acuerdo con la Secretaria de Educación Pública (2023), se calcula el total de la población en rezago educativo de 15 años y más como:

Fórmula:

𝑹𝑬𝟏𝟓+ = 𝑨𝟏𝟓+ (+) 𝑺𝑷𝟏𝟓+ (+) 𝑺𝑺𝟏𝟓+

Donde: 𝑹𝑬𝟏𝟓+ = Población en rezago educativo de 15 años y más

𝑨𝟏𝟓+ = Población analfabeta de 15 años y más

𝑺𝑷𝟏𝟓+ = Población sin primaria terminada de 15 años y más

𝑺𝑺𝟏𝟓+ = Población sin secundaria terminada de 15 años y más

_Fuente: SEP(2023) METODOLOGÍA PARA EL CÁLCULO DEL REZAGO EDUCATIVO DE LA POBLACIÓN DE 15 AÑOS Y MÁS DEL CENSO DE POBLACIÓN Y VIVIENDA 2020 https://www.gob.mx/cms/uploads/attachment/file/889757/Metodologia_Rez_Edu_Censo_2020_vf__1_.pdf_

# Crear variable de rezago educativo
mier_noriega_2 <- mier_noriega_2 %>%
  mutate(
    rez_ed = rowSums(
      select(., P15YM_AN, P15PRI_IN, P15SEC_IN), # Suma las variables
      na.rm = TRUE # Evita los NA
    )
  )

# Crear tabla que muestra qué localidades tienen mayor rezago educativo en Mier y Noriega
tabla_rezago <- mier_noriega_2 %>%
  select(LOC, NOM_LOC, rez_ed) %>%
  arrange(desc(rez_ed))

knitr::kable(
  tabla_rezago,
  digits = 2,
  col.names = c("#", "Localidad", "Rezago educativo (15+)")
)
# Localidad Rezago educativo (15+)
0 Total del Municipio 1895
1 Mier y Noriega 242
13 Las Palomas (Lajillas) 184
3 La Cardona 180
15 La Presita de Cerros Blancos (La Presita) 160
4 Cerros Blancos 147
20 San Isidro 143
17 El Refugio de Cerros Blancos 140
25 Tapona Moreña 137
24 San Rafael de los Martínez 118
5 Dolores 100
18 San Antonio de Alamitos 93
7 El Gallito 64
8 Jesús María del Terrero (El Lindero) 58
10 Lagunita de Taberna 43
21 San José de Cuatro Caminos 31
12 Las Mesas de San Juan 24
9 La Joya del Zacate 11
19 San Elías 8
9999 Localidades de dos viviendas 7
22 San José de Medina (Rancho de Abajo) 3
9998 Localidades de una vivienda 2
38 San Diego 0
46 Falfurrias (San Carlos) 0
48 La Tortuga 0
49 La Puerta de Guadalupe (Los Mireles) 0
53 Tanque Roto 0
55 Los García 0

La cabecera municipal, Mier y Noriega, concentra 242 personas en rezago, siendo la localidad con mayor número absoluto. Sin embargo, esto se explica en parte por su mayor tamaño poblacional.

5. Análisis de vivienda y servicios

Cálculo de carencias e índice de “Carencia de Servicios”:

# Análisis de Vivienda y Servicios: carencias e índice simple

carencias_servicios <- mier_noriega_2 %>%
  mutate(
    # Porcentajes de carencia (sobre total de viviendas VIVTOT)
    pct_no_agua   = ifelse(is.na(VIVTOT) | VIVTOT == 0, NA_real_, (VPH_AGUAFV  / VIVTOT) * 100),
    pct_no_dren   = ifelse(is.na(VIVTOT) | VIVTOT == 0, NA_real_, (VPH_NODREN  / VIVTOT) * 100),
    pct_no_int    = ifelse(is.na(VIVTOT) | VIVTOT == 0, NA_real_, (VPH_SINCINT / VIVTOT) * 100),

    # Índice simple aditivo de carencia (0–300)
    indice_carencia_serv = pct_no_agua + pct_no_dren + pct_no_int
  ) %>%
  select(NOM_LOC, VIVTOT, pct_no_agua, pct_no_dren, pct_no_int, indice_carencia_serv) %>%
  arrange(desc(indice_carencia_serv))

# Mostrar tabla (ordenada por mayor vulnerabilidad)
knitr::kable(
  carencias_servicios,
  digits = 2,
  col.names = c("Localidad", "Viviendas totales", "% sin agua entubada", "% sin drenaje", "% sin internet", "Índice carencia (suma %)")
)
Localidad Viviendas totales % sin agua entubada % sin drenaje % sin internet Índice carencia (suma %)
Las Mesas de San Juan 27 81.48 81.48 77.78 240.74
Localidades de dos viviendas 8 50.00 50.00 75.00 175.00
Lagunita de Taberna 56 16.07 76.79 73.21 166.07
Tapona Moreña 151 40.40 43.05 78.15 161.59
La Presita de Cerros Blancos (La Presita) 168 22.02 66.67 72.62 161.31
Dolores 170 13.53 65.88 80.00 159.41
Las Palomas (Lajillas) 238 29.83 55.04 73.95 158.82
San Elías 10 60.00 20.00 70.00 150.00
Jesús María del Terrero (El Lindero) 56 1.79 60.71 85.71 148.21
El Refugio de Cerros Blancos 175 5.14 70.29 70.29 145.71
Cerros Blancos 159 3.14 61.64 72.96 137.74
San Rafael de los Martínez 192 5.73 42.19 76.04 123.96
Localidades de una vivienda 5 40.00 20.00 60.00 120.00
El Gallito 84 9.52 45.24 64.29 119.05
Total del Municipio 2662 14.61 38.43 61.95 114.99
San Isidro 182 42.31 18.68 53.85 114.84
San Antonio de Alamitos 117 2.56 47.01 61.54 111.11
La Joya del Zacate 26 46.15 3.85 38.46 88.46
San José de Cuatro Caminos 36 2.78 0.00 72.22 75.00
La Cardona 223 5.83 6.73 58.30 70.85
Mier y Noriega 561 2.32 8.73 34.40 45.45
San José de Medina (Rancho de Abajo) 18 5.56 16.67 16.67 38.89
San Diego 2 NA NA NA NA
Falfurrias (San Carlos) 1 NA NA NA NA
La Tortuga 2 NA NA NA NA
La Puerta de Guadalupe (Los Mireles) 3 NA NA NA NA
Tanque Roto 2 NA NA NA NA
Los García 3 NA NA NA NA

El índice simple de carencia de servicios, construido a partir de la suma de los porcentajes de viviendas sin agua entubada, sin drenaje y sin acceso a internet, permite identificar las zonas con mayor vulnerabilidad estructural. A nivel agregado, el municipio presenta; 14.61% de viviendas sin agua entubada, 38.43% sin drenaje, 61.95% sin acceso a internet y un índice de carencia promedio: 114.99. Esto evidencia que la principal brecha estructural se encuentra en la conectividad digital y el drenaje sanitario, más que en el acceso al agua.

6. Análisis comparativo: Cabecera vs. Localidades Rurales

# Crear una variable categórica que separa la cabecera municipal con las demás localidades rurales
mier_noriega_2 <- mier_noriega_2 %>%
  mutate(
    tipo_localidad = ifelse(
      NOM_LOC == "Mier y Noriega",
      "Cabecera Municipal",
      "Localidades Rurales"
    )
  )

Comparación de medias

comparacion_medias <- mier_noriega_2 %>%
  group_by(tipo_localidad) %>%
  summarise(
    media_graproes = mean(GRAPROES, na.rm = TRUE),

    media_no_agua = mean((VPH_AGUAFV / VIVTOT) * 100, na.rm = TRUE),
    media_no_dren = mean((VPH_NODREN / VIVTOT) * 100, na.rm = TRUE),
    media_no_int  = mean((VPH_SINCINT / VIVTOT) * 100, na.rm = TRUE),

    .groups = "drop"
  )

knitr::kable(comparacion_medias, digits = 2)
tipo_localidad media_graproes media_no_agua media_no_dren media_no_int
Cabecera Municipal 7.27 2.32 8.73 34.40
Localidades Rurales 6.18 23.74 42.40 66.33

El grado promedio de escolaridad en la cabecera municipal es de 7.27 años, mientras que en las localidades rurales es de 6.18 años. Esto implica una brecha de 1.09 años de escolaridad promedio, lo que sugiere que en las comunidades rurales la población tiende a abandonar el sistema educativo antes de concluir la secundaria. Se puede observar también que, el acceso al agua entubada es prácticamente universal en la cabecera, pero aún constituye una carencia relevante en zonas rurales, así como el drenje y la conectividad digital.

7. Exportación y documentación

Conclusión:

De por sí carente, Mier y Noriega muestra un municipio con marcadas desigualdades territoriales internas. El promedio municipal refleja una realidad intermedia; sin embargo, al desagregar por localidad se observa que el rezago educativo y las carencias en servicios se concentran principalmente en comunidades todavía más pequeñas y dispersas.