Introducción
En el mundo se produce cada vez más basura y en México no se cuenta con un servicio avanzado de recolección de esta, pues la mayoría de los habitantes no son conscientes de la gravedad del problema que puede causar al desechar residuos en tiraderos de cielo abierto. En promedio una persona en México genera 1.16 kg al día. La contaminación es un problema grave ya que puede ocasionar un impacto en la salud de la población, en el cambio climático, en la economía y hasta ocasionar pérdidas de biodiversidad. Es por ello, que en el presente trabajo se analizarán datos acerca de residuos sólidos urbanos, rellenos sanitarios, incremento en la población y el PIB, con la finalidad de encontrar inferencias en el crecimiento de los RSU y con ello reivindicar la basura a una mejor recolección y reutilización, mediante la concientización de la población con la finalidad de mantener al país informado y limpio.
Objetivos / Hipótesis
Analizar la problemática de la basura en México mediante la ciencia de datos para concientizar a la población.
- Buscar datos abiertos de la cantidad de basura generada en México y los vertederos que existen.
- Utilizar un software que permita hacer uso de la ciencia de datos.
- Identificar variables que se relacionen con la generación de basura.
- Crear gráficas sobre los resultados obtenidos para presentarlos a la población.
Las principales preguntas a responder con esta investigación son las siguientes:
- ¿Qué tanto se relaciona la generación de basura con el crecimiento poblacional y el PIB?
- ¿A dónde se va toda la basura que se genera?
- ¿Se dispone de suficientes rellenos sanitarios para tanta basura?
- ¿Qué tipo de material se genera más?
- ¿Qué se puede hacer con tantos residuos?
La incorrecta disposición final de RSU puede ocasionar un impacto en la salud de la población, en el cambio climático, en la economía y hasta ocasionar pérdidas de biodiversidad.
Método
El presente trabajo se realiza a partir de una investigación previa de la problemática de la basura en México para realizar un extenso análisis de esta, haciendo uso de la ciencia de datos mediante el software Rstudio en el cual se importan los paquetes necesarios en la programación y los datos abiertos recuperados de la SEMARNAT y el INEGI acerca de valores cuantitativos de la generación, clasificación y disposición final de la basura en México. Posteriormente, se elaboran distintos gráficos interactivos con la finalidad de tener una mejor visualización y comprensión de los datos para poder realizar una interpretación de resultados y finalmente difundir las respectivas conclusiones y recomendaciones de la problemática con la población para concientizarla.
Paquetes
library(pacman)
p_load("dplyr", "stringr", "ggplot2", "wordcloud","rmdformats","vembedr", "xfun","readr","DT","RColorBrewer","plotly","forcats", "mime", "xfun","tidyr","ggdark","hpackedbubble","mapview","sf","rgdal", "gifski", "GGally", "raster", "tidyverse", "rgeos", "leafpop", "gganimate", "plotrix", "ftdh","ggrepel", "psych")
Datos
generacion <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/generacion de residuos solidos urbanos.csv")
materiales <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/materiales valorizables recolectados.csv")
disposicion <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/disposicion final de residuos solidos urbanos.csv")
rellenos <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/rellenos sanitarios.csv")
poblacion <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/poblacion.csv")
agua <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/agua.csv")
aire <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/aire.csv")
suelo <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/suelo.csv")
sitios <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/sitios_intraurbanos.csv")
entidadesbasura <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/entidadesbasura.csv")
entidadespib <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/entidadespib.csv")
entidadespoblacion <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/entidadespoblacion.csv")
pib <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/pib.csv")
variables <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/variables.csv")
Taller1 <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/Inscripción a taller de introducción a la visión por computadora e inteligencia artificial.csv")
Taller2 <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/TALLER DE INTRODUCCIÓN A CIENCIA DE DATOS PARA ESTUDIOS AMBIENTALES URBANOSSIG.csv")
Taller3 <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/TALLER TENSORFLOW.csv")
Taller4 <- read_csv("C:/Users/kitkat/OneDrive/Escritorio/rsu/TALLER SIG.csv")
Resultados
Generación de basura
Tabla 1. Generación de basura - SEMARNAT
datatable(generacion)
Generación total de basura
Gráfica 1. Generación de RSU de 1992 a 2012 - SEMARNAT
CANTIDAD <- generacion$`GENERACIÓN TOTAL (MILLONE DE TONELADAS)`
Generación <- ggplot(generacion)+
geom_line(aes(x= AÑO, y=CANTIDAD), col= "darkgreen")+
labs(title="Generación de RSU de 1992 a 2012", x="Fecha", y="Cantidad total (Millones de toneladas) ")
ggplotly(Generación)
Generación per capita de basura
Gráfica 2. Generación de RSU per cápita de 1992 a 2012 - SEMARNAT
CANTIDAD_PER_CAPITA <- generacion$`GENERACIÓN PER CAPITA (KG/HABITANTE/DÍA)`
Generación <- ggplot(generacion)+
geom_line(aes(x= AÑO, y=CANTIDAD_PER_CAPITA), col= "darkgreen")+
labs(title="Generación de RSU per cápita de 1992 a 2012", x="Fecha", y="Kg/Habitante/Día")
ggplotly(Generación)
Generación de basura por entidad federativa
Tabla 2. Generación de RSU por entidad federativa del 2001 al 2012 - SEMARNAT
Cantidad generada de basura en miles de toneladas
datatable(entidadesbasura)
Gráfica 3. Generación de RSU por entidad federativa de 1992 a 2012 - SEMARNAT
fig <- plot_ly(data = entidadesbasura, x = ~Año, y = ~Cantidad, color = ~Entidad)
fig
Producto Interno Bruto (PIB)
PIB en pesos
PIB total en México
Tabla 3. PIB de 1980 al 2020 - INEGI
datatable(pib)
Gráfica 4. Producto Interno Bruto de 1980 a 2020 - INEGI
PIB <- ggplot(pib)+
geom_line(aes(x= Año, y=PIB), col= "darkgreen")+
labs(title="PIB de México de 1980 a 2020", x="Fecha", y="Producto interno bruto")
ggplotly(PIB)
PIB por entidad federativa
Tabla 4. PIB por entidad federativa del 2001 al 2020
datatable(entidadespib)
Gráfica 5. PIB por entidad federativa - INEGI
fig <- plot_ly(data = entidadespib, x = ~Año, y = ~PIB, color = ~Entidad)
fig
Población
Población total en México
Tabla 5. Población total del 1910 al 2020 - INEGI
datatable(poblacion)
Gráfica 6. Población total de 1910 a 2020 - INEGI
Población <- ggplot(poblacion)+
geom_line(aes(x= periodo, y=cantidad), col= "darkgreen")+
labs(title="Población de México de 1910 a 2020", x="Fecha", y="Cantidad de personas")
ggplotly(Población)
Población por entidad federativa
Tabla 6. Población por entidad federativa del 2000 al 2020 - INEGI
Cantidad generada de basura en miles de toneladas
datatable(entidadespoblacion)
Gráfica 7. Población por entidad federativa del 2000 al 2020 - INEGI
fig <- plot_ly(data = entidadespoblacion, x = ~Año, y = ~Población, color = ~Entidad)
fig
Correlación entre variables
cor(variables)
## Basura PIB Población Año
## Basura 1.0000000 0.9102975 0.9550350 0.9503863
## PIB 0.9102975 1.0000000 0.9774382 0.9805866
## Población 0.9550350 0.9774382 1.0000000 0.9993938
## Año 0.9503863 0.9805866 0.9993938 1.0000000
ggplot(data = variables, aes(x=PIB, y = Basura)) +
geom_point(colour="darkgreen") +
ggtitle("Diagrama de dispersión") +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))
ggplot(data = variables, aes(x=Población, y = Basura)) +
geom_point(colour="darkgreen") +
ggtitle("Diagrama de dispersión") +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))
Análisis de normalidad
par (mfrow = c(1,3))
hist(variables$Basura, breaks = 10, main = "", xlab = "Generación de RSU", border="darkgreen")
hist(variables$PIB, breaks = 10, main = "", xlab = "PIB", border="green")
hist(variables$Población, breaks = 10, main = "", xlab = "Población", border="lightgreen")
Gráfico cuantílico
par(mfrow = c(1,1))
qqnorm(variables$Basura, main = "Generación de basura", col = "darkgreen")
qqline(variables$Basura)
qqnorm(variables$PIB, main = "PIB", col = "green")
qqline(variables$PIB)
qqnorm(variables$Población, main = "Población", col = "lightgreen")
qqline(variables$Población)
Prueba de Shapiro
shapiro.test(variables$Basura)
##
## Shapiro-Wilk normality test
##
## data: variables$Basura
## W = 0.96516, p-value = 0.6255
shapiro.test(variables$PIB)
##
## Shapiro-Wilk normality test
##
## data: variables$PIB
## W = 0.94876, p-value = 0.3227
shapiro.test(variables$Población)
##
## Shapiro-Wilk normality test
##
## data: variables$Población
## W = 0.96539, p-value = 0.6304
Regresión lineal multiple
Generación del modelo
modelo <- lm(Basura ~ PIB + Población , data = variables)
summary(modelo)
##
## Call:
## lm(formula = Basura ~ PIB + Población, data = variables)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4074.7 -590.8 123.8 548.9 2255.6
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.979e+04 7.307e+03 -4.077 0.000708 ***
## PIB -1.379e-03 8.156e-04 -1.691 0.108026
## Población 7.894e-04 1.658e-04 4.761 0.000156 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1413 on 18 degrees of freedom
## Multiple R-squared: 0.9241, Adjusted R-squared: 0.9157
## F-statistic: 109.6 on 2 and 18 DF, p-value: 8.314e-11
Tipo de material valorizado recolectado
Tabla 7. Tipo de material valorizado recolectado - SEMARNAT
datatable(materiales)
Gráfica 8. Tipo de material valorizado recolectado - SEMARNAT
porcentaje <- materiales %>%
arrange(desc(TIPO_DE_MATERIAL_VALORIZADO_RECOLECTADO)) %>%
mutate(prop = `CANTIDAD_(CANTIDAD_RECOLECTADA_EN_KILOGRAMOS_POR_DIA)` / sum(materiales$`CANTIDAD_(CANTIDAD_RECOLECTADA_EN_KILOGRAMOS_POR_DIA)`) *100) %>%
mutate(ypos = cumsum(prop)- 0.5*prop )
ggplot(porcentaje, aes(x=1, y=prop, fill=TIPO_DE_MATERIAL_VALORIZADO_RECOLECTADO))+
geom_bar(stat="identity", width=1, color="white") +
coord_polar("y", start=0) +
theme_void() +
geom_label_repel(aes(label=paste(round(prop, digits = 2), "%", sep = "")),
position = position_stack(vjust = 0.5),color="black",size=3.5, show.legend = FALSE)+
scale_fill_manual(values=c("lightgreen","darkseagreen1","darkseagreen2","darkseagreen","darkseagreen4","lightyellow4","lightyellow3","lightyellow2","lightyellow1","ivory"))+
guides(fill=guide_legend(title="Tipo de material"))+
ggtitle("Tipo de material valorizado recolectado")
Disposición final de la basura
Tabla 8. Disposición final de basura de 1995 al 2012 - SEMARNAT
datatable(disposicion)
Gráfica 9. Disposición final - SEMARNAT
hpackedbubble(disposicion$AÑO, disposicion$UBICACION, disposicion$`TIPO_DISPOSICION_Y_VOLUMEN_(TONELADAS)`,
title = "Disposición final de RSU",
pointFormat = "<b>{point.name}:</b> {point.y} Toneladas",
dataLabelsFilter = 100,
packedbubbleMinSize = "50%",
packedbubbleMaxSize = "100%",
theme = "watermelon",
titleColor = "black",
packedbubbleZMin = 0,
packedbubbleZmax = 10000, split = 1,
gravitational = 0.02,
parentNodeLimit = 1,
dragBetweenSeries = 0,
width = "800px")
Gráfica 9.1. Disposición final - SEMARNAT
ggplot(data=disposicion, aes(x=AÑO, y=`TIPO_DISPOSICION_Y_VOLUMEN_(TONELADAS)`, fill=UBICACION)) +
geom_bar(stat="identity", position=position_dodge())+
scale_fill_manual(values=c("darkseagreen3","darkseagreen4","lightyellow4"))+
labs(title="Disposición final de basura",
x="Año", y = "Toneladas de basura")+
theme(legend.position="top")
Rellenos sanitarios
Tabla 9. Rellenos sanitarios del 1995 al 2012 - SEMARNAT
datatable(rellenos)
Gráfica 10. Rellenos sanitarios de 1995 a 2012 - SEMARNAT
ggplot(rellenos,
mapping= aes(fill=rellenos$CONCEPTO, x=rellenos$AÑO, y=rellenos$`RELLENOS_SANITARIOS_(NUMERO)`))+
geom_bar(stat="identity")+ labs(title = "Rellenos sanitarios de 1995 hasta 2012", x="Fecha",y="Cantidad de rellenos")+
scale_fill_manual(values=c("darkseagreen","darkseagreen4","lightyellow4","lightyellow3","lightyellow2","lightyellow1","ivory"))+
theme(legend.position = "none")
Gráfica 11. Rellenos sanitarios - SEMARNAT
library(pacman)
p_load("readr", "gganimate", "gifski", "plotly", "GGally", "readr", "DT", "rgdal", "raster", "sf", "tidyverse", "rgeos", "mapview", "leafpop", "gganimate", "ggplot2", "plotrix", "rmdformats", "ftdh")
Basureros <- shapefile("C:/Users/kitkat/OneDrive/Escritorio/rsu/Locaciones3.shp")
mapview::mapview(Basureros, labels=T, map.types="OpenTopoMap")
Participación ciudadana
Talleres que se impartieron
p1 <- plot_ly(data = Taller1, x = ~Area,
type = "histogram",
marker = list(color = "darkseagreen",
line = list(color = "darkgreen",
width = 1))) %>%
layout(title = "Participantes del Taller Introducción a la visión por computadora e inteligencia artificial",
xaxis = list(title = "Áreas en las que se desarrollan"),
yaxis = list(title = "Frecuencia"))
p1
p1 <- plot_ly(data = Taller2, x = ~Area,
type = "histogram",
marker = list(color = "darkseagreen",
line = list(color = "darkgreen",
width = 1))) %>%
layout(title = "Participantes del Taller Introducción a Ciencia de Datos para estudios ambientales SIG",
xaxis = list(title = "Áreas en las que se desarrollan",
zeroline = FALSE),
yaxis = list(title = "Frecuencia",
zeroline = FALSE))
p1
p1 <- plot_ly(data = Taller3, x = ~Area,
type = "histogram",
marker = list(color = "darkseagreen",
line = list(color = "darkgreen",
width = 1))) %>%
layout(title = "Participantes del Taller Tensorflow",
xaxis = list(title = "Áreas en las que se desarrollan",
zeroline = FALSE),
yaxis = list(title = "Frecuencia",
zeroline = FALSE))
p1
p1 <- plot_ly(data = Taller4, x = ~Area,
type = "histogram",
marker = list(color = "darkseagreen",
line = list(color = "darkgreen",
width = 1))) %>%
layout(title = "Participantes del Taller SIG",
xaxis = list(title = "Áreas en las que se desarrollan",
zeroline = FALSE),
yaxis = list(title = "Frecuencia",
zeroline = FALSE))
p1
Conclusión
La generación de basura en México se encuentra muy relacionada con el crecimiento poblacional y el producto interno bruto. Sin embargo, eso no quiere decir que sea una causalidad.
Por ello, se piensa que la problemática se encuentra dentro del país ya sea por la falta de normas de separación y reciclaje de basura. No obstante, el gobierno no es el único responsable de esta situación, pues los mismos habitantes no cuentan con la iniciativa de mantener las zonas en las que se encuentran de manera limpia y esto simplemente es por falta de conciencia.
Reflexiones
Todavía hay mucho trabajo por hacer, definiendo valiosos indicadores basados en evidencia científica que podrían orientar a hallazgos más concisos.
Es posible identificar y cuantificar los RSU por micro-regiones y también modelar la presencia de tiraderos intraurbanos en base a todo el conjunto de posibles variables.
Este enfoque micro-regional trata más de comprender a los hábitos sociales y probables causas de este comportamiento.
Hay una interesante dinámica social intraurbana que vale la pena analizar.
Se tienen que incentivar los esquemas de participación ciudadana a través de programas públicos que incorporen datos para de esta forma, democratizar qué acciones concretas podrían funcionar para mitigar su impacto.
Referencias
Bustos, A. (2011). Niveles de marginación. REALIDAD, DATOS Y ESPACIO REVISTA INTERNACIONAL DE ESTADÍSTICA Y GEOGRAFÍA, 169.
Cárdenas Moreno, P. R., Robles Martínez, F., Colomer Mendoza, F. J., & Piña Guzmán, A. B. (2016). Herramientas para la evaluación de riesgos sobre el ambiente y salud, por la disposición final de residuos sólidos urbanos. LINK
Forbes México. (2020). México es líder en generación de residuos en América Latina: ANIPAC. Recuperado de LINK
INEGI. (2019). Basura. Recuperado de LINK
PÉREZ, G. B. (2012). Riesgo de contaminación por disposición final de residuos. Un estudio de la región centro occidente de México. Revista Internacional de Contaminación Ambiental, 28(1), 97-105.
Ropero Portillo, S, (2020). Lixiviados: definición, ejemplos y tratamiento. Recuperado de LINK
SEMARNAT. (2017). Residuos Sólidos Urbanos y de Manejo Especial. Recuperado de LINK
SEMARNAT. (2012). Residuos peligrosos. Recuperado de LINK
Descargas
Código
xfun::embed_file("rsu.Rmd")
xfun::embed_file("RSUPresentacion.Rmd")
Datos
xfun::embed_file("generacion de residuos solidos urbanos.csv")
Download generacion de residuos solidos urbanos.csv
xfun::embed_file("materiales valorizables recolectados.csv")
Download materiales valorizables recolectados.csv
xfun::embed_file("disposicion final de residuos solidos urbanos.csv")
Download disposicion final de residuos solidos urbanos.csv
xfun::embed_file("rellenos sanitarios.csv")
Download rellenos sanitarios.csv
xfun::embed_file("poblacion.csv")
xfun::embed_file("pib.csv")
xfun::embed_file("entidadesbasura.csv")
xfun::embed_file("entidadespib.csv")
xfun::embed_file("entidadespoblacion.csv")
Download entidadespoblacion.csv
xfun::embed_file("variables.csv")
xfun::embed_file("agua.csv")
xfun::embed_file("aire.csv")
xfun::embed_file("suelo.csv")
xfun::embed_file("sitios_intraurbanos.csv")
Download sitios_intraurbanos.csv
xfun::embed_file("Locaciones3.shp")
xfun::embed_file("RSU_SitiosMuestreo_Poligono.shp")
Download RSU_SitiosMuestreo_Poligono.shp
xfun::embed_file("RSU_2020CdObregon.shp")
Download RSU_2020CdObregon.shp
xfun::embed_file("marginacionAGEB.shp")
xfun::embed_file("Inscripción a taller de introducción a la visión por computadora e inteligencia artificial.csv")
xfun::embed_file("TALLER DE INTRODUCCIÓN A CIENCIA DE DATOS PARA ESTUDIOS AMBIENTALES URBANOSSIG.csv")
Download TALLER DE INTRODUCCIÓN A CIENCIA DE DATOS PARA ESTUDIOS AMBIENTALES URBANOSSIG.csv
xfun::embed_file("TALLER TENSORFLOW.csv")
Download TALLER TENSORFLOW.csv
xfun::embed_file("TALLER SIG.csv")
Imágenes
xfun::embed_file("basura2.png")
xfun::embed_file("marginacion.png")