Antes de iniciar con el análisis, es imprescindible descargar todas las librerías que nos permitirán acceder a herramientas de R:
library(readr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
library(forcats)
library(scales)
##
## Attaching package: 'scales'
## The following object is masked from 'package:readr':
##
## col_factor
data<-read_csv('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.
dataMYN<- data %>%
filter(MUN == "036")
Sabemos que Mier y Noriega tienen el ID 036, por lo que filtramos la base de todo el Estado de Nuevo León sólo a los datos del Municipio 036.
dataMYN <- dataMYN %>%
filter(NOM_LOC != "Total del Municipio")
Quitamos la fila que trae el acumulado de todo el municipio. Es una observación que nos hará ruido en el análisis.
colnames(dataMYN)
## [1] "ENTIDAD" "NOM_ENT" "MUN" "NOM_MUN" "LOC"
## [6] "NOM_LOC" "LONGITUD" "LATITUD" "ALTITUD" "POBTOT"
## [11] "POBFEM" "POBMAS" "P_0A2" "P_0A2_F" "P_0A2_M"
## [16] "P_3YMAS" "P_3YMAS_F" "P_3YMAS_M" "P_5YMAS" "P_5YMAS_F"
## [21] "P_5YMAS_M" "P_12YMAS" "P_12YMAS_F" "P_12YMAS_M" "P_15YMAS"
## [26] "P_15YMAS_F" "P_15YMAS_M" "P_18YMAS" "P_18YMAS_F" "P_18YMAS_M"
## [31] "P_3A5" "P_3A5_F" "P_3A5_M" "P_6A11" "P_6A11_F"
## [36] "P_6A11_M" "P_8A14" "P_8A14_F" "P_8A14_M" "P_12A14"
## [41] "P_12A14_F" "P_12A14_M" "P_15A17" "P_15A17_F" "P_15A17_M"
## [46] "P_18A24" "P_18A24_F" "P_18A24_M" "P_15A49_F" "P_60YMAS"
## [51] "P_60YMAS_F" "P_60YMAS_M" "REL_H_M" "POB0_14" "POB15_64"
## [56] "POB65_MAS" "P_0A4" "P_0A4_F" "P_0A4_M" "P_5A9"
## [61] "P_5A9_F" "P_5A9_M" "P_10A14" "P_10A14_F" "P_10A14_M"
## [66] "P_15A19" "P_15A19_F" "P_15A19_M" "P_20A24" "P_20A24_F"
## [71] "P_20A24_M" "P_25A29" "P_25A29_F" "P_25A29_M" "P_30A34"
## [76] "P_30A34_F" "P_30A34_M" "P_35A39" "P_35A39_F" "P_35A39_M"
## [81] "P_40A44" "P_40A44_F" "P_40A44_M" "P_45A49" "P_45A49_F"
## [86] "P_45A49_M" "P_50A54" "P_50A54_F" "P_50A54_M" "P_55A59"
## [91] "P_55A59_F" "P_55A59_M" "P_60A64" "P_60A64_F" "P_60A64_M"
## [96] "P_65A69" "P_65A69_F" "P_65A69_M" "P_70A74" "P_70A74_F"
## [101] "P_70A74_M" "P_75A79" "P_75A79_F" "P_75A79_M" "P_80A84"
## [106] "P_80A84_F" "P_80A84_M" "P_85YMAS" "P_85YMAS_F" "P_85YMAS_M"
## [111] "PROM_HNV" "PNACENT" "PNACENT_F" "PNACENT_M" "PNACOE"
## [116] "PNACOE_F" "PNACOE_M" "PRES2015" "PRES2015_F" "PRES2015_M"
## [121] "PRESOE15" "PRESOE15_F" "PRESOE15_M" "P3YM_HLI" "P3YM_HLI_F"
## [126] "P3YM_HLI_M" "P3HLINHE" "P3HLINHE_F" "P3HLINHE_M" "P3HLI_HE"
## [131] "P3HLI_HE_F" "P3HLI_HE_M" "P5_HLI" "P5_HLI_NHE" "P5_HLI_HE"
## [136] "PHOG_IND" "POB_AFRO" "POB_AFRO_F" "POB_AFRO_M" "PCON_DISC"
## [141] "PCDISC_MOT" "PCDISC_VIS" "PCDISC_LENG" "PCDISC_AUD" "PCDISC_MOT2"
## [146] "PCDISC_MEN" "PCON_LIMI" "PCLIM_CSB" "PCLIM_VIS" "PCLIM_HACO"
## [151] "PCLIM_OAUD" "PCLIM_MOT2" "PCLIM_RE_CO" "PCLIM_PMEN" "PSIND_LIM"
## [156] "P3A5_NOA" "P3A5_NOA_F" "P3A5_NOA_M" "P6A11_NOA" "P6A11_NOAF"
## [161] "P6A11_NOAM" "P12A14NOA" "P12A14NOAF" "P12A14NOAM" "P15A17A"
## [166] "P15A17A_F" "P15A17A_M" "P18A24A" "P18A24A_F" "P18A24A_M"
## [171] "P8A14AN" "P8A14AN_F" "P8A14AN_M" "P15YM_AN" "P15YM_AN_F"
## [176] "P15YM_AN_M" "P15YM_SE" "P15YM_SE_F" "P15YM_SE_M" "P15PRI_IN"
## [181] "P15PRI_INF" "P15PRI_INM" "P15PRI_CO" "P15PRI_COF" "P15PRI_COM"
## [186] "P15SEC_IN" "P15SEC_INF" "P15SEC_INM" "P15SEC_CO" "P15SEC_COF"
## [191] "P15SEC_COM" "P18YM_PB" "P18YM_PB_F" "P18YM_PB_M" "GRAPROES"
## [196] "GRAPROES_F" "GRAPROES_M" "PEA" "PEA_F" "PEA_M"
## [201] "PE_INAC" "PE_INAC_F" "PE_INAC_M" "POCUPADA" "POCUPADA_F"
## [206] "POCUPADA_M" "PDESOCUP" "PDESOCUP_F" "PDESOCUP_M" "PSINDER"
## [211] "PDER_SS" "PDER_IMSS" "PDER_ISTE" "PDER_ISTEE" "PAFIL_PDOM"
## [216] "PDER_SEGP" "PDER_IMSSB" "PAFIL_IPRIV" "PAFIL_OTRAI" "P12YM_SOLT"
## [221] "P12YM_CASA" "P12YM_SEPA" "PCATOLICA" "PRO_CRIEVA" "POTRAS_REL"
## [226] "PSIN_RELIG" "TOTHOG" "HOGJEF_F" "HOGJEF_M" "POBHOG"
## [231] "PHOGJEF_F" "PHOGJEF_M" "VIVTOT" "TVIVHAB" "TVIVPAR"
## [236] "VIVPAR_HAB" "VIVPARH_CV" "TVIVPARHAB" "VIVPAR_DES" "VIVPAR_UT"
## [241] "OCUPVIVPAR" "PROM_OCUP" "PRO_OCUP_C" "VPH_PISODT" "VPH_PISOTI"
## [246] "VPH_1DOR" "VPH_2YMASD" "VPH_1CUART" "VPH_2CUART" "VPH_3YMASC"
## [251] "VPH_C_ELEC" "VPH_S_ELEC" "VPH_AGUADV" "VPH_AEASP" "VPH_AGUAFV"
## [256] "VPH_TINACO" "VPH_CISTER" "VPH_EXCSA" "VPH_LETR" "VPH_DRENAJ"
## [261] "VPH_NODREN" "VPH_C_SERV" "VPH_NDEAED" "VPH_DSADMA" "VPH_NDACMM"
## [266] "VPH_SNBIEN" "VPH_REFRI" "VPH_LAVAD" "VPH_HMICRO" "VPH_AUTOM"
## [271] "VPH_MOTO" "VPH_BICI" "VPH_RADIO" "VPH_TV" "VPH_PC"
## [276] "VPH_TELEF" "VPH_CEL" "VPH_INTER" "VPH_STVP" "VPH_SPMVPI"
## [281] "VPH_CVJ" "VPH_SINRTV" "VPH_SINLTC" "VPH_SINCINT" "VPH_SINTIC"
## [286] "TAMLOC"
Vemos que Columnas tiene nuestro data set y las comparamos con el diccionario de la página del INEGI que trae una descripción más detallada a qué se refieren.
Variables seleccionadas después de ver el diccionario:
POBTOT = Población total
TOTHOG = Total de hogares
POBFEM = Femenina
POBMAS = Masculina
PCON_DISC = Discapacidad
PHOG_IND = Hogares censales indígenas
PNACOE = Población de otra entidad
PROM_HNV = Promedio de hijos
P15PRI_IN = 15 años o más con primaria incompleta
P15SEC_INM = 15 años o más con secundaria incompleta
GRAPROES = Grado promedio de escolaridad
P15YM_AN = Analfabetismo de 15 años o más
POCUPADA = Población total ocupada
VPH_AGUAFV = Sin agua entubada
VPH_NODREN = Sin drenaje
VPH_INTER = Tienen internet
VPH_NDEAED = Con servicios energía, agua y drenaje
VPH_NDACMM = Viviendas sin automóvil o motocicleta
VPH_SNBIEN = Viviendas sin ningún bien
VPH_SINTIC = Sin TICs
Se eligieron variables demográficas, escolares, de servicios y sociales para el análisis.
dataMYN<- dataMYN %>%
select(NOM_LOC,
TOTHOG,
POBTOT,
P_15YMAS,
POBFEM,
POBMAS,
PCON_DISC,
PHOG_IND,
PNACOE,
PROM_HNV,
P15PRI_IN,
P15SEC_INM,
GRAPROES,
P15YM_AN,
POCUPADA,
VPH_NDEAED,
VPH_NDACMM,
VPH_SNBIEN,
VPH_SINTIC,
VPH_AGUAFV,
VPH_NODREN,
VPH_INTER,
)
dataMYN[dataMYN == "*"] <- NA
Quitamos todos los * y los reemplazamos por NA. Son prácticas del análisis de datos.
str(dataMYN)
## tibble [27 × 22] (S3: tbl_df/tbl/data.frame)
## $ NOM_LOC : chr [1:27] "Mier y Noriega" "La Cardona" "Cerros Blancos" "Dolores" ...
## $ TOTHOG : chr [1:27] "335" "131" "122" "142" ...
## $ POBTOT : num [1:27] 1180 479 586 549 206 215 45 208 124 865 ...
## $ P_15YMAS : chr [1:27] "840" "323" "367" "382" ...
## $ POBFEM : chr [1:27] "604" "232" "297" "277" ...
## $ POBMAS : chr [1:27] "576" "247" "289" "272" ...
## $ PCON_DISC : chr [1:27] "59" "20" "25" "56" ...
## $ PHOG_IND : chr [1:27] "8" "0" "0" "5" ...
## $ PNACOE : chr [1:27] "140" "36" "13" "21" ...
## $ PROM_HNV : chr [1:27] "3.03" "3.84" "3.32" "2.91" ...
## $ P15PRI_IN : chr [1:27] "143" "88" "85" "67" ...
## $ P15SEC_INM: chr [1:27] "10" "11" "15" "7" ...
## $ GRAPROES : chr [1:27] "7.27" "5.3" "6.65" "7.46" ...
## $ P15YM_AN : chr [1:27] "83" "77" "36" "21" ...
## $ POCUPADA : chr [1:27] "275" "136" "224" "183" ...
## $ VPH_NDEAED: chr [1:27] "3" "0" "1" "2" ...
## $ VPH_NDACMM: chr [1:27] "117" "74" "46" "54" ...
## $ VPH_SNBIEN: chr [1:27] "20" "11" "1" "3" ...
## $ VPH_SINTIC: chr [1:27] "23" "22" "4" "5" ...
## $ VPH_AGUAFV: chr [1:27] "13" "13" "5" "23" ...
## $ VPH_NODREN: chr [1:27] "49" "15" "98" "112" ...
## $ VPH_INTER : chr [1:27] "123" "0" "1" "3" ...
Después de ver una descirpción del tipo de datos que tenemos, nos damos cuenta que, aunque todas las variables deberían ser numéricas, SOLO una la es en nuestro dataset: POBTOT. Por lo que, antes de proceder con el análisis, debemos hacerlas numéricas o R no entenderá las instrucciones que le pidamos (al momento de sacar medias, operaciones algebraicas, etc.)
dataMYN$P_15YMAS<- as.numeric(dataMYN$P_15YMAS)
dataMYN$POBFEM<- as.numeric(dataMYN$POBFEM)
dataMYN$POBMAS<- as.numeric(dataMYN$POBMAS)
dataMYN$PCON_DISC<- as.numeric(dataMYN$PCON_DISC)
dataMYN$PHOG_IND<- as.numeric(dataMYN$PHOG_IND)
dataMYN$PNACOE<- as.numeric(dataMYN$PNACOE)
dataMYN$PROM_HNV<- as.numeric(dataMYN$PROM_HNV)
dataMYN$P15PRI_IN<- as.numeric(dataMYN$P15PRI_IN)
dataMYN$P15SEC_INM<- as.numeric(dataMYN$P15SEC_INM)
dataMYN$GRAPROES<- as.numeric(dataMYN$GRAPROES)
dataMYN$P15YM_AN<- as.numeric(dataMYN$P15YM_AN)
dataMYN$POCUPADA<- as.numeric(dataMYN$POCUPADA)
dataMYN$VPH_NDEAED<- as.numeric(dataMYN$VPH_NDEAED)
dataMYN$VPH_NDACMM<- as.numeric(dataMYN$VPH_NDACMM)
dataMYN$VPH_SNBIEN<- as.numeric(dataMYN$VPH_SNBIEN)
dataMYN$VPH_SINTIC<- as.numeric(dataMYN$VPH_SINTIC)
dataMYN$VPH_AGUAFV<- as.numeric(dataMYN$VPH_AGUAFV)
dataMYN$VPH_NODREN<- as.numeric(dataMYN$VPH_NODREN)
dataMYN$VPH_INTER<- as.numeric(dataMYN$VPH_INTER)
dataMYN$TOTHOG<- as.numeric(dataMYN$TOTHOG)
Ahora, comprobaremos que cambiamos todas exitosamente:
str(dataMYN)
## tibble [27 × 22] (S3: tbl_df/tbl/data.frame)
## $ NOM_LOC : chr [1:27] "Mier y Noriega" "La Cardona" "Cerros Blancos" "Dolores" ...
## $ TOTHOG : num [1:27] 335 131 122 142 54 51 12 43 22 199 ...
## $ POBTOT : num [1:27] 1180 479 586 549 206 215 45 208 124 865 ...
## $ P_15YMAS : num [1:27] 840 323 367 382 149 148 30 135 73 500 ...
## $ POBFEM : num [1:27] 604 232 297 277 91 108 21 93 57 447 ...
## $ POBMAS : num [1:27] 576 247 289 272 115 107 24 115 67 418 ...
## $ PCON_DISC : num [1:27] 59 20 25 56 5 13 3 9 11 44 ...
## $ PHOG_IND : num [1:27] 8 0 0 5 0 0 0 0 0 0 ...
## $ PNACOE : num [1:27] 140 36 13 21 12 9 11 2 3 33 ...
## $ PROM_HNV : num [1:27] 3.03 3.84 3.32 2.91 3.59 3.85 3.67 3.51 3.08 2.93 ...
## $ P15PRI_IN : num [1:27] 143 88 85 67 43 42 8 23 12 106 ...
## $ P15SEC_INM: num [1:27] 10 11 15 7 2 3 2 3 4 20 ...
## $ GRAPROES : num [1:27] 7.27 5.3 6.65 7.46 5.44 6.51 6.13 5.87 6.58 6.71 ...
## $ P15YM_AN : num [1:27] 83 77 36 21 18 11 1 12 5 43 ...
## $ POCUPADA : num [1:27] 275 136 224 183 16 65 14 57 31 172 ...
## $ VPH_NDEAED: num [1:27] 3 0 1 2 0 0 0 0 0 2 ...
## $ VPH_NDACMM: num [1:27] 117 74 46 54 19 16 3 14 6 93 ...
## $ VPH_SNBIEN: num [1:27] 20 11 1 3 1 1 0 1 1 4 ...
## $ VPH_SINTIC: num [1:27] 23 22 4 5 6 4 0 1 1 9 ...
## $ VPH_AGUAFV: num [1:27] 13 13 5 23 8 1 12 9 22 71 ...
## $ VPH_NODREN: num [1:27] 49 15 98 112 38 34 1 43 22 131 ...
## $ VPH_INTER : num [1:27] 123 0 1 3 0 1 1 0 0 20 ...
¡Listo! Todas están en su tipo de dato correspondiente.
pobtot_municipio <- sum(dataMYN$POBTOT, na.rm = TRUE)
cat("La población total del municipio es:", (pobtot_municipio))
## La población total del municipio es: 7671
Analfabetismo Si sabemos que P15YM_AN es el porcentaje de analfabetismo de 15 años o más, podemos calcular el número de personas analfabetas en el municipio utilizando la población total de personas de 15 años o más (P_15YMAS). OJO: No se debe de calcular con la variable de población total.
dataMYN <- dataMYN %>%
mutate(tasa_analfabeta = (P15YM_AN / P_15YMAS) * 100)
Grado promedio de escolaridad. Para sacar promedio de escolaridad, basta con una sencilla fórmula de medias:
GRAPROES_MUN <- mean(dataMYN$GRAPROES, na.rm = TRUE)
cat("El grado promedio de escolaridad es:", (GRAPROES_MUN))
## El grado promedio de escolaridad es: 6.210952
Ahora, la indicación nos pide sacar el rezago educativo, no obstante, no tenemos una variable que nos diga per se rezago educativo. Pero, podemos construirlo: 1. Usando el grado promedio de escolaridad. Más rezago = menor GRAPROES.
Se prefiere tasa en vez de número de personas analfabetas porque las localidades más grandes, tendrán más personas (por densidad poblacional) por ende puede sacar resultados sesgados. Como la tasa ya lo dividió entre el número de habitantes, es mejor usar esa.
Es importante destacar que, grado promedio está en años y tasa es una proporción. Por lo que, para construir el indicador, deben de estar en la misma escala.
Antes de proceder, es importante destacar por qué solo se tomarán esas dos variables siendo que hay otras como primaria no terminada o secundaria o grado promedio de escolaridad dentro de la base de datos. Aunque van relacionadas, muestran correlación con las que usamos, entonces para evitar problemas estadísticos y sacar resultados espurios, solo usaremos estas dos.
Como se dijo, se deben primero pasar a la primera escala ya que cada una de las variables nos dice cosas distintas.
dataMYN <- dataMYN %>%
mutate(
# primero estandarizaremos: media 0 y sd 1.
z_analf = as.numeric(scale(tasa_analfabeta)),
z_esco = as.numeric(scale(GRAPROES)),
# Ahora para sacar rezago, debemos entender que alto significa cosas diferentes en ambas variables, por lo que, para que ambas vayan en la misma dirección, restamos GRAPROES a analfabetismo.
rezago_z = z_analf - z_esco,
# Finalmente, reescalamos 0–100 para interpretarlo fácil en la parte de análisis de datos.
rezago_0_100 = 100 * (rezago_z - min(rezago_z, na.rm = TRUE)) /
(max(rezago_z, na.rm = TRUE) - min(rezago_z, na.rm = TRUE))
)
La interpretación de las dos columnas nuevas del indicador de rezago es la siguiente:
Si rezago_z es menor a 0, significa que la localidad tiene un rezago educativo menor al promedio del municipio.Si es mayor, significa que tiene un rezago educativo mayor al promedio del municipio.
Si rezago_0_100 es cercano a 0, significa que la localidad tiene un rezago educativo bajo, mientras que si es cercano a 100, significa que tiene un rezago educativo alto.
Tabla de rezago educativo Crea una tabla ordenada que muestre las localidades ordenadas por mayor rezago educativo.
tabla_rezago <- dataMYN %>%
select(NOM_LOC, GRAPROES, tasa_analfabeta, rezago_0_100) %>%
arrange(desc(rezago_0_100)) %>%
mutate(rank_rezago = row_number()) %>%
relocate(rank_rezago, .before = NOM_LOC)
tabla_rezago
## # A tibble: 27 × 5
## rank_rezago NOM_LOC GRAPROES tasa_analfabeta rezago_0_100
## <int> <chr> <dbl> <dbl> <dbl>
## 1 1 La Cardona 5.3 23.8 100
## 2 2 Localidades de dos viviend… 4.42 16.7 99.4
## 3 3 San Isidro 5.69 22.4 87.4
## 4 4 La Presita de Cerros Blanc… 5.83 20.5 78.6
## 5 5 El Gallito 5.44 12.1 63.7
## 6 6 San José de Cuatro Caminos 5.98 13.6 56.0
## 7 7 Tapona Moreña 6.27 14.6 52.2
## 8 8 San José de Medina (Rancho… 6.13 12.5 49.5
## 9 9 San Elías 6.11 11.1 46.0
## 10 10 Lagunita de Taberna 5.87 8.89 45.1
## # ℹ 17 more rows
¿Qué enseña esta tabla? Nos muestra los cuatro indicadores pertinentes para el rezago educativo. Está ordenado de mayor a menor en base a la variable “rezago_0_100” (ya fue explicada cómo leerla). Como se ve, hay varias localidades con NA y es por que no se tiene datos de esas localidades en cuanto a grado promedio de escolaridad o analfabetismo para sacar el índice de rezago.
Para el siguiente gráfico de barras, se omiten esas localidades:
dataMYN %>%
select(NOM_LOC, rezago_0_100) %>%
filter(!is.na(rezago_0_100)) %>%
mutate(NOM_LOC = fct_reorder(NOM_LOC, rezago_0_100)) %>%
ggplot(aes(x = NOM_LOC, y = rezago_0_100, fill = rezago_0_100)) +
geom_col() +
coord_flip() +
scale_fill_gradient(low = "lightblue", high = "darkred") +
labs(
title = "Rezago educativo (0–100) por localidad",
x = NULL, y = "Rezago (0–100)", fill = "Rezago"
) +
theme_minimal(base_size = 12)
Observamos que La Cardona es la localidad que presenta el mayor rezago educativo, seguida por las localidades de Dos Viviendas y San Isidro.
Es importante destacar que Dos Viviendas cuenta con una densidad poblacional muy baja, por lo que el peso relativo de cada viviendas en los indicadores es considerablemente mayor. En cambio, San Isidro y La Cardona tienen más de 400 habitantes, lo que hace que los datos correspondientes a estas localidades sean más representativos y estadísticamente más confiables.
Por lo tanto, al centrarnos específicamente en San Isidro y La Cardona, y a partir de la información presentada en la Tabla 1, observamos que ambas localidades registran altas tasas de analfabetismo.
No obstante, San Isidro presenta un promedio de escolaridad más elevado, lo que sugiere que, aunque enfrenta un rezago importante, mantiene mejores niveles educativos promedio en comparación con La Cardona.
Esto indica que, en el caso de San Isidro, el rezago se explica principalmente por la persistencia del analfabetismo, mientras que en La Cardona el rezago es de carácter más estructural, ya que combina tanto altos niveles de analfabetismo como bajos niveles de escolaridad promedio.
Determina el porcentaje de viviendas que no disponen de: AGUA ENTUBADA
dataMYN <- dataMYN %>%
mutate(tasa_sin_agua = (VPH_AGUAFV/TOTHOG ) * 100)
Esto nos da el porcentaje de hogares que no tienen agua en su vivienda respecto al total de hogares (TOTHOG) en cada localidad.
Drenaje
dataMYN <- dataMYN %>%
mutate(tasa_sin_drenaje = (VPH_NODREN/TOTHOG ) * 100)
Esto nos da el porcentaje de hogares que no tienen drenaje en su vivienda respecto al total de hogares (TOTHOG) en cada localidad.
Internet El ITER sólo nos da las viviendas que TIENEN wifi, por lo que, primero debemos de sacar las que NO lo tienen:
dataMYN <- dataMYN %>%
mutate(VPH_sin_wifi = (TOTHOG - VPH_INTER))
Ahora sí podemos sacar la tasa de viviendas sin wifi.
dataMYN <- dataMYN %>%
mutate(tasa_sin_wifi = (VPH_sin_wifi/TOTHOG ) * 100)
Esto nos da el porcentaje de hogares que no tienen wifi en su vivienda respecto al total de hogares (TOTHOG) en cada localidad.
dataMYN <- dataMYN %>%
mutate(
indice_carencia_servicios = rowMeans(
select(., tasa_sin_wifi, tasa_sin_drenaje, tasa_sin_agua),
na.rm = TRUE
)
)
Calculamos el Índice de Carencia de Servicios como el promedio de tres porcentajes: viviendas sin internet, sin drenaje y sin agua entubada. Este índice resume, en una sola medida (0–100), el nivel promedio de carencias de servicios básicos en cada localidad. Valores más altos indican mayor carencia y, por tanto, mayor vulnerabilidad en acceso a servicios.
dataMYN %>%
filter(!is.na(indice_carencia_servicios)) %>%
mutate(NOM_LOC = fct_reorder(NOM_LOC, indice_carencia_servicios)) %>%
ggplot(aes(x = NOM_LOC,
y = indice_carencia_servicios,
fill = indice_carencia_servicios)) +
geom_col() +
coord_flip() +
scale_fill_gradient(low = "lightblue", high = "darkred") +
labs(title = "Índice de Carencia de Servicios Básicos",
x = NULL,
y = "Índice (0–100)",
fill = "Carencia") +
theme_minimal(base_size = 12)
Es importante señalar que San José de Medina y Localidades de Dos Viviendas cuentan con una población y un número total de viviendas muy reducidos. Por ello, al interpretar la gráfica, debe considerarse esta característica. Si bien el índice se construye a partir de proporciones —lo que en principio evita un sesgo derivado del tamaño poblacional—, en localidades con muy pocas viviendas cada observación tiene un peso relativo mayor. Esto puede generar valores extremos y una mayor variabilidad en el indicador.
En el caso de Las Mesas de San Juan, el índice alcanza 100 puntos, lo que indica que ninguna de sus viviendas cuenta con los tres servicios básicos considerados en la construcción del indicador.
En contraste, las localidades ubicadas al final del ranking presentan niveles de carencia considerablemente menores. La diferencia entre los valores extremos del índice es cercana a 70 puntos en una escala de 0 a 100, lo que evidencia una brecha sustancial en el acceso a servicios básicos entre localidades que pertenecen al mismo municipio.
Por ello, resulta pertinente profundizar en un análisis comparativo entre la cabecera municipal y las localidades rurales, con el objetivo de identificar posibles patrones de desigualdad territorial en el acceso a servicios básicos.
Crea una nueva variable categórica que distinga a la “Cabecera Municipal” del resto de las localidades del municipio.
dataMYN <- dataMYN %>%
mutate(
Cabecera = if_else(
NOM_LOC == "Mier y Noriega",
"Si",
"No"
)
)
Se construyó una variable dicotómica (dummy) que identifica a la cabecera municipal. Esta variable toma el valor “Sí” cuando la localidad corresponde a Mier y Noriega y “No” en caso contrario.
comparacion_medias <- dataMYN %>%
group_by(Cabecera) %>% ## Agrupa las filas según la variable dicotomica construida de si es cabecera o no
summarise( # Se hace una tabla resumen de tres medidas: media del índice de rezago educativo y media del índice de carencias de servicios
n = n(),
media_rezago = mean(rezago_0_100, na.rm = TRUE),
media_carencia = mean(indice_carencia_servicios, na.rm = TRUE),
.groups = "drop"
)
comparacion_medias
## # A tibble: 2 × 4
## Cabecera n media_rezago media_carencia
## <chr> <int> <dbl> <dbl>
## 1 No 26 44.8 64.5
## 2 Si 1 16.6 27.3
Se observa una marcada desigualdad territorial entre la cabecera y el resto de las localidades. La cabecera registra niveles considerablemente menores de rezago educativo (16.62 frente a 44.81) y de carencia de servicios (27.26 frente a 64.50), lo que sugiere una concentración relativa de mejores condiciones socioeducativas y de infraestructura básica en el centro municipal. Esta diferencia refleja un patrón de desigualdad intra-municipal, donde las comunidades periféricas presentan mayores niveles de vulnerabilidad.
El presente análisis permitió construir una radiografía territorial de las condiciones educativas y de acceso a servicios básicos en el municipio de Mier y Noriega, Nuevo León, a partir de información del Censo de Población y Vivienda 2020 (INEGI).
En primer lugar, la construcción de un índice de rezago educativo, basado en la tasa de analfabetismo y el grado promedio de escolaridad previamente estandarizados, evidenció una marcada heterogeneidad entre localidades. Se identificaron comunidades con niveles más altos de rezago, destacando casos como La Cardona y otras localidades rurales. Si bien algunas localidades pequeñas presentan valores altos, es importante considerar que en poblaciones con muy pocas viviendas los indicadores tienden a ser más volátiles —aunque no necesariamente sesgados— debido al mayor peso relativo de cada observación.
En segundo lugar, el Índice de Carencia de Servicios Básicos, calculado como el promedio de las tasas de viviendas sin agua entubada, sin drenaje y sin acceso a internet, permite encontrar zonas con mayores limitaciones en infraestructura básica. Nuevamente, hay comunidades que concentran niveles más elevados de carencia.
El análisis comparativo entre la cabecera municipal y el resto de las localidades confirma la existencia de una brecha significativa entre municipios. La cabecera registra niveles menores tanto de rezago educativo como de carencia de servicios básicos. Estos resultados muestra que hay una mejoría relativa en las condiciones socioeducativas y de infraestructura del centro municipal, mientras que las comunidades periféricas enfrentan mayores niveles de vulnerabilidad.
Este hallazgo es importante para la formulación de políticas públicas, ya que demuestra que, incluso dentro de un mismo municipio, no es posible generalizar las condiciones de bienestar o carencia. Ahora, esto no significa que la cabecera no debe de ser atendida. Presenta una índice de rezago de 17 puntos y de carencias de 27, hay trabajo que hacer, pero las proporciones de esfuerzos y recursos debe de ser diferenciada.
Finalmente, es importante señalar que el estudio se basa en información agregada a nivel de localidad y en la construcción de indicadores relativamente simples. Por lo tanto, los resultados deben interpretarse como una aproximación descriptiva que identifica patrones generales de desigualdad territorial, más que como estimaciones de carácter causal.
Este estudio resulta especialmente relevante para el trabajo de campo que se realizará en el municipio. Los hallazgos derivados del análisis del Censo 2020 permiten identificar con mayor precisión las localidades que enfrentan mayores carencias en términos de rezago educativo y falta de servicios básicos. Asimismo, el análisis evidencia la existencia de brechas de información en algunas localidades, donde la disponibilidad de información para generar los indicadores es limitada, lo que genera asimetrías que pueden afectar el diseño de políticas públicas. La información que se recolecte en campo será fundamental para complementar estos hallazgos cuantitativos, profundizar en las dinámicas locales y diseñar intervenciones más efectivas, focalizadas y orientadas a visibilizar a las comunidades que presentan mayores niveles de vulnerabilidad.
Instituto Nacional de Estadística y Geografía. (2020). Principales resultados por localidad (ITER) del Censo de Población y Vivienda 2020. INEGI.https://www.inegi.org.mx/programas/ccpv/2020/#microdatos