#LIBRERÍAS
library("tidyverse")
library("knitr")
library("dplyr")
library("kableExtra")
library("ggplot2")
library("tidyr")
#Bases de datos
datos <- read.csv("ITER_19CSV20.csv")
datos_MyN <- datos %>%
filter(NOM_MUN == "Mier y Noriega")
#Limpieza de datos
datos_MyN <- datos_MyN %>%
mutate(across(everything(), as.character)) %>%
mutate(across(everything(), ~na_if(., "*"))) %>% # reemplazo de asteriscoa por NA
mutate(across(-c(NOM_ENT, NOM_MUN, NOM_LOC, LONGITUD, LATITUD, ALTITUD), as.numeric)) #convirtiendo variables a numéricas
datos_MyN <- datos_MyN[-1,] #elimino la observación "total municipio"
pobtotal <- sum(datos_MyN$POBTOT, na.rm=TRUE)
pobhombres <- sum(datos_MyN$POBMAS, na.rm=TRUE)
pobmujeres <- sum(datos_MyN$POBFEM, na.rm=TRUE)
print(paste("La población total del municipio es de", pobtotal, "habitantes, donde", pobmujeres,"son mujeres y", pobhombres, "son hombres (los datos de género faltantes corresponden a localidades con datos confidenciales)"))
## [1] "La población total del municipio es de 7671 habitantes, donde 3857 son mujeres y 3795 son hombres (los datos de género faltantes corresponden a localidades con datos confidenciales)"
#Porcentaje de analfabetismo por localidad y por sexo [P15YM_AN, P15YM_AN_F, P15YM_AN_M]
datos_MyN <- datos_MyN %>%
mutate(
pct_analf_total = (P15YM_AN / P_15YMAS) * 100,
pct_analf_fem = (P15YM_AN_F / P_15YMAS_F) * 100,
pct_analf_mas = (P15YM_AN_M / P_15YMAS_M) * 100
)
#Grado promedio de escolaridad por localidad y por sexo[GRAPROES, GRAPROES_F, GRAPROES_M]
datos_MyN <- datos_MyN %>%
mutate(
grado_prom_total = GRAPROES,
grado_prom_fem = GRAPROES_F,
grado_prom_mas = GRAPROES_M
)
#Tabla de rezago educativo
tabla <- datos_MyN %>%
select(NOM_LOC,
pct_analf_total, pct_analf_fem, pct_analf_mas,
grado_prom_total, grado_prom_fem, grado_prom_mas) %>%
arrange(desc(pct_analf_total))
kable(tabla,
digits = 2,
caption = "Rezago Educativo por Localidad",
col.names = c("Localidad", "% Analf. Total", "% Analf. mujeres", "% Analf. hombres",
"Grado Prom.", "Grado mujeres", "Grado hombres"))
| Localidad | % Analf. Total | % Analf. mujeres | % Analf. hombres | Grado Prom. | Grado mujeres | Grado hombres |
|---|---|---|---|---|---|---|
| La Cardona | 23.84 | 23.57 | 24.10 | 5.30 | 5.59 | 5.02 |
| San Isidro | 22.45 | 22.82 | 22.07 | 5.69 | 5.64 | 5.75 |
| La Presita de Cerros Blancos (La Presita) | 20.45 | 17.86 | 22.83 | 5.83 | 6.26 | 5.43 |
| Localidades de dos viviendas | 16.67 | 40.00 | 0.00 | 4.42 | 3.80 | 4.86 |
| Tapona Moreña | 14.57 | 10.78 | 18.03 | 6.27 | 6.38 | 6.17 |
| San José de Cuatro Caminos | 13.64 | 13.33 | 13.89 | 5.98 | 5.40 | 6.47 |
| San José de Medina (Rancho de Abajo) | 12.50 | 20.00 | 0.00 | 6.13 | 7.20 | 4.33 |
| El Gallito | 12.08 | 15.28 | 9.09 | 5.44 | 5.71 | 5.19 |
| El Refugio de Cerros Blancos | 11.17 | 12.37 | 9.76 | 6.64 | 6.63 | 6.64 |
| San Elías | 11.11 | 11.11 | 11.11 | 6.11 | 7.78 | 4.44 |
| Mier y Noriega | 9.88 | 10.55 | 9.16 | 7.27 | 7.43 | 7.11 |
| Cerros Blancos | 9.81 | 8.65 | 10.99 | 6.65 | 6.99 | 6.29 |
| Lagunita de Taberna | 8.89 | 5.97 | 11.76 | 5.87 | 6.36 | 5.38 |
| Las Palomas (Lajillas) | 8.60 | 8.59 | 8.61 | 6.71 | 7.04 | 6.38 |
| Jesús María del Terrero (El Lindero) | 7.43 | 6.49 | 8.45 | 6.51 | 6.75 | 6.24 |
| Las Mesas de San Juan | 6.85 | 3.03 | 10.00 | 6.58 | 6.68 | 6.50 |
| San Rafael de los Martínez | 6.51 | 5.88 | 7.18 | 7.47 | 7.76 | 7.18 |
| San Antonio de Alamitos | 6.12 | 6.85 | 5.30 | 6.80 | 7.12 | 6.45 |
| Dolores | 5.50 | 6.67 | 4.28 | 7.46 | 7.53 | 7.39 |
| La Joya del Zacate | 3.33 | 7.69 | 0.00 | 6.13 | 6.15 | 6.12 |
| Localidades de una vivienda | 0.00 | 0.00 | 0.00 | 5.17 | 5.50 | 5.00 |
| San Diego | NA | NA | NA | NA | NA | NA |
| Falfurrias (San Carlos) | NA | NA | NA | NA | NA | NA |
| La Tortuga | NA | NA | NA | NA | NA | NA |
| La Puerta de Guadalupe (Los Mireles) | NA | NA | NA | NA | NA | NA |
| Tanque Roto | NA | NA | NA | NA | NA | NA |
| Los García | NA | NA | NA | NA | NA | NA |
Se nota que el porcentaje de analfabetismo más alto lo presenta la localidad de La Cardona donde del total de habitantes de 15 años o más el 23.84% no saben leer ni escribir, esta cifra supera por mucho el índice de analfabetismo a nivel nacional en México que al cierre del año pasado se situó en 3.8%
Por otro lado el grado de escolaridad más bajo se encuentra alrededor de 5 y el más alto se encuentra alrededor de 7, este último aún siendo el más alto, se encuentra por debajo del grado promedio de escolaridad a nivel nacional que es de 9.7 años.
Para medir las carencias sociales en la vivienda se eligieron las variables que indican calidad de piso de los hogares (que su material sea diferente a tierra), acceso a energía eleéctrica, acceso a agua entubada, acceso a internet y que se cuente con drenaje.
# TVIVHAB - total de viviendas habitadas
# VPH_PISOTI - viviendas con piso de tierra (calidad del piso)
# VPH_S_ELEC - viviendas sin energía eléctrica
# VPH_AGUADV - viviendas con agua entubada
# VPH_DRENAJ - viviendas con drenaje
# VPH_INTER - internet
# /////// Calculo de porcentajes /////////
datos_indice <- datos_MyN %>%
filter(TVIVHAB > 0) %>%
mutate(
pct_internet = (VPH_INTER / TVIVHAB) * 100,
pct_piso_tierra = (VPH_PISOTI / TVIVHAB) * 100,
pct_sin_luz = (VPH_S_ELEC / TVIVHAB) * 100,
pct_con_agua = (VPH_AGUADV / TVIVHAB) * 100,
pct_con_drenaje = (VPH_DRENAJ / TVIVHAB) * 100,
#/////// índice ///////
indic_internet = if_else(pct_internet < 50, 1, 0), # Si menos del 50% tiene internet -> 1 punto
indic_piso = if_else(pct_piso_tierra > 50, 1, 0), # Si más del 50% tiene piso de tierra -> 1 punto
indic_luz = if_else(pct_sin_luz > 50, 1, 0), #Si más del 50% no tiene luz -> 1 punto
indic_agua = if_else(pct_con_agua < 50, 1, 0), # Si menos del 50% tiene agua -> 1 punto
indic_drenaje = if_else(pct_con_drenaje < 50, 1, 0) # Si menos del 50% tiene drenaje -> 1 punto
) %>%
mutate(
INDICE_CARENCIA = indic_internet + indic_piso + indic_luz + indic_agua + indic_drenaje
)
# ////////////////// Tabla resumen ////////////////
tabla_indice <- datos_indice %>%
select(NOM_LOC, TVIVHAB,
indic_internet, indic_piso, indic_luz, indic_agua, indic_drenaje,
INDICE_CARENCIA) %>%
arrange(desc(INDICE_CARENCIA), desc(TVIVHAB))
kable(tabla_indice,
align = "c",
caption = "Índice de Carencias Sociales por Localidad (Escala 0-5)",
col.names = c("Localidad", "Viviendas",
"Falta Internet", "Piso de tierra", "Falta luz", "Falta agua", "Falta drenaje",
"ÍNDICE TOTAL"))
| Localidad | Viviendas | Falta Internet | Piso de tierra | Falta luz | Falta agua | Falta drenaje | ÍNDICE TOTAL |
|---|---|---|---|---|---|---|---|
| Tapona Moreña | 118 | 1 | 0 | 0 | 1 | 1 | 3 |
| Las Mesas de San Juan | 22 | 1 | 0 | 0 | 1 | 1 | 3 |
| Localidades de dos viviendas | 6 | 1 | 0 | 0 | 1 | 1 | 3 |
| Las Palomas (Lajillas) | 199 | 1 | 0 | 0 | 0 | 1 | 2 |
| San Rafael de los Martínez | 155 | 1 | 0 | 0 | 0 | 1 | 2 |
| Dolores | 142 | 1 | 0 | 0 | 0 | 1 | 2 |
| La Presita de Cerros Blancos (La Presita) | 129 | 1 | 0 | 0 | 0 | 1 | 2 |
| El Refugio de Cerros Blancos | 129 | 1 | 0 | 0 | 0 | 1 | 2 |
| Cerros Blancos | 122 | 1 | 0 | 0 | 0 | 1 | 2 |
| San Isidro | 102 | 1 | 0 | 0 | 1 | 0 | 2 |
| San Antonio de Alamitos | 92 | 1 | 0 | 0 | 0 | 1 | 2 |
| El Gallito | 54 | 1 | 0 | 0 | 0 | 1 | 2 |
| Jesús María del Terrero (El Lindero) | 51 | 1 | 0 | 0 | 0 | 1 | 2 |
| Lagunita de Taberna | 43 | 1 | 0 | 0 | 0 | 1 | 2 |
| La Joya del Zacate | 12 | 1 | 0 | 0 | 1 | 0 | 2 |
| San Elías | 7 | 1 | 0 | 0 | 1 | 0 | 2 |
| San José de Medina (Rancho de Abajo) | 3 | 1 | 0 | 0 | 0 | 1 | 2 |
| Localidades de una vivienda | 3 | 1 | 0 | 0 | 1 | 0 | 2 |
| Mier y Noriega | 335 | 1 | 0 | 0 | 0 | 0 | 1 |
| La Cardona | 131 | 1 | 0 | 0 | 0 | 0 | 1 |
| San José de Cuatro Caminos | 26 | 1 | 0 | 0 | 0 | 0 | 1 |
| La Puerta de Guadalupe (Los Mireles) | 2 | NA | NA | NA | NA | NA | NA |
| Tanque Roto | 2 | NA | NA | NA | NA | NA | NA |
| Los García | 2 | NA | NA | NA | NA | NA | NA |
| San Diego | 1 | NA | NA | NA | NA | NA | NA |
| Falfurrias (San Carlos) | 1 | NA | NA | NA | NA | NA | NA |
| La Tortuga | 1 | NA | NA | NA | NA | NA | NA |
El índice se construye de la siguiente manera: con un valor de 0-5, 5 indica el mayor índice de carencia, es decir que de las cinco variables que se toman como medida para calidad de vivienda, la localidad carece de las cinco.
Para determinar si hay o no carencia en cada localidad se tomó como criterio que al menos el 50% de las viviendas tuvieran dicha carencia.
Es importante notar que todas las localidades tienen al menos una carencia importante : accedo a Internet
tabla_indice %>%
select(NOM_LOC, INDICE_CARENCIA) %>%
mutate(
INDICE_CARENCIA = cell_spec(
INDICE_CARENCIA,
format = "html",
color = "white",
bold = TRUE,
align = "center",
background = case_when(
INDICE_CARENCIA == 0 ~ "#228B22",
INDICE_CARENCIA == 1 ~ "#9ACD32",
INDICE_CARENCIA == 2 ~ "#FFD700",
INDICE_CARENCIA == 3 ~ "#FF8C00",
INDICE_CARENCIA == 4 ~ "#FF4500",
INDICE_CARENCIA == 5 ~ "#B22222",
TRUE ~ "grey"
)
)
) %>%
kable(
escape = FALSE,
format = "html",
align = "cl",
caption = "Semáforo de Vulnerabilidad Social por Localidad",
col.names = c("Localidad", "Índice de Carencia (0-5)")
) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE,
position = "center"
) %>%
column_spec(2, width = "5cm")
| Localidad | Índice de Carencia (0-5) |
|---|---|
| Tapona Moreña | 3 |
| Las Mesas de San Juan | 3 |
| Localidades de dos viviendas | 3 |
| Las Palomas (Lajillas) | 2 |
| San Rafael de los Martínez | 2 |
| Dolores | 2 |
| La Presita de Cerros Blancos (La Presita) | 2 |
| El Refugio de Cerros Blancos | 2 |
| Cerros Blancos | 2 |
| San Isidro | 2 |
| San Antonio de Alamitos | 2 |
| El Gallito | 2 |
| Jesús María del Terrero (El Lindero) | 2 |
| Lagunita de Taberna | 2 |
| La Joya del Zacate | 2 |
| San Elías | 2 |
| San José de Medina (Rancho de Abajo) | 2 |
| Localidades de una vivienda | 2 |
| Mier y Noriega | 1 |
| La Cardona | 1 |
| San José de Cuatro Caminos | 1 |
| La Puerta de Guadalupe (Los Mireles) | NA |
| Tanque Roto | NA |
| Los García | NA |
| San Diego | NA |
| Falfurrias (San Carlos) | NA |
| La Tortuga | NA |
datos_comparativo <- datos_indice %>%
mutate(
TIPO_LOC = if_else(NOM_LOC == "Mier y Noriega", "Cabecera Municipal", "Localidad Rural")
)
# ///// comparación de medias ///////
tabla_brechas <- datos_comparativo %>%
group_by(TIPO_LOC) %>%
summarise(
Num_Localidades = n(),
Analfabetismo_Prom = mean(pct_analf_total, na.rm = TRUE), # Promedios de Educación
Escolaridad_Prom = mean(grado_prom_total, na.rm = TRUE),
Indice_Carencia_Prom = mean(INDICE_CARENCIA, na.rm = TRUE) # Promedio de Carencias
)
kable(tabla_brechas,
digits = 2,
caption = "Brechas de Desigualdad: Cabecera vs. Resto del Municipio",
col.names = c("Tipo de Localidad", "N° Loc.",
"% Analfabetismo", "Grado Escolaridad", "Índice Carencias Promedio")) %>%
kable_styling(bootstrap_options = c("striped", "hover", "bordered"), full_width = F) %>%
row_spec(which(tabla_brechas$TIPO_LOC == "Cabecera Municipal"), bold = T, color = "white", background = "#2E8B57")
| Tipo de Localidad | N° Loc. | % Analfabetismo | Grado Escolaridad | Índice Carencias Promedio |
|---|---|---|---|---|
| Cabecera Municipal | 1 | 9.88 | 7.27 | 1.00 |
| Localidad Rural | 26 | 11.08 | 6.16 | 2.05 |
Se agruparon todas las localidades como rurales para hacer una comparación de medias entre la cabecera municipal “Mier y Noriega” y el resto de localidades en el municipio. Se observa que hay un punto de diferencia tanto en el grado promedio de escolaridad como en el índice de carencias, y una diferencia de dos porciento en analfabetismo.
datos_grafico <- tabla_brechas %>%
select(TIPO_LOC, Escolaridad_Prom, Indice_Carencia_Prom) %>%
pivot_longer(cols = c(Escolaridad_Prom, Indice_Carencia_Prom),
names_to = "Indicador",
values_to = "Valor") %>%
mutate(Indicador = recode(Indicador,
"Escolaridad_Prom" = "Grado de Escolaridad",
"Indice_Carencia_Prom" = "Índice de Carencias"))
ggplot(datos_grafico, aes(x = TIPO_LOC, y = Valor, fill = TIPO_LOC)) +
geom_bar(stat = "identity", position = "dodge", width = 0.6) +
facet_wrap(~Indicador, scales = "free_y") +
scale_fill_manual(values = c("Cabecera Municipal" = "#1f77b4", "Localidad Rural" = "#ff7f0e")) +
labs(
title = "Contraste de Desarrollo: cabecera vs. Periferia",
subtitle = "Comparación de nivel educativo y acceso a servicios básicos",
x = "",
y = "Promedio",
fill = "Zona"
) +
theme_minimal() +
theme(legend.position = "bottom")
Para validar que la diferencia de medias es significativa estadísticamente se realizó una prueba t-test para diferencia de medias
valor_cabecera_carencia <- datos_comparativo$INDICE_CARENCIA[datos_comparativo$TIPO_LOC == "Cabecera Municipal"]
distribucion_rural_carencia <- datos_comparativo$INDICE_CARENCIA[datos_comparativo$TIPO_LOC == "Localidad Rural"]
# Comparamos si la media de las rurales es distinta al valor exacto de la cabecera
prueba_t <- t.test(distribucion_rural_carencia, mu = valor_cabecera_carencia)
prueba_t
##
## One Sample t-test
##
## data: distribucion_rural_carencia
## t = 9.1998, df = 19, p-value = 1.982e-08
## alternative hypothesis: true mean is not equal to 1
## 95 percent confidence interval:
## 1.811117 2.288883
## sample estimates:
## mean of x
## 2.05
Como se observa, el p-value con un valor menor a 0.05 nos indica que la diferencia de medias sí es estadísticamente significativa, por lo que se puede inferir que en las zonas rurales, a comparación de la cabecera municipal, presentan un mayor rezago educativo y un mayor índice de carencias en la vivienda.
Con todos los resultados presentados, se puede concluir que los niveles de rezago educativo en todo el municipio de Mier y Noriega son alarmantes, pues es notoria la diferencia con las medias nacionales, con promedios de escolaridad que apenas alcanzan el nivel básico.
Asimismo, las carencias básicas (consideradas en este reporte) en calidad de vivienda se presentan en todas las localidades del municipio,, por lo que el proyecto de instalar internet en la zona es necesario.