Taller 1: Analisis Exploratorio de Datos

Carlos Eduardo Caceres Gonzalez

Fuentes de la información:

http://ambientebogota.gov.co/red-de-calidad-del-aire
http://ambientebogota.gov.co/estaciones-rmcab
http://201.245.192.252:81/home/map

Paquetes requeridos

#install.packages("psych")
#install.packages("dplyr")
#install.packages("leaflet")
#install.packages("rgdal")
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(leaflet)
library(rgdal)
## Loading required package: sp
## rgdal: version: 1.5-23, (SVN revision 1121)
## Geospatial Data Abstraction Library extensions to R successfully loaded
## Loaded GDAL runtime: GDAL 3.2.1, released 2020/12/29
## Path to GDAL shared files: C:/Users/GEOMATICS/Documents/R/win-library/4.1/rgdal/gdal
## GDAL binary built with GEOS: TRUE 
## Loaded PROJ runtime: Rel. 7.2.1, January 1st, 2021, [PJ_VERSION: 721]
## Path to PROJ shared files: C:/Users/GEOMATICS/Documents/R/win-library/4.1/rgdal/proj
## PROJ CDN enabled: FALSE
## Linking to sp version:1.4-5
## To mute warnings of possible GDAL/OSR exportToProj4() degradation,
## use options("rgdal_show_exportToProj4_warnings"="none") before loading rgdal.
## Overwritten PROJ_LIB was C:/Users/GEOMATICS/Documents/R/win-library/4.1/rgdal/proj
library(sp)
library(sf)
## Linking to GEOS 3.9.0, GDAL 3.2.1, PROJ 7.2.1
library(psych)
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

Información de las Estaciones

#Importamos el excel
Estaciones <- read.csv("C:/Academic/GEOESTADISTICA/Talleres/Taller_01_AED/Caracteristicas_Estaciones.csv", sep = ";")
data.frame(Estaciones)
##         ï..Estacion Lat_Decimal Lon_Decimal Altitud_msnm      Localidad
## 1         Guaymaral    4.783756   -74.04418         2580           Suba
## 2           Usaquen    4.710350   -74.03042         2570        Usaquen
## 3              Suba    4.761247   -74.09346         2571           Suba
## 4           Bolivia    4.735867   -74.12588         2574       Engativa
## 5        Las Ferias    4.690700   -74.08248         2552       Engativa
## 6  P. Simon Bolivar    4.658467   -74.08397         2577 Barrios Unidos
## 7   Sagrado Corazon    4.625486   -74.06698         2621       Santa Fe
## 8          Fontibon    4.670100   -74.14155         2591       Fontibon
## 9     Puente Aranda    4.631767   -74.11748         2590  Puente Aranda
## 10          Kennedy    4.625050   -74.16133         2580        Kennedy
## 11         Carvajal    4.595617   -74.14858         2563        Kennedy
## 12            Tunal    4.576225   -74.13096         2589     Tunjuelito
## 13    San Cristobal    4.572553   -74.08381         2688  San Cristobal
##                            direccion Tipo_de_zona Tipo_de_estacion
## 1           Autopista Norte # 205-59    Suburbana         De fondo
## 2            Carrera 7B Bis # 132-11       Urbana         De fondo
## 3              Carrera 111 # 159A-61    Suburbana         De fondo
## 4          Avenida Calle 80 # 121-98    Suburbana         De fondo
## 5          Avenida Calle 80 # 69Q-50       Urbana       De trafico
## 6                  Calle 63 # 59A-06       Urbana         De fondo
## 7                    Calle 37 # 8-40       Urbana       De trafico
## 8               Carrera 96G # 17B-49       Urbana       Industrial
## 9                   Calle 10 # 65-28       Urbana       Industrial
## 10                        Carrera 80       Urbana         De fondo
## 11 Autopista Sur # 63-40 # 40-55 sur       Urbana          Trafico
## 12            Carrera 24 # 49-86 sur       Urbana         De fondo
## 13        Carrera 2 Este # 12-78 sur       Urbana         De fondo
##    Altura_del_suelo_m Localizacion_toma_muestra
## 1                   0                Zona Verde
## 2                  10                    Azotea
## 3                   6                    Azotea
## 4                   0                Zona Verde
## 5                   0                Zona Verde
## 6                   0                Zona Verde
## 7                  15                    Azotea
## 8                  12                    Azotea
## 9                  10                    Azotea
## 10                  3                Zona Verde
## 11                  3                    Azotea
## 12                  0                Zona Verde
## 13                  0                Zona Verde
##    Altura_punto_de_muestra_al_suelo_m Altura_viento_al_suelo_m PM10 PST PM2.5
## 1                                 4.0                       10   SI  NO    NO
## 2                                13.0                       19   SI  NO    SI
## 3                                 9.0                       10   SI  NO    NO
## 4                                 4.6                       10   NO  NO    NO
## 5                                 4.6                       10   SI  NO    SI
## 6                                 4.6                       10   SI  NO    SI
## 7                                18.0                       19   SI  NO    NO
## 8                                15.0                       22   SI  NO    NO
## 9                                13.0                       20   SI  NO    NO
## 10                                7.0                       10   SI  NO    SI
## 11                                6.0                       13   SI  SI    SI
## 12                                3.0                       10   SI  NO    SI
## 13                                4.0                       10   SI  NO    NO
##    O3 NO2 CO SO2 V_V DV T_.C. Prec R_S H_R Ps_Atm
## 1  SI  SI NO  NO  SI SI    SI   SI  SI  SI     SI
## 2  SI  NO SI  NO  SI SI    SI   SI  NO  NO     NO
## 3  SI  SI NO  SI  SI SI    SI   SI  NO  NO     NO
## 4  NO  NO NO  NO  SI SI    NO   SI  NO  NO     NO
## 5  SI  SI SI  SI  SI SI    SI   SI  NO  SI     SI
## 6  SI  SI SI  SI  SI SI    SI   SI  SI  SI     NO
## 7  SI  NO NO  NO  SI SI    NO   SI  NO  NO     NO
## 8  SI  NO SI  SI  SI SI    SI   SI  NO  NO     SI
## 9  SI  SI SI  SI  SI SI    SI   SI  NO  NO     NO
## 10 NO  SI SI  SI  SI SI    SI   SI  SI  SI     SI
## 11 SI  NO SI  SI  SI SI    SI   SI  NO  NO     NO
## 12 SI  SI SI  SI  SI SI    SI   SI  SI  SI     NO
## 13 SI  NO SI  SI  SI SI    SI   SI  SI  SI     NO

