Avance

EQUIPO 2. Mariana Pompa Rivera, Cielo Aholiva Higuera Gutierrez, Saul Lopez Lopez y Cristina Arguelles Lema

22/05/2021

INTRODUCCIÓN

La gestión de la contaminación del aire se ha vuelto importante en el último periodo debido a las siguientes afirmaciones: “A causa del desarrollo industrial y avance tecnológico se estima aproximadamente 1200 millones de personas están expuestas a niveles de dióxido de azufre (SO2),, muy por encima de por directrices de la Organización Mundial de la Salud (OMS) y aproximadamente 1400 millones de personas están expuestas a niveles excesivos de humo y material articulado (PM)” (Rico, 2018).

La importancia de respirar aire limpio sin contaminantes es crucial para todo ser viviente. Por lo cual es importante que este sea aire limpio, pero ¿Cómo detectar si el aire que respiramos no tienen contaminantes? ¿Cómo nos afecta a nosotros?. La calidad del aire está directamente relacionada con la movilidad de carros, autobuses y hasta la propia movilidad de la ciudad, donde las personas realizan sus actividades diarias, por lo tanto, entre más movilidad haya en la ciudad, aumenta los contaminantes en el aire.

ANTECEDENTES

El municipio de Hermosillo inicia de manera formal el Programa de Monitoreo de la Calidad del Aire en el año 2004, los aparatos de muestreo son donados al municipio por SEMARNAT y son reinstalados en sitios céntricos pese al crecimiento urbano que ha rebasado en kilómetros las zonas marginales de diez años atrás (Barajas Olvera, 2007)

En Hermosillo sonora, la contaminación del aire es elevada y la población desconoce acerca de este hecho. Existen antecedentes para esta ciudad de medición de PST (Particulas suspendidas totales similares a las PM10) de 1990 a 1995, reportándose que todos esos años se rebasó el máximo permisible anual de 75 μg/m3 con promedios anuales que fluctuaban de 126 hasta 565 μg/m3.

OBJETIVO

  • Determinar cómo varía las concentraciones de contaminantes en el aire y su relación con la movilidad durante el periodo Febrero 2020 - Mayo 2021 en la ciudad de Hermosillo, Sonora.

  • Comprobar el deterioro de la calidad del aire a partir de la reactivación económica originaria por la pandemia de COVID - 19.

TEORÍA

¿Cuál es la calidad del aire?

Técnicamente se puede definir la calidad del aire, inmisión o valor límite como la concentración de contaminante que llega a un receptor, más o menos alejado de la fuente de emisión.

Causas

El uso de combustibles fósiles como la gasolina y el gas natural son grandes contribuyentes a la polución del aire. Estos emiten gases como el dióxido de carbono y el metano, dos de los mayores contaminantes y generadores de otros problemas como el efecto invernadero. El dióxido de azufre es particularmente peligroso para el medio ambiente pues es el principal componente de la lluvia ácida.

Una las principales causas de la contaminación del aire es el uso de combustibles fósiles. Su liberación hacia la atmósfera produce un exceso de material particulado \((PM_10 y PM_2.5)\) y de gases de efecto invernadero como el dióxido de carbono, los óxidos de nitrógeno y los óxidos de azufre. Por su parte, el ozono, que aunque en condiciones de equilibrio nos ha ayudado a evitar la radiación ultravioleta, en grandes cantidades puede presentar problemas para la salud.

Los niveles altos de contaminación del aire pueden causar problemas de salud inmediatos:

  • Agravar enfermedades cardiovasculares y respiratorias.
  • Producir más estrés al corazón y los pulmones que deben trabajar más para suministrar oxígeno al cuerpo.
  • Dañar las células del sistema respiratorio.

