Preparación del Entorno

library(readr)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(knitr)
library(tidyr)
library(ggplot2)

Cargar Base de Datos

base <- read_csv("C:/Users/reyna/OneDrive/Escritorio/TRABAJOS PARA EL TEC 8VO/ANÁLISIS DE DECISIONES BAJO CONDICIONES DE INCERTIDUMBRE/SEMANA 1/ITER_19CSV20.csv")
## Rows: 4974 Columns: 286
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (282): NOM_ENT, MUN, NOM_MUN, LOC, NOM_LOC, LONGITUD, LATITUD, ALTITUD, ...
## dbl   (4): ENTIDAD, POBTOT, VIVTOT, TVIVHAB
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Filtrado “Mier & Noriega”

base_mier <- base[base$NOM_MUN == "Mier y Noriega", ]

Exploración y Limpieza de Datos

Variables Elegidas y Significado

  • NOM_LOC -> Nombre de Localidad
  • POBTOT -> Población Total
  • TVIVPARHAB -> Total de viviendas particulares habitadas
  • P15YM_AN -> Analfabetismo
  • POCUPADA -> Ocupación
  • VPH_AGUADV -> Agua entubada
  • VPH_DRENAJ -> Drenaje
  • VPH_INTER -> Internet
  • GRAPROES -> Grado Promedio Escolaridad
  • PDER_SS -> Seguridad Social
  • PCATOLICA -> Población Católica
  • VPH_AUTOM -> Automóvil / Camioneta
# Seleccionar Variables de Interés
mier <- base_mier %>%
  select(
    NOM_LOC,
    POBTOT,
    TVIVPARHAB,
    P15YM_AN,
    POCUPADA,
    VPH_AGUADV,
    VPH_DRENAJ,
    VPH_INTER,
    GRAPROES,
    PDER_SS,
    PCATOLICA,
    VPH_AUTOM
  )
# Manejo de * como NAs y conversión a variables númericas
mier[mier == "*"] <- NA

mier$POBTOT      <- as.numeric(mier$POBTOT)
mier$P15YM_AN    <- as.numeric(mier$P15YM_AN)
mier$POCUPADA    <- as.numeric(mier$POCUPADA)
mier$VPH_AGUADV  <- as.numeric(mier$VPH_AGUADV)
mier$VPH_DRENAJ  <- as.numeric(mier$VPH_DRENAJ)
mier$VPH_INTER   <- as.numeric(mier$VPH_INTER)
mier$GRAPROES    <- as.numeric(mier$GRAPROES)
mier$PDER_SS     <- as.numeric(mier$PDER_SS)
mier$PCATOLICA   <- as.numeric(mier$PCATOLICA)
mier$VPH_AUTOM   <- as.numeric(mier$VPH_AUTOM)
mier$TVIVPARHAB   <- as.numeric(mier$TVIVPARHAB)

Análisis de la Estructura Poblacional y Educativa

Resumen Municipal: Calcula la población total del municipio sumando sus localidades.

# Filtrado de Localidades
pob_total_municipio <- mier %>%
  filter(NOM_LOC != "Total del Municipio") %>%
  filter(NOM_LOC != "Localidades de una vivienda") %>%
  filter(NOM_LOC != "Localidades de dos viviendas") %>%
  summarise(pob_total = sum(POBTOT, na.rm = TRUE)) # Suma de la población total del municipio

pob_total_municipio$pob_total
## [1] 7652

Indicadores de Educación:

Calcula para cada localidad: * Porcentaje de analfabetismo. * Grado promedio de escolaridad.

# Tabla Resumen de Rezago Educativo
tabla_rezago_educativo <- mier %>%
  mutate(
    analfabetismo = ifelse(is.na(POBTOT), NA, (P15YM_AN / POBTOT) * 100),
    grado_prom_escolaridad = GRAPROES
  ) %>%
  select(
    NOM_LOC,
    analfabetismo,
    grado_prom_escolaridad
  ) %>%
  arrange(desc(analfabetismo), grado_prom_escolaridad)

tabla_rezago_educativo
## # A tibble: 28 × 3
##    NOM_LOC                                  analfabetismo grado_prom_escolaridad
##    <chr>                                            <dbl>                  <dbl>
##  1 La Cardona                                       16.1                    5.3 
##  2 San Isidro                                       15.9                    5.69
##  3 Localidades de dos viviendas                     15.4                    4.42
##  4 La Presita de Cerros Blancos (La Presit…         14.0                    5.83
##  5 San José de Cuatro Caminos                       10.7                    5.98
##  6 Tapona Moreña                                     9.83                   6.27
##  7 El Gallito                                        8.74                   5.44
##  8 Total del Municipio                               7.78                   6.59
##  9 El Refugio de Cerros Blancos                      7.53                   6.64
## 10 San José de Medina (Rancho de Abajo)              7.14                   6.13
## # ℹ 18 more rows

