Utilizando el Censo del INEGI 2020, se realizará un análisis inicial de la estructura poblacional, educativa y de vivienda en el municipio de Mier y Noriega, Nuevo León. El objetivo es identificar las localidades con mayor rezago educativo y carencias en servicios básicos, así como comparar la cabecera municipal con las demas locallidades. Para hacer esto se seleccionaron algunas de las variables que nos pueden servir como indicadores, por ejemplo, los serivicios de la vivienda o el nivel de analfabetismo.
Antes de realizar cualquier avance es necesario cargar las librerias que seran utilizadas:
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(tidyr)
library(ggplot2)
library(knitr)
La lectura de la base del censo poblacional contiene a todos los municipios de estado de Nuevo León. Utilizamos un filtro para crear una base que solo contenga las localidades del municipio de Mier y Noriega, pues es la población de interes.
#Lectura de la base de datos
base <- read.csv("C:/Users/lepe2/OneDrive/Documentos/Documents/semestre 8/analisis de decisiones/iter_19_2020_csv/ITER_19CSV20.csv")
#Filtramos la base de datos para quedarnos solo con el municipio de Mier y Noriega
MyN <- base[base$NOM_MUN == "Mier y Noriega", ]
Gracias a este filtro podemos darnos cuenta que el municipio de Mier y Noriega cuenta con un total de 7652 habitantes, distribuidos en 25 localidades, siendo la cabecera municipal la localidad de Mier y Noriega con un total de 3487 habitantes. Es posible observar tambien que el numero de habitantes por localidad puede ser muy bajo. Ademas, hay ciertas variables que no cuentan con el registro completo de datos, por lo que es necesario realizar una limpieza de la base de datos para eliminar los valores no encontrados.
A continuación se presenta el dicionario de datos de las variables seleccionadas para el análisis.
Población Total (POBTOT): Total de personas que residen habitualmente en el país,la entidad federativa, el municipio o la demarcación territorial y la localidad. Incluye la estimación del número de personas en viviendas particulares sin información de ocupantes. Incluye a la población que no especificó su edad.
Población de 15 años y más analfabeta (P15YM_AN):Personas de 15 a 130 años de edad que no saben leer y escribir un recado.
Ocupación (POCUPADA):Personas de 12 a 130 años de edad que trabajaron o que no trabajaron, pero sí tenían trabajo en la semana de referencia
Servicios de Vivienda (VPH_C_SERV):Viviendas particulares habitadas que tienen energía eléctrica, agua entubada dentro de la vivienda o sólo en el patio o terreno y drenaje conectado a la red pública;una fosa séptica o tanque séptico (biodigestor); una tubería que va a dar a una barranca o grieta, río, lago o mar. Comprende las viviendas particulares para las que se captaron las características de la vivienda, clasificadas como: casa única en el terreno; casa que comparte terreno con otra(s); casa dúplex; departamento en edificio; vivienda en vecindad o cuartería; vivienda en cuarto de azotea de un edificio y no especificado de vivienda particular. Incluye a las viviendas particulares sin información de ocupantes
Población que habla lengua indigena y español (P3HLI_HE): Personas de 3 a 130 años de edad que hablan alguna lengua indígena y además hablan español.
Nombre de la localidad (NOM_LOC): Nombre con el que se reconoce a la localidad dado por la ley o la costumbre.
Población con discapacidad (PCON_DISC): Personas que realizan con mucha dificultad o no pueden hacer al menos una de las siguientes actividades: ver, aun usando lentes; oír, aun usando aparato auditivo; caminar, subir o bajar; recordar o concentrarse; bañarse, vestirse o comer; hablar o comunicarse.
Grado promedio de escolaridad (GRAPROES): Resultado de dividir el monto de grados escolares aprobados por las personas de 15 a 130 años de edad entre las personas del mismo grupo de edad. Excluye a las personas que no especificaron los grados aprobados.
Población económicamente inactiva (PE_INAC): Personas de 12 a 130 años de edad pensionadas o jubiladas; estudiantes; dedicadas a los quehaceres del hogar; están incapacitadas permanentemente para trabajar; o no trabajan.
Viviendas con tinaco (VPH_TINACO): Viviendas particulares habitadas que tienen tinaco. Comprende las viviendas particulares para las que se captaron las características de la vivienda, clasificadas como: casa única en el terreno; casa que comparte terreno con otra(s); casa dúplex; departamento en edificio; vivienda en vecindad o cuartería; vivienda en cuarto de azotea de un edificio y no especificado de vivienda particular. Incluye a las viviendas particulares sin información de ocupantes.
Población no afiliada a ningún sistema de salud (PSINDER): Total de personas que no están afiliadas a servicios médicos en ninguna institución pública o privada
Viviendas que no disponen de agua entubada (VPH_AGUAFV): Viviendas particulares habitadas que no tienen disponibilidad de agua entubada dentro de la vivienda o sólo en el patio o terreno
Viviendas que no disponen de drenaje (VPH_NODREN): Viviendas particulares habitadas que no tienen drenaje.
Viviendas que cuentan con Internet (VPH_INTER): Viviendas particulares habitadas que tienen Internet.
Para poder trabajar con dichas variables es necesario realizar la limpieza de datos cambiando todos los * a NA, mutando las variables a numericas, y filtrando los valores de NA para quedarnos solo con los datos completos.
attach(MyN)
#Creamos el dataframe con las variables de interés
variables.seleccionadas <- data.frame(POBTOT, P15YM_AN, POCUPADA, VPH_C_SERV, P3HLI_HE, PCON_DISC, GRAPROES, PE_INAC, PSINDER, VPH_TINACO, VPH_AGUAFV, VPH_NODREN, VPH_INTER, NOM_LOC )
#Convertimos los valores no encontrados a NA
variables.seleccionadas$POBTOT[variables.seleccionadas$POBTOT == "*"] <- NA
variables.seleccionadas$P15YM_AN[variables.seleccionadas$P15YM_AN == "*"] <- NA
variables.seleccionadas$POCUPADA[variables.seleccionadas$POCUPADA == "*"] <- NA
variables.seleccionadas$VPH_C_SERV[variables.seleccionadas$VPH_C_SERV == "*"] <- NA
variables.seleccionadas$P3HLI_HE[variables.seleccionadas$P3HLI_HE == "*"] <- NA
variables.seleccionadas$PCON_DISC[variables.seleccionadas$PCON_DISC == "*"] <- NA
variables.seleccionadas$GRAPROES[variables.seleccionadas$GRAPROES == "*"] <- NA
variables.seleccionadas$PE_INAC[variables.seleccionadas$PE_INAC == "*"] <- NA
variables.seleccionadas$PSINDER[variables.seleccionadas$PSINDER == "*"] <- NA
variables.seleccionadas$VPH_TINACO[variables.seleccionadas$VPH_TINACO == "*"] <- NA
variables.seleccionadas$VPH_AGUAFV[variables.seleccionadas$VPH_AGUAFV == "*"] <- NA
variables.seleccionadas$VPH_NODREN[variables.seleccionadas$VPH_NODREN == "*"] <- NA
variables.seleccionadas$VPH_INTER[variables.seleccionadas$VPH_INTER == "*"] <- NA
#Mutamos las variables a númericas
baseNA <- variables.seleccionadas %>%
mutate(across(
c(POBTOT, P15YM_AN, POCUPADA, VPH_C_SERV, P3HLI_HE, PCON_DISC, GRAPROES, PE_INAC, PSINDER, VPH_TINACO, VPH_AGUAFV, VPH_NODREN, VPH_INTER),
as.numeric
))
#Filtramos los valores de NA
base.limpia <- drop_na(baseNA)
Después de realizar este proceso la “base limpia” cuenta 22 variables y solo 22 observaciones. Hay que tomar en cuenta que dentro de estas observaciones estan tambien las localidades de 1 o 2 viviendas.
Población total: 7652 de habitantes en el municipio de Mier y Noriega
#Para calcular el porcentaje se divide el número de personas analfabetas entre la población total y se multiplica por 100 para obtener el porcentaje
base.limpia <- base.limpia %>%
mutate(Analfabetismo = (P15YM_AN / POBTOT) * 100)
Los porcentajes por si solos parecen bajos, sin embargo, debido a la baja cantidad de habitantes, igual puede ser un tema de interes. Por ejemplo en La Cardona donde 77 de las 479 personas que viven ahí son analfabetas, la habilidad de esas 77 personas de poder o no leer y/o recibir un recado puede tener un gran impacto en la población.
Creamos una tabla ordenada que muestre las localidades ordenadas por mayor rezago educativo.
#Ordenamos la tabla por el grado promedio de escolaridad de mayor a menor
base.limpia %>%
arrange(desc(GRAPROES)) %>%
select(NOM_LOC, GRAPROES, Analfabetismo) %>%
filter(NOM_LOC != "Total del Municipio") %>% # Filtra las observaciones que no corresponden a localidades específicas
filter(NOM_LOC != "Localidades de dos viviendas") %>%
filter(NOM_LOC != "Localidades de una vivienda") %>%
head(10)
## NOM_LOC GRAPROES Analfabetismo
## 1 San Rafael de los Martínez 7.47 4.261796
## 2 Dolores 7.46 3.825137
## 3 Mier y Noriega 7.27 7.033898
## 4 San Antonio de Alamitos 6.80 4.126214
## 5 Las Palomas (Lajillas) 6.71 4.971098
## 6 Cerros Blancos 6.65 6.143345
## 7 El Refugio de Cerros Blancos 6.64 7.532957
## 8 Las Mesas de San Juan 6.58 4.032258
## 9 Jesús María del Terrero (El Lindero) 6.51 5.116279
## 10 Tapona Moreña 6.27 9.826590
Esta tabla nos permite observar en que localidades hay mas rezago educativo, al mismo tiempo que podemos observar como se relaciona con el porcentaje de analfabetismo. Una hipotesis es que a mayor rezago educativo mayor el porcentaje de analfabetismo, sin embargo, en la tabla se puede observar que no hay una correlación directa entre estas variables pues aún dentro de las tres localidades con mayor grado promedio de escolaridad existe un porcentaje alto de analfabetismo.
Para determinar el porcentaje de viviendas que no cuentan con drenaje, agua entubada y/o internet se utilizan las siguientes variables: VPH_AGUAFV, VPH_NODREN, VPH_INTER. Y se realiza el mismo procedimiento que con el grado de escolaridad. En este caso tanto el agua entubada como el drenaje ya contemplan las viviendas que NO cuentan con estos servicios, por lo que no es necesario realizar ningún cálculo adicional. En el caso del internet hay que calcular su complemento.
base.limpia <- base.limpia %>%
mutate(No.Agua = (VPH_AGUAFV / POBTOT) * 100)%>%
mutate(No.Drenaje = (VPH_NODREN / POBTOT) * 100)%>%
mutate(Escolaridad = (GRAPROES/ POBTOT) * 100)%>%
mutate(No.Internet = 100 - (VPH_INTER / POBTOT) * 100)
base.limpia %>%
arrange(desc(Escolaridad)) %>%
select(NOM_LOC, Escolaridad, No.Agua, No.Drenaje, No.Internet) %>%
filter(NOM_LOC != "Total del Municipio") %>% # Filtra las observaciones que no corresponden a localidades específicas
filter(NOM_LOC != "Localidades de dos viviendas") %>%
filter(NOM_LOC != "Localidades de una vivienda") %>%
head(10)
## NOM_LOC Escolaridad No.Agua No.Drenaje
## 1 San José de Medina (Rancho de Abajo) 43.785714 7.1428571 21.428571
## 2 San Elías 20.366667 20.0000000 6.666667
## 3 La Joya del Zacate 13.622222 26.6666667 2.222222
## 4 San José de Cuatro Caminos 7.119048 1.1904762 0.000000
## 5 Las Mesas de San Juan 5.306452 17.7419355 17.741935
## 6 Jesús María del Terrero (El Lindero) 3.027907 0.4651163 15.813953
## 7 Lagunita de Taberna 2.822115 4.3269231 20.673077
## 8 El Gallito 2.640777 3.8834951 18.446602
## 9 San Antonio de Alamitos 1.650485 0.7281553 13.349515
## 10 San Isidro 1.374396 18.5990338 8.212560
## No.Internet
## 1 100.00000
## 2 100.00000
## 3 97.77778
## 4 100.00000
## 5 100.00000
## 6 99.53488
## 7 100.00000
## 8 100.00000
## 9 95.14563
## 10 99.03382
Despues de ver los resultados es posible observar que donde existe mayor carencia es en la disponibilidad al Internet, pues casi ninguna vivienda cuenta con eso. En el caso del agua entubada y el drenje, sucede lo mismo con con el analfabetismo.
Para entender mejor el tema de las carencias, se realiza un indice que contemple estas tres variables y ayude a determinar en que localidades hay mas rezago.
#Primero se realiza el promedio de tales carencias
base.limpia <- base.limpia %>%
mutate(Indice.Carencias = (No.Agua + No.Drenaje + No.Internet) / 3)
#Luego se crea una variable binaria que indique si la localidad se encuentra dentro del humbral, considerando que si el índice de carencias es mayor o igual a 70 se considera que la localidad tiene carencias, y si es menor a 70 se considera que no tiene carencias.
base.limpia <- base.limpia %>%
mutate(indice_binario = if_else(Indice.Carencias >= 40, 1, 0))
base.limpia %>%
filter(indice_binario == 1) %>% # Filtra solo los 1
select(NOM_LOC, indice_binario) %>%
filter(NOM_LOC != "Total del Municipio") %>% # Filtra las observaciones que no corresponden a localidades específicas
filter(NOM_LOC != "Localidades de dos viviendas") %>%
filter(NOM_LOC != "Localidades de una vivienda")
## NOM_LOC indice_binario
## 1 Dolores 1
## 2 El Gallito 1
## 3 La Joya del Zacate 1
## 4 Lagunita de Taberna 1
## 5 Las Mesas de San Juan 1
## 6 Las Palomas (Lajillas) 1
## 7 La Presita de Cerros Blancos (La Presita) 1
## 8 El Refugio de Cerros Blancos 1
## 9 San Elías 1
## 10 San Isidro 1
## 11 San José de Medina (Rancho de Abajo) 1
## 12 Tapona Moreña 1
Es importante considerar que el porcentaje de carencia de todas las localidades es muy parecido, por lo que deberiamos de considerar mas variables para poder tener una mejor idea de que sectores son los mas rezagados. Otro detalle es que el humbral que se utilizo para determinar si una localidad tiene carencias o no es un valor arbitrario, por lo que se podria considerar otro valor dependiendo del contexto y de las necesidades del análisis.
Por ultimo, se realiza un análisis comparativo entre la cabecera municipal y las demas localidades, pues en teoría, la cabecera municipal debería de tener menos carencias que el resto. Para esto se crea una variable binaria que indique si la localidad es la cabecera municipal o no.
base.limpia <- base.limpia %>%
mutate(Cabecera = if_else(NOM_LOC == "Mier y Noriega", "Cabecera", "NoCabecera"))
Es posible observar la diferencia entre la cabecera municipal y el promedio del resto de las localidades
base.limpia %>%
pivot_longer(cols = starts_with("Indice.Carencias"), names_to = "variable", values_to = "valor") %>%
ggplot(aes(x = variable, y = valor, fill = Cabecera)) +
geom_col(position = "dodge") +
labs(title = "Comparación de medias: Cabecera vs Comunidades",
x = "Indicador", y = "Media (%)")
En el grafico se puede observar que la cabecera municipal, en este caso Mier y Noriega, cuenta con un indice de carencias menor al resto de las localidades. Sin embargo, en este indice van agrupadas las tres variables por lo que habria que analizar por separado cada una de ellas para determinar cual es la problematica que existe o si ninguna de estas tres es un problema y el reto se encuentra en otros factores. De igual manera, todas las localidades se agruparon en “NoCabecera”, lo cual puede ser problematico mas adelante, ya que no es lo mismo considerar una localidad con 586 como lo es Cerros Blancos, a una con 45 habitantes como lo es La Joya del Zacate
Para tener una mejor idea de las diferencias que exiten entre ellas, se puede realizar una diferencia de medias con algunas de las variables utilizadas anteriormente.
base.limpia %>%
group_by(Cabecera) %>%
summarise(
m.Analfabetismo = mean(Analfabetismo, na.rm = TRUE),
m.Escolaridad = mean(GRAPROES, na.rm = TRUE),
m.Indice.Carencias = mean(Indice.Carencias, na.rm = TRUE),
) %>%
kable(digits = 2,
caption = "Comparación de Medias")
| Cabecera | m.Analfabetismo | m.Escolaridad | m.Indice.Carencias |
|---|---|---|---|
| Cabecera | 7.03 | 7.27 | 31.61 |
| NoCabecera | 7.63 | 6.18 | 41.32 |
En esta tabla se puede observar que la cabecera municipal tiene un porcentaje de analfabetismo menor, un grado promedio de escolaridad mayor y un indice de carencias menor al resto de las localidades. Se puede concluir que esta en mejores condiciones que el resto de las localidades. Donde se nota una mayor brecha es cuando se toma en cuenta el Indice de Carencias, esto es una representación de cómo cuando varios factores se juntan, van haciendo mayor el rezago y las carencias, haciendo aún más difícil tener una igualdad de condiciones. Ademas, como se menciono anteriormente, seria necesario analizar cada una de las variables por separado para tener una mejor idea de las problemáticas que existen en cada localidad.