El aumento de la contaminación atmosférica es una amenaza aguda, acumulativa y crónica para la salud humana y el ambiente. La calidad del aire en la ciudad de Hermosillo se deteriora cada día más, debido principalmente al tráfico vehicular aunque A partir de la última semana de junio, la calidad del aire en la capital sonorense volvió a normalizarse con respecto a los niveles de contaminación de años anteriores, sin embargo, se han mantenido por debajo de la norma.

La titular del Instituto Municipal de Ecología (IME), señaló que en todo lo que va del año, la calidad del aire se ha mantenido por debajo de la norma, gracias a las acciones implementadas por la dependencia, tanto en la concientización de la ciudadanía, atención de reportes y el fortalecimiento en áreas protegidas.

Datos Clave

  • La contaminación del aire es el principal riesgo ambiental para la salud pública en las Américas.
  • En todo el mundo, cerca 7 millones de muertes prematuras fueron atribuibles a la contaminación del aire ambiental en 2016. Alrededor del 88% de estas muertes ocurren en países de ingresos bajos y medios.
  • Más de 150 millones de personas en América Latina viven en ciudades que exceden las Guías de Calidad del Aire de la OMS.
  • La exposición a altos niveles de contaminación del aire puede causar una variedad de resultados adversos para la salud: aumenta el riesgo de infecciones respiratorias, enfermedades cardíacas, derrames cerebrales y cáncer de pulmón las cuales afectan en mayor proporción a población vulnerable, niños, adultos mayores y mujeres.
  • La contaminación del aire en el hogar se asocia al uso de combustible s y prácticas de cocina ineficiente

METODOLOGÍA

library(pacman)
p_load(rmdformats,readr,readxl,ggplot2,plotly,DT,xfun,gridExtra,leaflet)

Ubicación de donde se obtuvieron los datos

content <- paste(sep = "<br/>",
  "<b><a href='https://www.ruoa.unam.mx/index.php?page=estaciones&id=6#datos'>ERNO</a></b>","Lng: -110.9706, Lat: 29.0814")


m <- leaflet() %>%
  addTiles() %>%  
  addMarkers(lng=-110.9706, lat= 29.0814, popup= content)

m

Datos de concentraciones que afectan la calidad del aire y movilidad local

library(TSstudio)
## Warning: package 'TSstudio' was built under R version 4.0.5
library(DT)
library(readxl)
CM <- read_excel("Concentracion_Mov.xlsx")
datatable(CM)

Reporte de movilidad en Hermosillo, Sonora.

movilidad <- ggplot(CM)+
  geom_line(aes(x=Fecha,y=Reactivacion_Comercial,colour="Recreación y comercio"))+
    geom_line(aes(x=Fecha,y=Supermercado_Farmacia,colour="Supermercados y farmacias"))+
    geom_line(aes(x=Fecha,y=Parques_Centros,colour="Parques"))+
    geom_line(aes(x=Fecha,y=Estaciones_Transito,colour="Estaciones de tránsito"))+
    geom_line(aes(x=Fecha,y=Lugares_Trabajo,colour="Lugares de trabajo"))+
    geom_line(aes(x=Fecha,y=Residencia,colour="Lugares residenciales"))+
    labs(title="Reporte de movilidad",x="Fecha",y="Procentaje de cambio de movilidad")

ggplotly(movilidad)
plot_ly(CM,x = ~Fecha, y = ~O3,mode="lines+markers") %>% 
  add_lines() %>%
  rangeslider() %>%
  layout(title = 'Concentración atmosferica de 03',
         xaxis = list(title = 'Fecha'),
         yaxis = list(title = 'O3 ppmm'))
plot_ly(CM,x = ~Fecha, y = ~SO2,mode="lines+markers") %>% 
  add_lines() %>%
  rangeslider() %>%
  layout(title = 'Concentración atmosferica de SO2',
         xaxis = list(title = 'Fecha'),
         yaxis = list(title = 'SO2 ppmm'))
