EJERCICIO DE PRÁCTICA

Ciudad: Bogotá, Colombia

Fuente de datos: https://datosabiertos.bogota.gov.co/

CONSIGNA: PARTE 1

  1. Abrir en este RMarkdown el dataset siniestros_viales.csv que corresponde a los siniestros viales registrados en Bogotá por la Secretaría Distrital de Movilidad durante el año 2020.
siniestros_viales <- read.csv("data/siniestros_viales.csv", stringsAsFactors = TRUE)
head(siniestros_viales)
##   CODIGO_ACC      FECHA     HORA    GRAVEDAD CLASE_ACC      LOCALIDAD
## 1   10533499 2020-11-19 02:05:00 CON HERIDOS      OTRO  PUENTE ARANDA
## 2   10533629 2020-11-10 13:30:00  SOLO DANOS    CHOQUE        USAQUEN
## 3   10533587 2020-08-03 14:05:00 CON MUERTOS ATROPELLO           SUBA
## 4   10533503 2020-11-23 11:50:00  SOLO DANOS      OTRO        USAQUEN
## 5   10533662 2020-09-14 21:30:00 CON MUERTOS ATROPELLO           USME
## 6   10533606 2020-08-22 19:45:00 CON MUERTOS ATROPELLO BARRIOS UNIDOS
##              DIRECCION LONGITUD LATITUD
## 1    CL 26 S- KR 50 02  -74.121   4.603
## 2     KR 9 - CL 100 02  -74.042   4.682
## 3 AU NORTE - CL 200 02  -74.042   4.778
## 4 AU NORTE - CL 220 02  -74.039   4.796
## 5   KR 12 - CL 81 S 52  -74.113   4.508
## 6     KR 30 - CL 64 48  -74.077   4.660
summary(siniestros_viales)
##    CODIGO_ACC              FECHA             HORA              GRAVEDAD    
##  Min.   :10507453   2020-02-01:  134   13:30:00:  236   CON HERIDOS: 8438  
##  1st Qu.:10513186   2020-02-28:  133   13:00:00:  225   CON MUERTOS:  370  
##  Median :10519082   2020-03-06:  131   17:00:00:  207   SOLO DANOS :13603  
##  Mean   :10519073   2020-02-07:  128   15:00:00:  203                      
##  3rd Qu.:10524890   2020-02-11:  127   15:30:00:  202                      
##  Max.   :10537008   2020-02-29:  125   14:30:00:  201                      
##                     (Other)   :21633   (Other) :21137                      
##              CLASE_ACC             LOCALIDAD    
##  ATROPELLO        : 1866   KENNEDY      : 2762  
##  CAIDA DE OCUPANTE:  392   ENGATIVA     : 2132  
##  CHOQUE           :19649   SUBA         : 2057  
##  INCENDIO         :    4   USAQUEN      : 1897  
##  OTRO             :   79   PUENTE ARANDA: 1773  
##  VOLCAMIENTO      :  421   FONTIBON     : 1706  
##                            (Other)      :10084  
##                       DIRECCION        LONGITUD         LATITUD     
##  KR 80-CL 2 51             :   34   Min.   :-74.21   Min.   :4.455  
##  CL 13-KR 72 02            :   29   1st Qu.:-74.14   1st Qu.:4.600  
##  CL 80-KR 72 02            :   21   Median :-74.11   Median :4.635  
##  KR 3-CL 91 E 02           :   21   Mean   :-74.11   Mean   :4.643  
##  KR 30-CL 26 02            :   21   3rd Qu.:-74.08   3rd Qu.:4.687  
##  AV AVENIDA BOYACA-KR 24 02:   20   Max.   :-74.02   Max.   :4.828  
##  (Other)                   :22265
  1. Realizar las funciones necesarias para poder manipular con lubridate la columna de fecha.
str(siniestros_viales$FECHA)
##  Factor w/ 366 levels "2020-01-01","2020-01-02",..: 324 315 216 328 258 235 359 13 357 149 ...
siniestros_viales <- siniestros_viales %>%
  mutate(fecha_siniestro=ymd(FECHA))
  1. Agregar 3 nuevas columnas que contengan mes, año y día de la semana.
siniestros_viales <- siniestros_viales %>%
  mutate(mes= month(fecha_siniestro, label = TRUE, abbr=FALSE, locale="es_ES.UTF-8"),
         dia= wday(fecha_siniestro, label = TRUE, abbr=FALSE, locale="es_ES.UTF-8"))
  1. Análisis temporal: Utilizar ggplot() para realizar al menos 1 gráfico que permita analizar la temporalidad de los datos. ¿Detectan algún patrón temporal? ¿A qué puede deberse?