El Refugio de Cerros Blancos, con una población de 531 habitantes, presenta un porcentaje de analfabetismo de 7.53% y un grado promedio de escolaridad de 6.64 años. En comparación con el total municipal (7.78% de analfabetismo y 6.59 años de escolaridad), la localidad muestra un desempeño ligeramente más favorable en ambos indicadores. Por lo tanto, en términos relativos, su posición es cercana al promedio general.

Análisis de Vivienda y Servicios

Cálculo de carencias: Determina el porcentaje de viviendas que no disponen de:

  • Agua entubada.
  • Drenaje.
  • Internet.
# Aplicación de fórmula para obtener el porcentaje de personas con carencias. (Número Total de Viviendas Partículares Habitadas - Variable de Carencia) / Número Total de Viviendas Partículares Habitadas * 100
carencias_servicios <- mier %>%
  mutate(
    carencia_agua = ifelse(is.na(TVIVPARHAB), NA, ((TVIVPARHAB - VPH_AGUADV) / TVIVPARHAB) * 100),
    carencia_drenaje = ifelse(is.na(TVIVPARHAB), NA, ((TVIVPARHAB - VPH_DRENAJ) / TVIVPARHAB) * 100),
    carencia_internet = ifelse(is.na(TVIVPARHAB), NA, ((TVIVPARHAB - VPH_INTER) / TVIVPARHAB) * 100)
  ) %>%
  select(
    NOM_LOC, carencia_agua, carencia_drenaje, carencia_internet
  )

carencias_servicios
## # A tibble: 28 × 4
##    NOM_LOC                      carencia_agua carencia_drenaje carencia_internet
##    <chr>                                <dbl>            <dbl>             <dbl>
##  1 Total del Municipio                  20.7             54.4               90.3
##  2 Mier y Noriega                        3.88            14.6               63.3
##  3 La Cardona                            9.92            11.5              100  
##  4 Cerros Blancos                        4.10            80.3               99.2
##  5 Dolores                              16.2             78.9               97.9
##  6 El Gallito                           14.8             70.4              100  
##  7 Jesús María del Terrero (El…          1.96            66.7               98.0
##  8 La Joya del Zacate                  100                8.33              91.7
##  9 Lagunita de Taberna                  20.9            100                100  
## 10 Las Mesas de San Juan               100              100                100  
## # ℹ 18 more rows

Umbral del 70% de viviendas con carencias.

carencias_servicios_binario <- carencias_servicios %>%
  mutate(
    carencia_agua = ifelse(is.na(carencia_agua), NA,
                               ifelse(carencia_agua > 70, 1, 0)),
    
    carencia_drenaje = ifelse(is.na(carencia_drenaje), NA,
                                  ifelse(carencia_drenaje > 70, 1, 0)),
    
    carencia_internet = ifelse(is.na(carencia_internet), NA,
                                   ifelse(carencia_internet > 70, 1, 0))
  )
carencias_servicios_binario
## # A tibble: 28 × 4
##    NOM_LOC                      carencia_agua carencia_drenaje carencia_internet
##    <chr>                                <dbl>            <dbl>             <dbl>
##  1 Total del Municipio                      0                0                 1
##  2 Mier y Noriega                           0                0                 0
##  3 La Cardona                               0                0                 1
##  4 Cerros Blancos                           0                1                 1
##  5 Dolores                                  0                1                 1
##  6 El Gallito                               0                1                 1
##  7 Jesús María del Terrero (El…             0                0                 1
##  8 La Joya del Zacate                       1                0                 1
##  9 Lagunita de Taberna                      0                1                 1
## 10 Las Mesas de San Juan                    1                1                 1
## # ℹ 18 more rows

El Refugio de Cerros Blancos presenta carencias en drenaje e internet.

Crea un índice simple de “Carencia de Servicios” sumando estas variables para identificar las zonas más vulnerables del municipio.

indice_carencias <- carencias_servicios_binario %>%
  mutate(
    indice_carencias = carencia_agua +
                       carencia_drenaje +
                       carencia_internet
  ) %>%
  select(NOM_LOC, indice_carencias) %>%
  arrange(desc(indice_carencias))

indice_carencias
## # A tibble: 28 × 2
##    NOM_LOC                                   indice_carencias
##    <chr>                                                <dbl>
##  1 Las Mesas de San Juan                                    3
##  2 Cerros Blancos                                           2
##  3 Dolores                                                  2
##  4 El Gallito                                               2
##  5 La Joya del Zacate                                       2
##  6 Lagunita de Taberna                                      2
##  7 La Presita de Cerros Blancos (La Presita)                2
##  8 El Refugio de Cerros Blancos                             2
##  9 San Elías                                                2
## 10 San Isidro                                               2
## # ℹ 18 more rows