plot_ly(CM,x = ~Fecha, y = ~PM10,mode="lines+markers") %>% 
  add_lines() %>%
  rangeslider() %>%
  layout(title = 'Concentración atmosferica de PPM10',
         xaxis = list(title = 'Fecha'),
         yaxis = list(title = 'O3 ppmm'))
plot_ly(CM,colors = rainbow(3)) %>%
  add_lines(x = ~Fecha, y = ~O3,mode="lines",name = "O3") %>%
add_lines(x = ~Fecha, y = ~SO2,mode="lines", name = "SO2") %>%
add_lines(x = ~Fecha, y = ~PM10,mode="lines", name ="PM10")  %>%
rangeslider() %>% 
  layout(title = 'Ccontaminantes atmosféricos (concentraciones)',
         xaxis = list(title = 'Fecha'),
         yaxis = list(title = 'Concentración (ppb para O3 y SO2, ug/m3 para PM10)'))
library(readxl)
library(DT)
aire <- read_excel("Concentracion.xlsx")
datatable(aire)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
## 
##     combine
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
datos <- as.data.frame(aire)
round(cor(x = datos, method = "pearson"), 3)
##                            O3    SO2   PM10 Reactivacion_Comercial
## O3                      1.000 -0.220 -0.229                 -0.193
## SO2                    -0.220  1.000  0.612                  0.404
## PM10                   -0.229  0.612  1.000                  0.281
## Reactivacion_Comercial -0.193  0.404  0.281                  1.000
## Supermercado_Farmacia  -0.047  0.443  0.280                  0.875
## Parques_Centros        -0.182  0.019  0.065                  0.814
## Estaciones_Transito    -0.174  0.399  0.270                  0.944
## Lugares_Trabajo        -0.119  0.138  0.100                  0.581
## Residencia              0.130 -0.371 -0.238                 -0.842
##                        Supermercado_Farmacia Parques_Centros
## O3                                    -0.047          -0.182
## SO2                                    0.443           0.019
## PM10                                   0.280           0.065
## Reactivacion_Comercial                 0.875           0.814
## Supermercado_Farmacia                  1.000           0.655
## Parques_Centros                        0.655           1.000
## Estaciones_Transito                    0.872           0.770
## Lugares_Trabajo                        0.492           0.371
## Residencia                            -0.729          -0.617
##                        Estaciones_Transito Lugares_Trabajo Residencia
## O3                                  -0.174          -0.119      0.130
## SO2                                  0.399           0.138     -0.371
## PM10                                 0.270           0.100     -0.238
## Reactivacion_Comercial               0.944           0.581     -0.842
## Supermercado_Farmacia                0.872           0.492     -0.729
## Parques_Centros                      0.770           0.371     -0.617
## Estaciones_Transito                  1.000           0.474     -0.758
## Lugares_Trabajo                      0.474           1.000     -0.853
## Residencia                          -0.758          -0.853      1.000
library(psych)
## Warning: package 'psych' was built under R version 4.0.5
## 
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
multi.hist(x = aire, dcol = c("blue", "red"), dlty = c("dotted", "solid"),
           main = "")

library(GGally)
## Warning: package 'GGally' was built under R version 4.0.5
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
ggpairs(aire, lower = list(continuous = "smooth"),
        diag = list(continuous = "barDiag"), axisLabels = "none")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Generar el modelo