ggplot()+
  geom_bar(data = siniestros_viales, aes(x= mes, fill= mes))+
  scale_fill_paletteer_d("ggsci::planetexpress_futurama")+
labs(title = "Siniestros viales de Bogotá",
       subtitle = "Distribución mensual",
       x= "Mes",
       y= "Cantidad",
     fill= "Mes")+
coord_flip()+
  theme_minimal()+
   theme(title = element_text(face = "bold"),
        plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5))

El gráfico anterior demuestra que febrero es el mes con mayor número de siniestros viales, mientras que el de menor registro es abril. Al mismo tiempo se observan valores similares para enero, ocubre, noviembre y diciembre.

ggplot()+
  geom_bar(data = siniestros_viales, aes(x=dia, fill = dia))+
  scale_fill_paletteer_d("ggsci::uniform_startrek")+
  labs(title = "Siniestros viales en Bogotá",
       subtitle = "Distribución por días de la semana",
       fill= "Día",
       x= "Día",
       y= "Cantidad")+
  theme_minimal()+
  theme(title = element_text(face = "bold"),
        plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5))

CONSIGNA: PARTE 2

  1. Descargar un mapa base que nos ayude a contextualizar la ubicación de los datos.
bogotabbox <- make_bbox(siniestros_viales$LONGITUD, siniestros_viales$LATITUD)
mapa_base <- get_stadiamap(bogotabbox,
                           maptype = "alidade_smooth",
                           zoom = 11)
ggmap(mapa_base)

  1. Análisis Espacial: Analizar la distribución espacial de los datos a partir de al menos 1 mapa de densidad que muestre donde se concentran la mayor cantidad de hechos de tránsito.
ggmap(mapa_base)+
  geom_bin2d(data = siniestros_viales, aes(x= LONGITUD, y= LATITUD), bins= 40)+
  scale_fill_paletteer_c("ggthemes::Sunset-Sunrise Diverging")+
  labs(title = "Distribución espacial de siniestros viales",
       subtitle = "Bogotá",
       x= "Longitud",
       y= "Latitud",
       fill= "Cantidad")+
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5))

ggmap(mapa_base)+
  stat_density2d(data= siniestros_viales,  aes(x = LONGITUD, y = LATITUD, fill = after_stat(level)), geom = "polygon", alpha=0.75)+
  labs(title = "Distribución espacial de siniestros viales",
       subtitle = "Bogotá",
       x= "Longitud",
       y= "Latitud",
       fill= "Cantidad")+
  scale_fill_distiller(palette = "Spectral")

  1. Análisis espacial y temporal: Comparar la densidad de los datos en el tiempo (facetar). ¿Los patrones espaciales de los datos elegidos se mantienen o varían en el tiempo?
ggmap(mapa_base)+
  stat_density2d(data= siniestros_viales,  aes(x = LONGITUD, y = LATITUD, fill = after_stat(level)), geom = "polygon", alpha=0.75)+
  labs(title = "Distribución espacial de siniestros viales",
       subtitle = "Bogotá",
       x= "Longitud",
       y= "Latitud",
       fill= "Cantidad")+
  scale_fill_distiller(palette = "Spectral")+
  facet_wrap(~dia, ncol= 4)+
  theme_void()+
  theme(plot.title = element_text(hjust = +0.5),
        plot.subtitle = element_text(hjust = 0.5))

En el gráfico anterior se puede observar que los siniestros descienden los días viernes y sábados mientras que muestran el mayor registro entre lunes y jueves.

ggmap(mapa_base)+
  stat_density2d(data= siniestros_viales,  aes(x = LONGITUD, y = LATITUD, fill = after_stat(level)), geom = "polygon", alpha=0.75)+
  labs(title = "Distribución espacial de siniestros viales",
       subtitle = "Bogotá",
       x= "Longitud",
       y= "Latitud",
       fill= "Cantidad")+
  scale_fill_distiller(palette = "Spectral")+
  facet_wrap(~mes, ncol= 4)+
  theme_void()+
  theme(plot.title = element_text(hjust = +0.5),
        plot.subtitle = element_text(hjust = 0.5))

La menor cantidad de siniestros se registra en el mes de enero, podría estar relacionado con época festiva y de cese de varias actividades educativas y laborales. Por el contrario, los meses de marzo y agosto presentan el mayor índice de siniestros. Algo curioso es que cuanto vuelvo a los gráficos iniciales, antes de agregar lo “espacial” los valores son distintos.