El índice de carencias se construyó a partir de tres dimensiones básicas de infraestructura: agua entubada, drenaje e internet. Para cada servicio se calculó el porcentaje de viviendas particulares habitadas que no disponen del mismo, utilizando como denominador el total de viviendas particulares habitadas. Posteriormente, se generó una variable binaria que toma el valor de 1 cuando la carencia supera el 70% de las viviendas y 0 en caso contrario. El índice final corresponde a la suma simple de estas tres variables binarias, por lo que puede oscilar entre 0 (sin carencias críticas) y 3 (carencia en los tres servicios).

El Refugio de Cerros Blancos presenta carencia en drenaje e internet, lo que implica un índice de carencias igual a 2. Esto indica una vulnerabilidad relevante en términos de infraestructura básica, particularmente en servicios que inciden directamente en salud pública (drenaje) y en integración educativa y productiva (internet).

En contraste, la cabecera municipal, Mier y Noriega, no registra carencias bajo el criterio establecido (índice igual a 0). Esta diferencia evidencia una brecha territorial clara dentro del municipio: mientras la cabecera concentra mejores condiciones de infraestructura, El Refugio enfrenta limitaciones estructurales que podrían restringir su desarrollo social y económico.

Análisis Comparativo: Cabecera vs. Localidades Rurales

Unir las Tablas

base_final <- tabla_rezago_educativo %>%
  left_join(indice_carencias, by = "NOM_LOC") %>%
  filter(NOM_LOC != "Total del Municipio") %>%
  filter(NOM_LOC != "Localidades de dos viviendas") %>%
  filter(NOM_LOC != "Localidades de una vivienda")

División de Cabecera Municipal y Rural

base_final$zona <- ifelse(base_final$NOM_LOC == "Mier y Noriega",
                          "Cabecera",
                          "Rural")

base_final$zona <- factor(base_final$zona,
                          levels = c("Cabecera", "Rural"))

Comparación

# Comparación de Medias entre Cabecera y Rural para Analfabetismo, Grado Promedio de Escolaridad e Índice de Carencias
base_final %>%
  group_by(zona) %>%
  summarise(
    media_analfabetismo = mean(analfabetismo, na.rm = TRUE),
    media_escolaridad = mean(grado_prom_escolaridad, na.rm = TRUE),
    media_indice_carencias = mean(indice_carencias, na.rm = TRUE),
    n = n()
  ) %>%
  kable(digits = 2,
        caption = "Medias")
Medias
zona media_analfabetismo media_escolaridad media_indice_carencias n
Cabecera 7.03 7.27 0.00 1
Rural 7.62 6.31 1.67 24

Los resultados evidencian una brecha territorial clara entre la cabecera municipal y las localidades rurales. En promedio, las comunidades rurales presentan mayor analfabetismo (7.62% frente a 7.03%), menor grado promedio de escolaridad (6.31 años frente a 7.27) y un índice de carencias significativamente superior (1.67 frente a 0). Esto confirma que las desigualdades dentro del municipio no son homogéneas, sino espacialmente concentradas.

Gráfica

media_por_grupo <- base_final %>%
  group_by(zona) %>%
  summarise(
    analfabetismo = mean(analfabetismo, na.rm = TRUE),
    escolaridad = mean(grado_prom_escolaridad, na.rm = TRUE),
    indice_carencias = mean(indice_carencias, na.rm = TRUE)
  ) %>%
  pivot_longer(-zona,
               names_to = "variable",
               values_to = "media")

ggplot(media_por_grupo, aes(x = variable, y = media, fill = zona)) +
  geom_bar(stat = "identity", position = "dodge", width = 0.6) +
  labs(
    x = "Indicador",
    y = "Media",
    fill = "Zona",
    title = "Brechas en Educación y Servicios: Cabecera vs Rural"
  ) +
  theme_minimal()

Los resultados muestran que existe una brecha clara entre la cabecera y las localidades rurales. La cabecera presenta menor analfabetismo, mayor escolaridad y prácticamente cero carencias, mientras que en las zonas rurales el rezago educativo es ligeramente mayor y el índice de carencias es considerablemente más alto.

El Refugio de Cerros Blancos es una localidad clave. Aunque en educación se encuentra cerca del promedio municipal, presenta carencias importantes en drenaje e internet, lo que evidencia limitaciones en infraestructura básica.

Sería muy interesante cruzar estos resultados con datos de pobreza y con información de los Censos Económicos para identificar si estas carencias también se reflejan en menores ingresos o menor actividad productiva. Esto permitiría diseñar políticas públicas más focalizadas y estratégicas dentro del municipio.