modelo <- lm(O3 ~ SO2+ PM10+ Reactivacion_Comercial + Supermercado_Farmacia + Parques_Centros + Estaciones_Transito + Lugares_Trabajo + Residencia, data = datos )
summary(modelo)
## 
## Call:
## lm(formula = O3 ~ SO2 + PM10 + Reactivacion_Comercial + Supermercado_Farmacia + 
##     Parques_Centros + Estaciones_Transito + Lugares_Trabajo + 
##     Residencia, data = datos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -20.9388  -4.4283  -0.0429   4.8415  23.5113 
## 
## Coefficients:
##                         Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             21.18847    1.46454  14.468  < 2e-16 ***
## SO2                    -12.61924    2.15337  -5.860 9.10e-09 ***
## PM10                    -0.05151    0.02816  -1.829   0.0681 .  
## Reactivacion_Comercial  -0.13450    0.09628  -1.397   0.1631    
## Supermercado_Farmacia    0.47829    0.07098   6.738 5.07e-11 ***
## Parques_Centros         -0.27200    0.06205  -4.383 1.47e-05 ***
## Estaciones_Transito     -0.11122    0.06335  -1.756   0.0799 .  
## Lugares_Trabajo         -0.27806    0.05014  -5.546 5.06e-08 ***
## Residencia              -1.06194    0.20450  -5.193 3.18e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.406 on 438 degrees of freedom
## Multiple R-squared:  0.2296, Adjusted R-squared:  0.2156 
## F-statistic: 16.32 on 8 and 438 DF,  p-value: < 2.2e-16
step(object = modelo, direction = "both", trace = 1)
## Start:  AIC=1798.93
## O3 ~ SO2 + PM10 + Reactivacion_Comercial + Supermercado_Farmacia + 
##     Parques_Centros + Estaciones_Transito + Lugares_Trabajo + 
##     Residencia
## 
##                          Df Sum of Sq   RSS    AIC
## - Reactivacion_Comercial  1    107.04 24129 1798.9
## <none>                                24022 1798.9
## - Estaciones_Transito     1    169.03 24191 1800.1
## - PM10                    1    183.50 24206 1800.3
## - Parques_Centros         1   1053.76 25076 1816.1
## - Residencia              1   1478.93 25501 1823.6
## - Lugares_Trabajo         1   1686.94 25709 1827.3
## - SO2                     1   1883.52 25906 1830.7
## - Supermercado_Farmacia   1   2490.04 26512 1841.0
## 
## Step:  AIC=1798.92
## O3 ~ SO2 + PM10 + Supermercado_Farmacia + Parques_Centros + Estaciones_Transito + 
##     Lugares_Trabajo + Residencia
## 
##                          Df Sum of Sq   RSS    AIC
## <none>                                24129 1798.9
## + Reactivacion_Comercial  1    107.04 24022 1798.9
## - PM10                    1    190.65 24320 1800.4
## - Estaciones_Transito     1    568.24 24698 1807.3
## - Residencia              1   1372.22 25502 1821.6
## - Lugares_Trabajo         1   1762.50 25892 1828.4
## - Parques_Centros         1   2051.53 26181 1833.4
## - SO2                     1   2257.88 26387 1836.9
## - Supermercado_Farmacia   1   2391.87 26521 1839.2
## 
## Call:
## lm(formula = O3 ~ SO2 + PM10 + Supermercado_Farmacia + Parques_Centros + 
##     Estaciones_Transito + Lugares_Trabajo + Residencia, data = datos)
## 
## Coefficients:
##           (Intercept)                    SO2                   PM10  
##              21.40785              -13.37428               -0.05249  
## Supermercado_Farmacia        Parques_Centros    Estaciones_Transito  
##               0.45202               -0.31897               -0.16388  
##       Lugares_Trabajo             Residencia  
##              -0.28339               -0.98924
modelo <- (lm(formula = O3 ~ SO2 + PM10 + Supermercado_Farmacia + Parques_Centros + 
    Estaciones_Transito + Lugares_Trabajo + Residencia, data = datos))