Area de Estudio

El area de ubicacion de las estaciones, es dentro del la ciudad de Bogota.

Contaminantes

PM10: Particulas con diametro entre 2,5 y 10 micrometros
PM2.5: Particulas con diametro menor a 2,5 micrometros
O3: Ozono
NO2: Dioxido de Nitrogeno
CO: Monoxido de Carbono
SO2: Dioxido de azufre

#Variables
df <- read.csv("C:/Academic/GEOESTADISTICA/Talleres/Taller_01_AED/Contaminantes.csv", sep = ";")
df
##         ï..Estacion Lat_Decimal Lon_Decimal PM10 PM2.5 O3 NO2 CO SO2
## 1         Guaymaral    4.783756   -74.04418   15    30  2   2 NA  NA
## 2           Usaquen    4.710350   -74.03042    3    12 NA   3 NA   0
## 3              Suba    4.761247   -74.09346   24    28 NA  NA NA   0
## 4           Bolivia    4.735867   -74.12588   25    14 NA  NA NA   0
## 5        Las Ferias    4.690700   -74.08248    5    15  4   4 NA  NA
## 6  P. Simon Bolivar    4.658467   -74.08397    4    NA  3  NA NA  NA
## 7   Sagrado Corazon    4.625486   -74.06698    3    15  4   8  0  NA
## 8          Fontibon    4.670100   -74.14155    8    NA  3   6 NA   0
## 9     Puente Aranda    4.631767   -74.11748   NA    NA  1   7 NA   0
## 10          Kennedy    4.625050   -74.16133   21    28  3  NA  0   0
## 11         Carvajal    4.595617   -74.14858   41    71  2   6  0  10
## 12            Tunal    4.576225   -74.13096   12     0 NA   1  0   0
## 13    San Cristobal    4.572553   -74.08381    7    15 NA   4  0  NA

Analisis exploratorio de Datos

x1  <- df$PM1[!is.na(df$PM10)]
x2  <- df$PM2.5 [!is.na(df$PM2.5)]
x3  <- df$O3 [!is.na(df$O3)]
x4  <- df$NO2 [!is.na(df$NO2)]
x5  <- df$CO [!is.na(df$CO)]
x6  <- df$SO2 [!is.na(df$SO2)]


nombres_filas <- c("Mínimo","Máximo","Promedio",  "Mediana","Moda","Desviación estándar",  "Asimetría","Kurtosis","Coeficiente Variación")

nombres_Columnas <- c("PM10","PM2.5","O3","NO2","CO","SO2")

var1 <- c(min(x1), max(x1),mean(x1,na.rm=TRUE), median(x1), mode(x1), sd(x1,na.rm=TRUE),  skew(x1), kurtosi(x1), sd(x1) / mean(x1))

var2 <- c(min(x2), max(x2),mean(x2,na.rm=TRUE), median(x2), mode(x2), sd(x2,na.rm=TRUE),  skew(x2), kurtosi(x2), sd(x2) / mean(x2))

