Actividad 4.1
library(dplyr)
library(knitr)
library(readxl)
library(xlsx)
library(rgdal)
library(leaflet)
library(tibble)
library(viridis)
library(RColorBrewer)
Utilizando el reporte “ANEXO ESTADíSTICO DE POBREZA A NIVEL MUNICIPIO 2010 Y 2015”, elegir un estado (y sus municipios), y representar el nivel de pobreza y pobreza extrema para los años 2010 y 2015.
Se carga la base de datos descargada desde CONEVAL 1, la cual requiere un tratamiento dado que es una tabla hecha en excel con columnas vacías y celdas combinadas.
Se utilizan ciclos for y condicionales if y else para tener listos los encabezados y la información. Así mismo se establece el tipo de datos que contiene cada columna y se filtra el estado seleccionado Tamaulipas.
Dado que se estará trabajando únicamente con los datos del porcentaje tanto de pobreza como de pobreza extrema para los años 2010 y 2015, se genera un data frame que únicamente contiene la clave del municipio, el nombre del municipio y los porcentajes para ambos años.
De manera similar, se carga el archivo shape correspondiente a la entidad de Tamaulipas
Ya que se tiene la información por un lado y el archivo vectorial por otro, se tiene que unir esta información con el comando merge
#### Base de datos CONEVAL
## Abrir BD
ind_mun <- read_excel("Concentrado, indicadores de pobreza.xlsx",
sheet = "Concentrado municipal",
range = "B5:CU2465",
col_names = FALSE)
## Limpieza base de datos
#Arreglo encabezados
for (i in 1:dim(ind_mun)[2]) {
if(is.na(ind_mun[1,i])==T) {
ind_mun[1,i]<-ind_mun[1,i-1]
}}
for (i in 1:dim(ind_mun)[2]) {
if(is.na(ind_mun[2,i])==T){
ind_mun[1,i]<-ind_mun[1,i]
} else {
ind_mun[1,i]<-paste(ind_mun[1,i],ind_mun[2,i],sep = "-")
}
}
encabezados_1<-ind_mun[1,]
colnames(ind_mun)<-encabezados_1
#Arreglo contenido
ind_mun<-ind_mun[5:dim(ind_mun)[1],] #eliminar renglones vacios
ind_mun<-ind_mun%>% mutate_at(names(.)[5:98], as.numeric) #cambiar tipo de datos
#Filtrar estado de interes
Tamaulipas<-filter(ind_mun, ind_mun$`Clave de entidad`=="28")
#DF con columnas de interes
pob_muni<-Tamaulipas[,c(3,4,7,8,13,14)]
pob_muni
## # A tibble: 43 x 6
## `Clave de munic~ Municipio `Pobreza-Porcen~ `Pobreza-Porcen~ `Pobreza extrem~
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 28001 Abasolo 64.6 62.8 15.3
## 2 28002 Aldama 58.6 53.0 8.11
## 3 28003 Altamira 44.5 42.0 7.07
## 4 28004 Antiguo ~ 57.2 58.8 10.7
## 5 28005 Burgos 51.3 66.0 14.6
## 6 28006 Bustaman~ 82.3 89.8 42.4
## 7 28007 Camargo 42.4 39.1 5.07
## 8 28008 Casas 54.7 66.7 18.3
## 9 28009 Ciudad M~ 24.9 27.9 2.52
## 10 28010 Cruillas 34.7 61.5 8.19
## # ... with 33 more rows, and 1 more variable:
## # Pobreza extrema-Porcentaje
## 2015 <dbl>
#### Shape MGN INEGI
Tamps <- readOGR(dsn="C:\\Cristina\\CIDE\\Primer Semestre\\Programacion\\Act4",
layer = "tamps_isso",
encoding = "UTF-8")
## OGR data source with driver: ESRI Shapefile
## Source: "C:\Cristina\CIDE\Primer Semestre\Programacion\Act4", layer: "tamps_isso"
## with 43 features
## It has 4 fields
#### Merge entre Shape-DF
merge_pob_mun<-merge(x = Tamps@data,
y = pob_muni,
by.x="CVEGEO",
by.y="Clave de municipio",
sort=FALSE)
names(merge_pob_mun)=c("CVEGEO", "CVE_ENT", "CVE_MUN", "NOMGEO","Municipio","Pobreza_porc2010","Pobreza_porc2015",
"Pobrezaext_porc2010","Pobrezaext_porc2015")
Ya que se tiene unida la información, se tiene que incorporar al archivo espacial, calcular en dónde son los cortes para que la información se estretifique por cuantiles y asignar un color a cada una de estos rangos.
#### Modificacion archivo espacial
Tamps@data$PC_POBRE10<-merge_pob_mun$Pobreza_porc2010
Tamps@data$PC_POBRE15<-merge_pob_mun$Pobreza_porc2015
#### Cuantiles
cuantil2010<-cut(Tamps@data$PC_POBRE10,5)
lev_cuan10<-levels(cut(Tamps@data$PC_POBRE10,5))
#"(24.9,36.4]" "(36.4,47.9]" "(47.9,59.3]" "(59.3,70.8]" "(70.8,82.3]"
cortes10<-c(24.9,36.4,47.9,59.3,70.8,82.3)
cuantil2015<-cut(Tamps@data$PC_POBRE15,5)
lev_cuan15<-levels(cut(Tamps@data$PC_POBRE15,5))
#"(27.8,40.3]" "(40.3,52.7]" "(52.7,65.1]" "(65.1,77.5]" "(77.5,89.9]"
cortes15<-c(27.8,40.3,52.7,65.1,77.5,89.9)
#### Colores
colores10 <- colorBin( palette="plasma", domain=Tamps$PC_POBRE10, na.color="transparent", bins=cortes10)
colores15 <- colorBin( palette="plasma", domain=Tamps$PC_POBRE15, na.color="transparent", bins=cortes15)
my_colors <- viridis(5,direction = -1,option = "C") #Para la simbología
#### Tooltip
textos1 <- paste(
"Municipio : ",Tamps$NOMGEO,"<br/>",
"% Pobreza 2010: ", round(Tamps$PC_POBRE10,2),"<br/>",
"% Pobreza 2015: ", round(Tamps$PC_POBRE15,2),"<br/>") %>% lapply(htmltools::HTML)
#### Mapas
leaflet() %>%
addTiles() %>%
addPolygons(data = Tamps,label = textos1, fillColor = colores10(Tamps$PC_POBRE10),
fillOpacity = 0.6,color = "black", weight =1,
group = "2010") %>%
addPolygons(data = Tamps,label = textos1, fillColor = colores15(Tamps$PC_POBRE15),
fillOpacity = 0.6,color = "black", weight =1,
group = "2015") %>%
addLegend(color = my_colors,
labels = c("Muy Alto", "Alto", "Medio","Bajo", "Muy Bajo"),
title="% de población en pobreza") %>%
addLayersControl(overlayGroups = c("2010","2015"),
options = layersControlOptions(collapsed = F))
Para la correcta visualización de este mapa primero se tienen que deseleccionar ambos años para que los colores no se sobrepongan.
Esta visualización permite alternar los porcentajes de pobreza entre 2010 y 2015, así mismo al colocar el cursor encima de cualquier muicipio de Tamaulipas se despliega una etiqueta que indica el nombre de dicho municipio y los porecantajes de pobreza correspondientes para ambos años.
Para estos mapas se tienen que seguir los mismos pasos previamente realizados
#### Modificacion archivo espacial
Tamps@data$PC_POBREXT10<-merge_pob_mun$Pobrezaext_porc2010
Tamps@data$PC_POBREXT15<-merge_pob_mun$Pobrezaext_porc2015
#### Cuantiles
cuantilEXT2010<-cut(Tamps@data$PC_POBREXT10,5)
lev_cuanEXT10<-levels(cut(Tamps@data$PC_POBREXT10,5))
#"(1.07,9.36]" "(11.4,21.7]" "(21.7,32.1]" "(32.1,42.4]"
cortesEXT10<-c(1.07,9.36,11.4,21.7,32.1,42.4)
cuantilEXT2015<-cut(Tamps@data$PC_POBREXT15,5)
lev_cuanEXT15<-levels(cut(Tamps@data$PC_POBREXT15,5))
#"(1.72,8.55]" "(8.55,15.4]" "(15.4,22.2]" "(22.2,29]" "(29,35.8]"
cortesEXT15<-c(1.72,8.55,15.4,22.2,29,35.8)
#### Colores
coloresEXT10 <- colorBin( palette="viridis", domain=Tamps$PC_POBREXT10, na.color="transparent", bins=cortesEXT10)
coloresEXT15 <- colorBin( palette="viridis", domain=Tamps$PC_POBREXT15, na.color="transparent", bins=cortesEXT15)
my_colors2 <- viridis(5,direction = -1) #Para la simbología
#### Tooltip
textos2 <- paste(
"Municipio : ",Tamps$NOMGEO,"<br/>",
"% Pobreza extrema 2010: ", round(Tamps$PC_POBREXT10,2),"<br/>",
"% Pobreza extrema 2015: ", round(Tamps$PC_POBREXT15,2),"<br/>") %>% lapply(htmltools::HTML)
#### Mapas
leaflet() %>%
addTiles() %>%
addPolygons(data = Tamps,label = textos2, fillColor = coloresEXT10(Tamps$PC_POBREXT10),
fillOpacity = 0.6,color = "white", weight =1,
group = "2010") %>%
addPolygons(data = Tamps,label = textos2, fillColor = coloresEXT15(Tamps$PC_POBREXT15),
fillOpacity = 0.6,color = "white", weight =1,
group = "2015") %>%
addLegend(color = my_colors2,
labels = c("Muy Alto", "Alto", "Medio","Bajo", "Muy Bajo"),
title="% de población en pobreza extrema") %>%
addLayersControl(overlayGroups = c("2010","2015"),
options = layersControlOptions(collapsed = F))
Para la correcta visualización de este mapa primero se tienen que deseleccionar ambos años para que los colores no se sobrepongan.
Esta visualización permite alternan los porcentajes de pobreza entre 2010 y 2015
Con los mapas aqui presentados, facilmente se puede identificar que los municipios con menor proporción de población en pobreza extrema son los que se ubican en la frontera con EEUU así como los municipios donde se encuentran las grandes ciudades como la zona metropolitana de Tampico (Tamico, Altamira y Ciudad Madero) así como Ciudad Victoria. De forma contraria, en cuanto a los municipios con un mayor porcentaje de población en pobreza extrema se identifica que son los que colindan tanto con San Luis Potosí como con Nuevo León.
CONEVAL Medición de la pobreza. Pobreza a nivel municipio 2010 y 2015: Anexo estadístico 2010 y 2015. Recuperado de:https://www.coneval.org.mx/Medicion/Paginas/AE_pobreza_municipal.aspx↩︎