summary(modelo)
## 
## Call:
## lm(formula = O3 ~ SO2 + PM10 + Supermercado_Farmacia + Parques_Centros + 
##     Estaciones_Transito + Lugares_Trabajo + Residencia, data = datos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -21.2494  -4.3746  -0.1753   4.9050  24.1825 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            21.40785    1.45767  14.686  < 2e-16 ***
## SO2                   -13.37428    2.08670  -6.409 3.78e-10 ***
## PM10                   -0.05249    0.02818  -1.862   0.0632 .  
## Supermercado_Farmacia   0.45202    0.06852   6.597 1.21e-10 ***
## Parques_Centros        -0.31897    0.05221  -6.109 2.21e-09 ***
## Estaciones_Transito    -0.16388    0.05097  -3.215   0.0014 ** 
## Lugares_Trabajo        -0.28339    0.05005  -5.663 2.70e-08 ***
## Residencia             -0.98924    0.19798  -4.997 8.44e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.414 on 439 degrees of freedom
## Multiple R-squared:  0.2262, Adjusted R-squared:  0.2139 
## F-statistic: 18.33 on 7 and 439 DF,  p-value: < 2.2e-16
confint(lm(formula = O3 ~ SO2 + PM10 + Supermercado_Farmacia + Parques_Centros + 
    Estaciones_Transito + Lugares_Trabajo + Residencia, data = datos))
##                             2.5 %       97.5 %
## (Intercept)            18.5429587 24.272734653
## SO2                   -17.4754428 -9.273108691
## PM10                   -0.1078856  0.002902609
## Supermercado_Farmacia   0.3173485  0.586692242
## Parques_Centros        -0.4215821 -0.216357958
## Estaciones_Transito    -0.2640599 -0.063709120
## Lugares_Trabajo        -0.3817479 -0.185032682
## Residencia             -1.3783591 -0.600127926

Validación de condiciones para la regresión múltiple lineal

library(gridExtra)
plot1 <- ggplot(data = datos, aes(SO2, modelo$residuals)) +
    geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
    theme_bw()
plot2 <- ggplot(data = datos, aes(PM10, modelo$residuals)) +
    geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
    theme_bw()
plot3 <- ggplot(data = datos, aes(Supermercado_Farmacia, modelo$residuals)) +
    geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
    theme_bw()
plot4 <- ggplot(data = datos, aes(Parques_Centros, modelo$residuals)) +
    geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
    theme_bw()
plot5 <- ggplot(data = datos, aes(Estaciones_Transito, modelo$residuals)) +
    geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
    theme_bw()
plot6 <- ggplot(data = datos, aes(Lugares_Trabajo, modelo$residuals)) +
    geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
    theme_bw()
plot7 <- ggplot(data = datos, aes(Residencia, modelo$residuals)) +
    geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
    theme_bw()
grid.arrange(plot1, plot2, plot3, plot4, plot5, plot6, plot7)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

qqnorm(modelo$residuals)
qqline(modelo$residuals)

shapiro.test(modelo$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo$residuals
## W = 0.99751, p-value = 0.7484
ggplot(data = datos, aes(modelo$fitted.values, modelo$residuals)) +
geom_point() +
geom_smooth(color = "firebrick", se = FALSE) +
geom_hline(yintercept = 0) +
theme_bw()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

library(lmtest)
## Warning: package 'lmtest' was built under R version 4.0.5
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.0.5
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
bptest(modelo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 35.112, df = 7, p-value = 1.066e-05
library(corrplot)
## corrplot 0.84 loaded
corrplot(cor(dplyr::select(datos, SO2, PM10, Supermercado_Farmacia, Parques_Centros, 
    Estaciones_Transito, Lugares_Trabajo, Residencia)),
         method = "number", tl.col = "black")

Análisis de Inflación de Varianza (VIF):

library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:psych':
## 
##     logit
## The following object is masked from 'package:dplyr':
## 
##     recode
vif(modelo)
##                   SO2                  PM10 Supermercado_Farmacia 
##              2.837797              1.617476              4.586790 
##       Parques_Centros   Estaciones_Transito       Lugares_Trabajo 
##              3.810335              7.096867              6.237850 
##            Residencia 
##             11.680499
  • Autocorrelación:
library(car)
dwt(modelo, alternative = "two.sided")
##  lag Autocorrelation D-W Statistic p-value
##    1        0.664729     0.6695044       0
##  Alternative hypothesis: rho != 0