var3 <- c(min(x3), max(x3),mean(x3,na.rm=TRUE), median(x3), mode(x3), sd(x3,na.rm=TRUE),  skew(x3), kurtosi(x3), sd(x3) / mean(x3))

var4 <- c(min(x4), max(x4),mean(x4,na.rm=TRUE), median(x4), mode(x4), sd(x4,na.rm=TRUE),  skew(x4), kurtosi(x4), sd(x4) / mean(x4))

var5 <- c(min(x5), max(x5),mean(x5,na.rm=TRUE), median(x5), mode(x5), sd(x5,na.rm=TRUE),  skew(x5), kurtosi(x5), sd(x5) / mean(x5))

var6 <- c(min(x6), max(x6),mean(x6,na.rm=TRUE), median(x6), mode(x6), sd(x6,na.rm=TRUE),  skew(x6), kurtosi(x6), sd(x6) / mean(x6))

tabla1 <- cbind(var1, var2, var3, var4, var5, var6)

rownames(tabla1) <- nombres_filas
colnames(tabla1) <- nombres_Columnas

data.frame(tabla1)
##                                     PM10            PM2.5                 O3
## Mínimo                                 3                0                  1
## Máximo                                41               71                  4
## Promedio                              14             22.8               2.75
## Mediana                               10               15                  3
## Moda                             numeric          numeric            numeric
## Desviación estándar     11.7241010510207 19.2226717994953   1.03509833901353
## Asimetría              0.899765513196713 1.37149888737206 -0.253599093058315
## Kurtosis              -0.318161060720585  1.1765036316055          -1.376875
## Coeficiente Variación  0.837435789358624 0.84309964032874  0.376399396004921
##                                       NO2      CO              SO2
## Mínimo                                  1       0                0
## Máximo                                  8       0               10
## Promedio                 4.55555555555556       0             1.25
## Mediana                                 4       0                0
## Moda                              numeric numeric          numeric
## Desviación estándar      2.35112266327765       0 3.53553390593274
## Asimetría             -0.0363082277346534     NaN 1.85615530061469
## Kurtosis                -1.56844617653688     NaN         1.703125
## Coeficiente Variación   0.516100096817044     NaN 2.82842712474619

Graficas exploratorias

#PM10
op = par(mfrow = c(1, 3))
hist(df$PM1[!is.na(df$PM10)], freq = FALSE, main = "", xlab = "Particulas 2.5 - 10 micrometros", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x1), sd(x1)), add = T)
boxplot(x1, xlab = "Boxplot PM10")
qqPlot(x1, ylab = "PM10")

## [1] 10  2
par(op)
#PM2.5
op = par(mfrow = c(1, 3))
hist(df$PM2.5[!is.na(df$PM2.5)], freq = FALSE, main = "", xlab = "Particulas <2.5 micrometros", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x2), sd(x2)), add = T)
boxplot(x2, xlab = "Boxplot PM <2.5")
qqPlot(x2, ylab = "PM <2.5")

## [1] 8 9
par(op)
#O3
op = par(mfrow = c(1, 3))
hist(df$O3[!is.na(df$O3)], freq = FALSE, main = "", xlab = "Ozono", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x3), sd(x3)), add = T)
boxplot(x3, xlab = "Boxplot Ozono")
qqPlot(x3, ylab = "Ozono")

## [1] 6 2
par(op)
#NO2
op = par(mfrow = c(1, 3))
hist(df$NO2[!is.na(df$NO2)], freq = FALSE, main = "", xlab = "Dioxido Nitrogeno", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x4), sd(x4)), add = T)
boxplot(x4, xlab = "Boxplot Dioxido Nitrogeno")
qqPlot(x4, ylab = "Dioxido Nitrogeno")

## [1] 8 4
par(op)
#CO
op = par(mfrow = c(1, 3))
hist(df$CO[!is.na(df$CO)], freq = FALSE, main = "", xlab = "Monoxido Carbono - NA", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x5), sd(x5)), add = T)
boxplot(x5, xlab = "Boxplot Monoxido Carbono - NA")
qqPlot(x5, ylab = "Monoxido Carbono- NA")

## [1] 1 2
par(op)
#SO2
op = par(mfrow = c(1, 3))
hist(df$SO2[!is.na(df$SO2)], freq = FALSE, main = "", xlab = "Dioxido de azufre - NA", ylab = "Frecuencia", col = "Yellow")
curve(dnorm(x, mean(x6), sd(x6)), add = T)
boxplot(x6, xlab = "Boxplot Dioxido de azufre - NA")
qqPlot(x6, ylab = "Dioxido de azufre - NA")

## [1] 7 1
par(op)