Mier y Noriega es un municipio ubicado al sur de Nuevo León y a pesar de ser uno de los estados más industrializados del país, este municipio cuenta con indicadores de marginación muy altos comparados con la realidad de la Zona Metropolitana de Monterrey.
Este reporte analiza los datos del Censo de Población y Vivienda 2020 del INEGI, usando el archivo ITER (Indicadores de Resultados por Localidad), con el objetivo de tener una visión más amplia de la situación social, educativa y de vivienda de sus localidades y así evidenciar las brechas de desigualdad existentes.
Descargamos las librerías necesarias para nuestro análisis: - tidyverse: para manipulación y visualización de datos - DT: para crear tablas interactivas en HTML - knitr / kableExtra: para tablas con formato profesional - scales: para dar formato a números y porcentajes en gráficas
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.2.0 ✔ readr 2.1.6
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.2 ✔ tibble 3.3.1
## ✔ lubridate 1.9.5 ✔ tidyr 1.3.2
## ✔ purrr 1.2.1
## ── 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(DT)
library(knitr)
library(kableExtra)
##
## Adjuntando el paquete: 'kableExtra'
##
## The following object is masked from 'package:dplyr':
##
## group_rows
library(scales)
##
## Adjuntando el paquete: 'scales'
##
## The following object is masked from 'package:purrr':
##
## discard
##
## The following object is masked from 'package:readr':
##
## col_factor
Lo primero que debemos hacer es descargar el archivo CSV del ITER de Nuevo León. Esto lo cargamos en RStudio y verificamos que se haya descargado correctamente.
iter_nl <- read_csv("ITER_19CSV20.csv",
# Usamos locale para manejar correctamente caracteres especiales (acentos, ñ)
locale = locale(encoding = "UTF-8"),
# Suprimimos los mensajes de tipo de columna para no saturar el reporte
show_col_types = FALSE
)
# Verificamos que el archivo se cargó correctamente
cat("Dimensiones del dataset completo:", nrow(iter_nl), "filas y", ncol(iter_nl), "columnas\n")
## Dimensiones del dataset completo: 4974 filas y 286 columnas
cat("Municipios disponibles (muestra):", paste(unique(iter_nl$NOM_MUN)[1:5], collapse = ", "), "...\n")
## Municipios disponibles (muestra): Total de la entidad Nuevo León, Abasolo, Agualeguas, Los Aldamas, Allende ...
#2.2 Filtrado para Mier y Noriega Ahora filtramos para que solo nos aparezcan las filas que pertenezcan a Mier y Noriega
mier_raw <- iter_nl %>%
filter(NOM_MUN == "Mier y Noriega")
head(mier_raw)
## # A tibble: 6 × 286
## ENTIDAD NOM_ENT MUN NOM_MUN LOC NOM_LOC LONGITUD LATITUD ALTITUD POBTOT
## <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl>
## 1 19 Nuevo León 036 Mier y… 0000 Total … <NA> <NA> <NA> 7652
## 2 19 Nuevo León 036 Mier y… 0001 Mier y… "100°07… "23°25… 1669 1180
## 3 19 Nuevo León 036 Mier y… 0003 La Car… "99°58'… "23°24… 1916 479
## 4 19 Nuevo León 036 Mier y… 0004 Cerros… "100°11… "23°20… 1336 586
## 5 19 Nuevo León 036 Mier y… 0005 Dolores "100°13… "23°30… 1532 549
## 6 19 Nuevo León 036 Mier y… 0007 El Gal… "100°02… "23°27… 1958 206
## # ℹ 276 more variables: POBFEM <chr>, POBMAS <chr>, P_0A2 <chr>, P_0A2_F <chr>,
## # P_0A2_M <chr>, P_3YMAS <chr>, P_3YMAS_F <chr>, P_3YMAS_M <chr>,
## # P_5YMAS <chr>, P_5YMAS_F <chr>, P_5YMAS_M <chr>, P_12YMAS <chr>,
## # P_12YMAS_F <chr>, P_12YMAS_M <chr>, P_15YMAS <chr>, P_15YMAS_F <chr>,
## # P_15YMAS_M <chr>, P_18YMAS <chr>, P_18YMAS_F <chr>, P_18YMAS_M <chr>,
## # P_3A5 <chr>, P_3A5_F <chr>, P_3A5_M <chr>, P_6A11 <chr>, P_6A11_F <chr>,
## # P_6A11_M <chr>, P_8A14 <chr>, P_8A14_F <chr>, P_8A14_M <chr>, …
¿Cuántas localidades tenemos?
cat("Registros totales del municipio (incluyendo especiales):", nrow(mier_raw), "\n")
## Registros totales del municipio (incluyendo especiales): 28
##3. Exploración y Limpieza de Datos
El ITER utiliza el símbolo *
(asterisco) para proteger datos de localidades pequeñas donde publicar
un valor permitiría identificar a personas concretas (confidencialidad
estadística). Nuestra estrategia es convertir estos valores a
NA, lo que en R significa “dato no disponible”. Usamos
NA y no cero porque cero implicaría que el
valor es literalmente ninguno, lo cual sería información falsa;
NA en cambio nos dice honestamente que el dato existe pero
no podemos conocerlo.
#3.1 Definir variables relevantes Tras analizar el índice de variables del ITER, se identificaron algunas que resultan clave para entender a mayor profundidad cómo se compone el municipio, estas se separan en categorías.: de localidad, eje demográfico, educación, población indígena, fecundidad, discapacidad, actividad económica, migración interestatal, salud, vivienda y servicios básicos.
# Seleccionamos las variables necesarias para todos los ejes del análisis.
# Se eligió el conjunto mínimo suficiente para responder las preguntas planteadas,
# evitando incluir las más de 200 columnas del ITER que añadirían ruido innecesario.
variables_clave <- c(
# Identificadores de localidad
"LOC", "NOM_LOC",
# Población general (eje demográfico)
"POBTOT", # Población total
"POBFEM", # Población femenina
"POBMAS", # Población masculina
# Educación
"P_15YMAS", # Población de 15 años y más (denominador para % analfabetismo)
"P_15YMAS_F", # Ídem, mujeres
"P_15YMAS_M", # Ídem, hombres
"P15YM_AN", # Analfabetas de 15 años y más (total)
"P15YM_AN_F", # Analfabetas de 15 años y más (mujeres)
"P15YM_AN_M", # Analfabetas de 15 años y más (hombres)
"GRAPROES", # Grado promedio de escolaridad (total)
"GRAPROES_F", # Grado promedio de escolaridad (mujeres)
"GRAPROES_M", # Grado promedio de escolaridad (hombres)
# Población indígena
"P3YM_HLI", # Personas de 3+ años que hablan lengua indígena
"P3HLINHE", # Hablantes de lengua indígena que NO hablan español
# Discapacidad
"PCON_DISC", # Personas con alguna discapacidad
# Actividad económica
"PEA", # Población Económicamente Activa
"PEA_F", # PEA femenina
"PEA_M", # PEA masculina
"PE_INAC", # Población No Económicamente Activa
"PE_INAC_F", # PE_INAC femenina
"PE_INAC_M", # PE_INAC masculina
# Salud
"PSINDER", # Personas sin afiliación a servicios de salud
"PDER_SS", # Personas afiliada a servicios de salud
# Migración interestatal
"PNACOE", # Personas nacidas en otra entidad federativa
# Vivienda y servicios básicos
"TVIVPARHAB", # Total de viviendas particulares habitadas (denominador)
"VPH_AGUAFV", # Viviendas sin agua entubada dentro de la vivienda
"VPH_NODREN", # Viviendas sin drenaje
"VPH_INTER" # Viviendas con internet
)
#3.2 Tratamiento de Datos 1. Seleccionamos solo nuestras variables de interés 2. Convertimos TODO a character para poder reemplazar “*” y “N/D” por NA 3. Convertimos a numérico las columnas que lo requieren (todo menos NOM_LOC)
mier_clean <- mier_raw %>%
select(all_of(variables_clave)) %>%
mutate(across(everything(), ~na_if(as.character(.), "*"))) %>%
mutate(across(everything(), ~na_if(., "N/D"))) %>%
mutate(across(-NOM_LOC, ~as.numeric(.)))
# Revisamos cuántos valores NA quedaron por columna
cat("Valores NA por columna después de la limpieza:\n")
## Valores NA por columna después de la limpieza:
colSums(is.na(mier_clean)) %>%
.[. > 0] %>%
print()
## POBFEM POBMAS P_15YMAS P_15YMAS_F P_15YMAS_M P15YM_AN P15YM_AN_F
## 6 6 6 6 6 6 6
## P15YM_AN_M GRAPROES GRAPROES_F GRAPROES_M P3YM_HLI P3HLINHE PCON_DISC
## 6 6 6 6 6 6 6
## PEA PEA_F PEA_M PE_INAC PE_INAC_F PE_INAC_M PSINDER
## 6 6 6 6 6 6 6
## PDER_SS PNACOE TVIVPARHAB VPH_AGUAFV VPH_NODREN VPH_INTER
## 6 6 6 6 6 6
¿Por qué en todas estas variables el resultado es 6? Esto se explica porque hay 6 localidades que tienen asterisco en absolutamente todas las variables: San Diego, Falfurrias (San Carlos), La Tortuga, La Puerta de Guadalupe, Tanque Roto y Los García. Se hace porque son localidades de 1-5 habitantes y revelar esta información puede vulnerar su confidencialidad. Estas localidades suman un total de 19 personas en un municipio de 5652 personas, menos del 0.3% de la población total, por lo que su ausencia no distorsionará en gran medida los análisis posteriores.
# Extraemos los totales municipales ANTES de filtrar los registros especiales
# LOC = 0000 es el resumen oficial que el INEGI ya calculó para todo el municipio
total_mun <- mier_clean %>%
filter(LOC == 0) %>%
mutate(across(-NOM_LOC, ~as.numeric(na_if(as.character(.), "*"))))
cat("Población total del municipio:", total_mun$POBTOT, "\n")
## Población total del municipio: 7652
cat("Mujeres:", total_mun$POBFEM, "\n")
## Mujeres: 3857
cat("Hombres:", total_mun$POBMAS, "\n")
## Hombres: 3795
Para entender cada una de las localidades que componen al municipio, tenemos que eliminar cuatro tipos de registros:
-LOC= 0000 → “Total del Municipio”: resumen agregado de todas las localidades. Si lo incluimos, duplicaríamos la población y distorsionaríamos cualquier cálculo de promedios o totales.
-LOC = 9998 → “Localidades de una vivienda”: el INEGI agrupa aquí todas las localidades con una sola vivienda por confidencialidad estadística. No representan una comunidad real con identidad propia.
-LOC = 9999 → “Localidades de dos viviendas”: mismo criterio que el anterior.
-Los municipios cuyas variables solo son NAs (San Diego, Falfurrias (San Carlos), La Tortuga, La Puerta de Guadalupe, Tanque Roto y Los García). Estimar sus particularidades es imposible, así que dejaremos de tomarlos en cuenta en el análisis.
mier_localidades <- mier_clean %>%
filter(!LOC %in% c(0, 9998, 9999)) %>%
filter(!NOM_LOC %in% c(
"San Diego",
"Falfurrias (San Carlos)",
"La Tortuga",
"La Puerta de Guadalupe (Los Mireles)",
"Tanque Roto",
"Los García"
))
cat("Localidades reales con datos propios:", nrow(mier_localidades), "\n")
## Localidades reales con datos propios: 19
Aquí se presenta la población total, población femenina y masculina de cada una de las localidades que estamos analizando.
print(mier_localidades %>%
select(NOM_LOC, POBTOT, POBFEM, POBMAS))
## # A tibble: 19 × 4
## NOM_LOC POBTOT POBFEM POBMAS
## <chr> <dbl> <dbl> <dbl>
## 1 Mier y Noriega 1180 604 576
## 2 La Cardona 479 232 247
## 3 Cerros Blancos 586 297 289
## 4 Dolores 549 277 272
## 5 El Gallito 206 91 115
## 6 Jesús María del Terrero (El Lindero) 215 108 107
## 7 La Joya del Zacate 45 21 24
## 8 Lagunita de Taberna 208 93 115
## 9 Las Mesas de San Juan 124 57 67
## 10 Las Palomas (Lajillas) 865 447 418
## 11 La Presita de Cerros Blancos (La Presita) 515 243 272
## 12 El Refugio de Cerros Blancos 531 290 241
## 13 San Antonio de Alamitos 412 212 200
## 14 San Elías 30 14 16
## 15 San Isidro 414 214 200
## 16 San José de Cuatro Caminos 84 39 45
## 17 San José de Medina (Rancho de Abajo) 14 9 5
## 18 San Rafael de los Martínez 657 345 312
## 19 Tapona Moreña 519 256 263
# Calculamos los indicadores educativos por localidad.
# % Analfabetismo = (Población analfabeta 15+ / Población total 15+) * 100
# GRAPROES ya viene calculado por el INEGI como promedio de años de escolaridad aprobados.
mier_educacion <- mier_localidades %>%
mutate(
pct_analfabetismo = round((P15YM_AN / P_15YMAS) * 100, 2)
) %>%
select(NOM_LOC, POBTOT, P_15YMAS, P15YM_AN, pct_analfabetismo, GRAPROES) %>%
arrange(desc(pct_analfabetismo))
datatable(
mier_educacion %>%
rename(
"Localidad" = NOM_LOC,
"Pob. Total" = POBTOT,
"Pob. 15+ años" = P_15YMAS,
"Analfabetas 15+" = P15YM_AN,
"% Analfabetismo" = pct_analfabetismo,
"Grado Prom. Escolaridad" = GRAPROES
),
caption = "Rezago educativo por localidad — Mayor analfabetismo primero",
options = list(
pageLength = 10,
scrollX = TRUE,
scrollY = "300px",
scrollCollapse = TRUE
),
rownames = FALSE
) %>%
formatStyle("% Analfabetismo",
backgroundColor = styleInterval(c(20, 40), c("#d4edda", "#fff3cd", "#f8d7da"))
) %>%
formatStyle("% Analfabetismo",
fontWeight = styleInterval(20, c("normal", "bold"))
)
En esta tabla podemos observar que las 3 localidades con mayor rezago educativo de acuerdo con el porcentaje de analfabetismo son: La Cardona (23.84%), San Isidro (22.45%) y La Presita de Cerros Blancos (20.45%).
Ahora surge la pregunta: ¿Existirá una diferencia en el porcentaje de analfabetismo entre hombres y mujeres?
mier_clean %>%
filter(LOC == 0) %>%
mutate(
pct_analf_f = round((P15YM_AN_F / P_15YMAS_F) * 100, 2),
pct_analf_m = round((P15YM_AN_M / P_15YMAS_M) * 100, 2),
brecha = round(pct_analf_f - pct_analf_m, 2)
) %>%
select(NOM_LOC, pct_analf_f, pct_analf_m, brecha) %>%
rename(
"Municipio" = NOM_LOC,
"% Analf. Mujeres" = pct_analf_f,
"% Analf. Hombres" = pct_analf_m,
"Brecha (M - H)" = brecha
) %>%
kable(caption = "Analfabetismo por sexo — Total del municipio") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
| Municipio | % Analf. Mujeres | % Analf. Hombres | Brecha (M - H) |
|---|---|---|---|
| Total del Municipio | 11.33 | 11.93 | -0.6 |
Observamos que los hombres tienen un mayor porcentaje de analfabetismo (11.93%) comparado con las mujeres (11.33%). Pensaríamos que las mujeres presentarían un mayor porcentaje de analfabetismo debido a condiciones estructurales. Sin embargo, los resultados no arrojan evidencias que apoyen esta teoría.
Ahora filtramos para obtener el porcentaje de analfabetismo por sexo en la localidad de Cerros Blancos.
mier_localidades %>%
filter(LOC == 4) %>%
mutate(
pct_analf_f = round((P15YM_AN_F / P_15YMAS_F) * 100, 2),
pct_analf_m = round((P15YM_AN_M / P_15YMAS_M) * 100, 2),
brecha = round(pct_analf_f - pct_analf_m, 2)
) %>%
select(NOM_LOC, pct_analf_f, pct_analf_m, brecha) %>%
rename(
"Municipio" = NOM_LOC,
"% Analf. Mujeres" = pct_analf_f,
"% Analf. Hombres" = pct_analf_m,
"Brecha (M - H)" = brecha
) %>%
kable(caption = "Analfabetismo por sexo — Total de la localidad de Cerros Blancos") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
| Municipio | % Analf. Mujeres | % Analf. Hombres | Brecha (M - H) |
|---|---|---|---|
| Cerros Blancos | 8.65 | 10.99 | -2.34 |
Observamos que en la localidad de Cerros Blancos, el porcentaje de mujeres con analfabetismo sigue siendo menor (8.65%) que el de los hombres (10.99%).
Se calcula el % de viviendas SIN cada servicio VPH_AGUAFV y VPH_NODREN ya miden directamente las viviendas SIN el servicio,por lo que no es necesario restar. Solo VPH_INTER requiere resta porque el ITER no tiene una variable directa de viviendas sin internet.TVIVPARHAB es el denominador: total de viviendas particulares habitadas.
# Calculamos el % de viviendas SIN cada servicio.
# VPH_AGUAFV y VPH_NODREN ya miden directamente las viviendas SIN el servicio,
# por lo que no es necesario restar. Solo VPH_INTER requiere resta porque
# el ITER no tiene una variable directa de viviendas sin internet.
# TVIVPARHAB es el denominador: total de viviendas particulares habitadas.
mier_vivienda <- mier_localidades %>%
mutate(
sin_agua = round((VPH_AGUAFV / TVIVPARHAB) * 100, 2),
sin_drenaje = round((VPH_NODREN / TVIVPARHAB) * 100, 2),
sin_internet = round(((TVIVPARHAB - VPH_INTER) / TVIVPARHAB) * 100, 2),
# Índice de Carencia: suma de los tres porcentajes.
# Máximo teórico: 300 (sin ninguno de los tres servicios).
indice_carencia = round(sin_agua + sin_drenaje + sin_internet, 1)
) %>%
select(NOM_LOC, TVIVPARHAB, sin_agua, sin_drenaje, sin_internet, indice_carencia) %>%
arrange(desc(indice_carencia))
datatable(
mier_vivienda %>%
rename(
"Localidad" = NOM_LOC,
"Viv. Habitadas" = TVIVPARHAB,
"% Sin Agua" = sin_agua,
"% Sin Drenaje" = sin_drenaje,
"% Sin Internet" = sin_internet,
"Índice de Carencia" = indice_carencia
),
caption = "Carencias de servicios en vivienda — Mayor carencia primero",
options = list(pageLength = 10, scrollX = TRUE, scrollY = "300px", scrollCollapse = TRUE),
rownames = FALSE
) %>%
formatStyle("Índice de Carencia",
backgroundColor = styleInterval(c(150, 250), c("#d4edda", "#fff3cd", "#f8d7da"))
)
De acuerdo con el “Índice de Carencias” que va de 0-300, las localidades más rezagadas de Mier y Noriega son: Las Mesas de San Juan (300), San José de Medina (233) y Lagunita de Taberna (220).
Para la localidad de Cerros Blancos, el índice de carencias llega a 183.6, lo cual sigue siendo bastante elevado. Es interesante observar que solo el 4.1% de las viviendas no tiene agua, mientras que 80% de ellas no cuenta con drenaje.
Realizamos un análisis comparativo entre la cabecera municipal (LOC== 1) y las localidades rurales (>1) para evaluar si existen brechas significativas en cuanto a temas de servicios y educación.
# Creamos la variable categórica que distingue la cabecera del resto.
# LOC == 1 corresponde a la cabecera municipal (misma localidad que el municipio).
mier_localidades <- mier_localidades %>%
mutate(
tipo = if_else(LOC == 1, "Cabecera Municipal", "Localidad Rural")
)
# Calculamos los indicadores necesarios para la comparación
mier_comparativo <- mier_localidades %>%
mutate(
pct_analfabetismo = round((P15YM_AN / P_15YMAS) * 100, 2),
pct_sin_agua = round((VPH_AGUAFV / TVIVPARHAB) * 100, 2),
pct_sin_drenaje = round((VPH_NODREN / TVIVPARHAB) * 100, 2),
pct_sin_internet = round(((TVIVPARHAB - VPH_INTER) / TVIVPARHAB) * 100, 2)
) %>%
group_by(tipo) %>%
summarise(
`N° Localidades` = n(),
`% Analfabetismo` = round(mean(pct_analfabetismo, na.rm = TRUE), 2),
`Escolaridad Prom.` = round(mean(GRAPROES, na.rm = TRUE), 2),
`% Sin Agua` = round(mean(pct_sin_agua, na.rm = TRUE), 2),
`% Sin Drenaje` = round(mean(pct_sin_drenaje, na.rm = TRUE), 2),
`% Sin Internet` = round(mean(pct_sin_internet, na.rm = TRUE), 2)
) %>%
rename(Tipo = tipo)
mier_comparativo %>%
kable(caption = "Comparación de indicadores: Cabecera Municipal vs. Localidades Rurales") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
column_spec(1, bold = TRUE)
| Tipo | N° Localidades | % Analfabetismo | Escolaridad Prom. | % Sin Agua | % Sin Drenaje | % Sin Internet |
|---|---|---|---|---|---|---|
| Cabecera Municipal | 1 | 9.88 | 7.27 | 3.88 | 14.63 | 63.28 |
| Localidad Rural | 18 | 11.38 | 6.31 | 33.32 | 60.72 | 96.89 |
Observamos que la cabecera municipal presenta un porcentaje de analfabetismo menor (9.88%) a comparación de las localidades rurales (11.38%). Asimismo, la cabecera tiene más años de escolaridad promedio (7.27) a comparación del resto de localidades (6.31).
En el tema de servicios, la cabecera también presenta mejores condiciones: solo el 3.88% de las viviendas no tienen agua mientas que el resto de localidades esta cifra alcanza un 33.32%. En la cabecera el porcentaje de hogares sin drenaje es del 14.63% mientras que en las localidades rurales alcanzan el 60.72%. Por último, en la cabecera el 63.28% de las viviendas no tienen internet, mientras que en el resto de localidades la cifra sube al 96.89%.
Se procede a analizar algunas variables que durante el análisis resultaron interesantes y se quiere conocer más sobre ellas, para tener un contexto más completo del municipio
###6.1 Cantidad de personas que hablan alguna lengua indígena en el municipio Realizamos una tabla con el top 5 de localidades con mayor cantidad de personas que hablen alguna lengua indígena.
mier_localidades %>%
select(NOM_LOC, POBTOT, P3YM_HLI) %>%
mutate(
pct_hli = round((P3YM_HLI / POBTOT) * 100, 2)
) %>%
arrange(desc(P3YM_HLI)) %>%
head(5) %>%
rename(
"Localidad" = NOM_LOC,
"Pob. Total" = POBTOT,
"Hablan Lengua Ind." = P3YM_HLI,
"% Hablan Lengua Ind."= pct_hli
) %>%
kable(caption = "Top 5 localidades con mayor población hablante de lengua indígena") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
| Localidad | Pob. Total | Hablan Lengua Ind. | % Hablan Lengua Ind. |
|---|---|---|---|
| Mier y Noriega | 1180 | 4 | 0.34 |
| Dolores | 549 | 1 | 0.18 |
| La Cardona | 479 | 0 | 0.00 |
| Cerros Blancos | 586 | 0 | 0.00 |
| El Gallito | 206 | 0 | 0.00 |
De acuerdo a los resultados obtenidos, solo hay 5 personas que hablan alguna lengua indígena en todo el municipio.
###6.2 Cantidad de personas con discapacidad en las localidades
# PCON_DISC = Personas con algún tipo de discapacidad reconocida.
# En zonas rurales marginadas la discapacidad tiende a estar subatendida
# por la ausencia de servicios de rehabilitación y atención especializada cercanos.
# Un porcentaje alto también puede reflejar envejecimiento poblacional acelerado.
mier_localidades %>%
mutate(
pct_disc = round((PCON_DISC / POBTOT) * 100, 2)
) %>%
select(NOM_LOC, POBTOT, PCON_DISC, pct_disc) %>%
filter(!is.na(PCON_DISC)) %>%
arrange(desc(pct_disc)) %>%
rename(
"Localidad" = NOM_LOC,
"Pob. Total" = POBTOT,
"Con Discapacidad" = PCON_DISC,
"% Discapacidad" = pct_disc
) %>%
kable(caption = "Tabla 4. Población con discapacidad por localidad") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)
| Localidad | Pob. Total | Con Discapacidad | % Discapacidad |
|---|---|---|---|
| San Elías | 30 | 4 | 13.33 |
| Dolores | 549 | 56 | 10.20 |
| La Presita de Cerros Blancos (La Presita) | 515 | 50 | 9.71 |
| Las Mesas de San Juan | 124 | 11 | 8.87 |
| El Refugio de Cerros Blancos | 531 | 46 | 8.66 |
| San Antonio de Alamitos | 412 | 34 | 8.25 |
| San Rafael de los Martínez | 657 | 48 | 7.31 |
| San Isidro | 414 | 30 | 7.25 |
| San José de Medina (Rancho de Abajo) | 14 | 1 | 7.14 |
| La Joya del Zacate | 45 | 3 | 6.67 |
| Jesús María del Terrero (El Lindero) | 215 | 13 | 6.05 |
| Las Palomas (Lajillas) | 865 | 44 | 5.09 |
| Mier y Noriega | 1180 | 59 | 5.00 |
| Lagunita de Taberna | 208 | 9 | 4.33 |
| Cerros Blancos | 586 | 25 | 4.27 |
| La Cardona | 479 | 20 | 4.18 |
| San José de Cuatro Caminos | 84 | 3 | 3.57 |
| El Gallito | 206 | 5 | 2.43 |
| Tapona Moreña | 519 | 6 | 1.16 |
Las 3 localidades con mayor porcentaje de personas con discapacidad son: San Elías(13.33%), Dolores (10.2%) y La Presita de Cerros Blancos (9.71%). La localidad de Cerros Blancos solo presenta un 4.27% de población con alguna discapacidad.
###6.3 Cantidad de personas nacidas en otra entidad federativa
# PNACOE = Personas nacidas en otra entidad federativa.
# En Mier y Noriega, un número bajo de migrantes llegados de otros estados
# confirma que no existe actividad económica que atraiga población externa.
# Es un reflejo del aislamiento y la falta de dinamismo económico del municipio.
mier_localidades %>%
mutate(
pct_nacoe = round((PNACOE / POBTOT) * 100, 2)
) %>%
select(NOM_LOC, POBTOT, PNACOE, pct_nacoe) %>%
filter(!is.na(PNACOE)) %>%
arrange(desc(pct_nacoe)) %>%
rename(
"Localidad" = NOM_LOC,
"Pob. Total" = POBTOT,
"Nacidos fuera de NL" = PNACOE,
"% Nacidos fuera NL" = pct_nacoe
) %>%
kable(caption = "Tabla 5. Población nacida en otra entidad federativa") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)
| Localidad | Pob. Total | Nacidos fuera de NL | % Nacidos fuera NL |
|---|---|---|---|
| La Joya del Zacate | 45 | 11 | 24.44 |
| San José de Medina (Rancho de Abajo) | 14 | 2 | 14.29 |
| Mier y Noriega | 1180 | 140 | 11.86 |
| La Cardona | 479 | 36 | 7.52 |
| La Presita de Cerros Blancos (La Presita) | 515 | 31 | 6.02 |
| El Gallito | 206 | 12 | 5.83 |
| El Refugio de Cerros Blancos | 531 | 23 | 4.33 |
| Jesús María del Terrero (El Lindero) | 215 | 9 | 4.19 |
| San Isidro | 414 | 16 | 3.86 |
| Dolores | 549 | 21 | 3.83 |
| Las Palomas (Lajillas) | 865 | 33 | 3.82 |
| San José de Cuatro Caminos | 84 | 3 | 3.57 |
| San Rafael de los Martínez | 657 | 22 | 3.35 |
| San Elías | 30 | 1 | 3.33 |
| Las Mesas de San Juan | 124 | 3 | 2.42 |
| Cerros Blancos | 586 | 13 | 2.22 |
| San Antonio de Alamitos | 412 | 5 | 1.21 |
| Lagunita de Taberna | 208 | 2 | 0.96 |
| Tapona Moreña | 519 | 1 | 0.19 |
De acuerdo con los resultados: las 3 localidades que tienen mayor porcentaje de personas nacidas fueras del estado son: La Joya del Zacate (24.44%), Rancho de Abajo (14.29%) y Mier y Noriega (11.86%). La localidad de Cerros Blancos presenta un porcentaje de personas que nacieron fuera del estado del 2.22%.
###6.4 Cantidad de personas afiliadas a servicios de salud
# PSINDER = Personas sin ninguna afiliación a servicios de salud.
# En 2020 esto significaba no tener IMSS, ISSSTE, Seguro Popular
# ni ningún otro esquema. Son las personas más vulnerables ante
# cualquier evento de salud.
# PDER_SS = Personas con algún tipo de derechohabiencia (complementario a PSINDER).
#
# El % sin servicios de salud es uno de los indicadores más directos de exclusión.
mier_salud <- mier_localidades %>%
mutate(
pct_sin_salud = round((PSINDER / POBTOT) * 100, 2),
pct_con_salud = round((PDER_SS / POBTOT) * 100, 2)
) %>%
select(NOM_LOC, POBTOT, PSINDER, pct_sin_salud, PDER_SS, pct_con_salud) %>%
filter(!is.na(PSINDER)) %>%
arrange(desc(pct_sin_salud))
datatable(
mier_salud %>%
rename(
"Localidad" = NOM_LOC,
"Pob. Total" = POBTOT,
"Sin Servicios" = PSINDER,
"% Sin Servicios" = pct_sin_salud,
"Con Servicios" = PDER_SS,
"% Con Servicios" = pct_con_salud
),
caption = "Tabla 10. Acceso a servicios de salud por localidad",
options = list(pageLength = 10, scrollX = TRUE),
rownames = FALSE
) %>%
formatStyle("% Sin Servicios",
backgroundColor = styleInterval(c(20, 40), c("#d4edda", "#fff3cd", "#f8d7da"))
)
Las 3 localidades con mayor porcentaje de personas NO afiliadas a servicios de salud son: La Presita (25.24%), La Joya del Zacate (13.33%) y Dolores (12.93%)
##7. CONCLUSIÓN Tras realizar un análisis general de diferentes variables en el municipio de Mier y Noriega, concluimos que es un municipio bastante rezagado comparado con la realidad de la Zona Metropolitana de Monterrey. Claro que es fundamental trabajar el tema de educación, sin embargo, esto es MUY difícil cuando no se cumplen con las necesidades básicas de la población. Este es un problema sistémico de marginación que se ha mantenido a través del tiempo. ¿Cómo se espera que los niños quieran vivir en su localidad cuando muchos de ellos no tienen drenaje ni agua en sus casas? ¿Será relevante la afiliación a servicios de salud cuando no hay infraestructura necesaria?
Lo que me parece bastante preocupante es la diferencia de analfabetismo y carencias entre la cabecera municipal y las localidades rurales. Parece ser que no está habiendo una distribución justa de los recursos municipales. Sin duda este análisis me deja pensando cómo vamos a incidir en esta comunidad cuando las necesidades básicas están por los suelos. ¿Cómo fomentamos la educación sin infraestructura adecuada? Gracias.