MATERIA: Ciencia de Datos para Ciudades 2

TAREA 3: Descubriendo patrones temporales y espaciales en los datos

1. Utilizar algún dataset open data de la Ciudad con la que están trabajando que tenga tanto coordenadas como fechas.

Para este trabajo continuaremos utilizando el dataset de casos de COVID-19 de la Ciudad de Buenos Aires, el cual que cuenta con datos temporales, como la fecha en la cual se realizó cada testeo. Como este dataset no tiene coordenadas, en el punto 2 de este trabajo pasaremos a utilizar la base de datos de COVID 147, la cual tiene información sobre los llamados a la línea telefónica de CABA, sobre temas vinculados al COVID.

A continuación cargaremos los packages a utilizar y el dataset mencionado.

#install.packages("tidyverse")
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.3     v purrr   0.3.4
## v tibble  3.1.0     v dplyr   1.0.5
## v tidyr   1.1.3     v stringr 1.4.0
## v readr   1.4.0     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
#install.packages("sf")
library(sf)
## Warning: package 'sf' was built under R version 4.0.5
## Linking to GEOS 3.9.0, GDAL 3.2.1, PROJ 7.2.1
#install.packages("ggmap")
library(ggmap)
## Warning: package 'ggmap' was built under R version 4.0.5
## Google's Terms of Service: https://cloud.google.com/maps-platform/terms/.
## Please cite ggmap if you use it! See citation("ggmap") for details.
#install.packages("lubridate")
library(lubridate)
## Warning: package 'lubridate' was built under R version 4.0.5
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
casos_covid19 <- read.csv("data/casos_covid19.csv", 
                         encoding = "UTF-8", stringsAsFactors = TRUE)

Filtramos para obtener solamente los registros de CABA:

covid_CABA <- filter(casos_covid19, provincia=="CABA", !is.na(comuna))

Pasamos a analizar el dataset:

names(covid_CABA)
##  [1] "X.U.FEFF.numero_de_caso" "fecha_apertura_snvs"    
##  [3] "fecha_toma_muestra"      "fecha_clasificacion"    
##  [5] "provincia"               "barrio"                 
##  [7] "comuna"                  "genero"                 
##  [9] "edad"                    "clasificacion"          
## [11] "fecha_fallecimiento"     "fallecido"              
## [13] "fecha_alta"              "tipo_contagio"
dim(covid_CABA)
## [1] 1486533      14

Tenemos un total de 1.486.533 casos registrados de COVID-19 en la Ciudad.

2.Análisis Temporal: Realizar al menos 1 gráfico que les permita analizar la temporalidad de los datos. ¿Detectan algún patrón temporal? ¿A qué puede deberse?

Primero, revisamos qué formato tienen las variables fecha y hora, el dato con el que trabajaremos es el de la columna “fecha_toma_muestra”:

str(covid_CABA)
## 'data.frame':    1486533 obs. of  14 variables:
##  $ X.U.FEFF.numero_de_caso: int  12823524 12823554 12823611 12823652 12823672 12823684 12823687 12823691 12823747 12823800 ...
##  $ fecha_apertura_snvs    : Factor w/ 477 levels "01APR2020:00:00:00.000000",..: 313 313 313 313 313 313 313 313 313 313 ...
##  $ fecha_toma_muestra     : Factor w/ 533 levels "","01APR2020:00:00:00.000000",..: 347 347 347 347 330 347 347 347 330 347 ...
##  $ fecha_clasificacion    : Factor w/ 527 levels "01APR2020:00:00:00.000000",..: 346 346 346 346 346 346 346 346 329 346 ...
##  $ provincia              : Factor w/ 24 levels "Buenos Aires",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ barrio                 : Factor w/ 49 levels "","AGRONOMIA",..: 26 14 29 5 21 37 29 8 16 9 ...
##  $ comuna                 : int  4 7 2 4 13 15 2 5 9 6 ...
##  $ genero                 : Factor w/ 2 levels "femenino","masculino": 1 2 1 1 1 2 2 1 2 2 ...
##  $ edad                   : int  83 48 30 19 22 29 39 24 30 27 ...
##  $ clasificacion          : Factor w/ 3 levels "confirmado","descartado",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ fecha_fallecimiento    : Factor w/ 455 levels "","01APR2020:00:00:00.000000",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ fallecido              : Factor w/ 1 level "si": NA NA NA NA NA NA NA NA NA NA ...
##  $ fecha_alta             : Factor w/ 473 levels "","01APR2020:00:00:00.000000",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ tipo_contagio          : Factor w/ 5 levels "Comunitario",..: 1 1 1 1 1 1 1 1 1 1 ...
class(covid_CABA$fecha_toma_muestra)
## [1] "factor"

Vemos que la columna fecha_toma_muestra es de formato factor. La transformamos a formato “fecha y hora” para poder manipularla correctamente y hacer operaciones temporales con ella:

covid_CABA3 <- covid_CABA %>%
  mutate(fecha_toma_muestra=dmy_hms(fecha_toma_muestra))
str(covid_CABA3)
## 'data.frame':    1486533 obs. of  14 variables:
##  $ X.U.FEFF.numero_de_caso: int  12823524 12823554 12823611 12823652 12823672 12823684 12823687 12823691 12823747 12823800 ...
##  $ fecha_apertura_snvs    : Factor w/ 477 levels "01APR2020:00:00:00.000000",..: 313 313 313 313 313 313 313 313 313 313 ...
##  $ fecha_toma_muestra     : POSIXct, format: "2021-05-20" "2021-05-20" ...
##  $ fecha_clasificacion    : Factor w/ 527 levels "01APR2020:00:00:00.000000",..: 346 346 346 346 346 346 346 346 329 346 ...
##  $ provincia              : Factor w/ 24 levels "Buenos Aires",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ barrio                 : Factor w/ 49 levels "","AGRONOMIA",..: 26 14 29 5 21 37 29 8 16 9 ...
##  $ comuna                 : int  4 7 2 4 13 15 2 5 9 6 ...
##  $ genero                 : Factor w/ 2 levels "femenino","masculino": 1 2 1 1 1 2 2 1 2 2 ...
##  $ edad                   : int  83 48 30 19 22 29 39 24 30 27 ...
##  $ clasificacion          : Factor w/ 3 levels "confirmado","descartado",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ fecha_fallecimiento    : Factor w/ 455 levels "","01APR2020:00:00:00.000000",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ fallecido              : Factor w/ 1 level "si": NA NA NA NA NA NA NA NA NA NA ...
##  $ fecha_alta             : Factor w/ 473 levels "","01APR2020:00:00:00.000000",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ tipo_contagio          : Factor w/ 5 levels "Comunitario",..: 1 1 1 1 1 1 1 1 1 1 ...
class(covid_CABA3$fecha_toma_muestra)
## [1] "POSIXct" "POSIXt"

Logramos convertir a formato “POSIXct”, el cual es una clase de datos de fecha y hora.

Como solo nos interesa el formato “fecha”, hacemos la conversión:

covid_CABA3 <- covid_CABA3 %>%
  mutate(fecha=ymd(fecha_toma_muestra))
class(covid_CABA3$fecha)
## [1] "Date"
str(covid_CABA3)
## 'data.frame':    1486533 obs. of  15 variables:
##  $ X.U.FEFF.numero_de_caso: int  12823524 12823554 12823611 12823652 12823672 12823684 12823687 12823691 12823747 12823800 ...
##  $ fecha_apertura_snvs    : Factor w/ 477 levels "01APR2020:00:00:00.000000",..: 313 313 313 313 313 313 313 313 313 313 ...
##  $ fecha_toma_muestra     : POSIXct, format: "2021-05-20" "2021-05-20" ...
##  $ fecha_clasificacion    : Factor w/ 527 levels "01APR2020:00:00:00.000000",..: 346 346 346 346 346 346 346 346 329 346 ...
##  $ provincia              : Factor w/ 24 levels "Buenos Aires",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ barrio                 : Factor w/ 49 levels "","AGRONOMIA",..: 26 14 29 5 21 37 29 8 16 9 ...
##  $ comuna                 : int  4 7 2 4 13 15 2 5 9 6 ...
##  $ genero                 : Factor w/ 2 levels "femenino","masculino": 1 2 1 1 1 2 2 1 2 2 ...
##  $ edad                   : int  83 48 30 19 22 29 39 24 30 27 ...
##  $ clasificacion          : Factor w/ 3 levels "confirmado","descartado",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ fecha_fallecimiento    : Factor w/ 455 levels "","01APR2020:00:00:00.000000",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ fallecido              : Factor w/ 1 level "si": NA NA NA NA NA NA NA NA NA NA ...
##  $ fecha_alta             : Factor w/ 473 levels "","01APR2020:00:00:00.000000",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ tipo_contagio          : Factor w/ 5 levels "Comunitario",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ fecha                  : Date, format: "2021-05-20" "2021-05-20" ...

Queremos ver cuántos casos positivos hubo por mes para el año 2020 y, de estos, cuántos casos corresponden a varones y cuántos a mujeres.

Generamos nuevas columnas para las variables mes y año:

covid_CABA4 <- covid_CABA3 %>%
  mutate(anio= substr(fecha, 1,4),  
         mes= substr(fecha, 6,7))

A fines prácticos, nos quedamos solo con los datos del año 2020:

covid_CABA2020 <- filter(covid_CABA4, anio=="2020")
head(covid_CABA2020)
##   X.U.FEFF.numero_de_caso       fecha_apertura_snvs fecha_toma_muestra
## 1                12939563 21MAY2021:00:00:00.000000         2020-07-30
## 2                 2132780 26AUG2020:00:00:00.000000         2020-12-18
## 3                 2137522 26AUG2020:00:00:00.000000         2020-12-13
## 4                 2142919 26AUG2020:00:00:00.000000         2020-12-03
## 5                 2154207 27AUG2020:00:00:00.000000         2020-08-25
## 6                 2157031 27AUG2020:00:00:00.000000         2020-08-26
##         fecha_clasificacion provincia          barrio comuna    genero edad
## 1 30JUL2020:00:00:00.000000      CABA VELEZ SARSFIELD     10 masculino   38
## 2 19DEC2020:00:00:00.000000      CABA         ALMAGRO      5 masculino   44
## 3 13DEC2020:00:00:00.000000      CABA         PALERMO     14 masculino   24
## 4 03DEC2020:00:00:00.000000      CABA   SAN CRISTOBAL      3  femenino   34
## 5 27AUG2020:00:00:00.000000      CABA          FLORES      7  femenino   29
## 6 27AUG2020:00:00:00.000000      CABA        RECOLETA      2 masculino   40
##   clasificacion fecha_fallecimiento fallecido fecha_alta tipo_contagio
## 1    confirmado                          <NA>              Comunitario
## 2    confirmado                          <NA>              Comunitario
## 3    confirmado                          <NA>              Comunitario
## 4    confirmado                          <NA>              Comunitario
## 5    confirmado                          <NA>              Comunitario
## 6    confirmado                          <NA>              Comunitario
##        fecha anio mes
## 1 2020-07-30 2020  07
## 2 2020-12-18 2020  12
## 3 2020-12-13 2020  12
## 4 2020-12-03 2020  12
## 5 2020-08-25 2020  08
## 6 2020-08-26 2020  08

Veamos el resultado a través de un gráfico de líneas:

ggplot(covid_CABA2020 %>%
         group_by(mes, genero) %>%
         summarise(cantidad = n())) + 
    geom_line(aes(x = mes, y = cantidad, color=genero, group=genero)) +
    geom_point(aes(x=mes, y=cantidad, color=genero))+
    geom_text(aes(x=mes, y=cantidad+200, label=cantidad), size=2)+
    labs(title = "Cantidad de casos COVID-19 en CABA",
         subtitle = "Casos registrados por género en 2020",
         x = "Mes",
         y = "Cantidad",
         color = "Género",
         caption = "Fuente: BA Data")
## `summarise()` has grouped output by 'mes'. You can override using the `.groups` argument.

Como se puede ver, los casos de personas del género femenino comienzan a crecer, de manera evidente, por encima de aquellos correspondientes al género masculino, a partir del mes de junio. Además, se observa un pico intermedio de casos en el mes de agosto y, posteriormente, un pico aún mayor en el mes de diciembre.

Sumamos un gráfico de barras:

ggplot(covid_CABA2020) + 
    geom_bar(aes(x = mes, fill=genero)) +
    labs(title = "Cantidad de casos COVID-19 en CABA",
         subtitle = "Casos registrados por género en 2020",
         x = "Mes",
         y = "Cantidad",
         fill = "Género",
         caption = "Fuente: BA Data")

ggplot(covid_CABA2020)+
  geom_bar(aes(x=mes, fill=genero), position="dodge")+
  labs(title = "Cantidad de casos COVID-19 en CABA",
         subtitle = "Casos registrados por género en 2020",
         x = "Mes",
         y = "Cantidad",
         fill = "Género",
         caption = "Fuente: BA Data")

Los últimos gráficos evidencian las conclusiones mencionadas en el gráfico de líneas anterior. Además, en el último gráfico de barras puede observarse que el número de casos confirmados de mujeres comenzó a ser levemente mayor al de varones desde mayo del 2020.

¿A qué puede deberse la temporalidad de los casos observados?

Sospechamos que el crecimiento de los casos a través del tiempo, además de la lógica esperada del aumento exponencial de contagios, puede ser consecuencia del aumento de la oferta de testeo (apertura de nuevos centros de testeo públicos). Otro motivo, podría ser la flexibilización de las medidas de aislamiento obligatorio.

En cuanto al pico de diciembre, es probable que el mismo esté vinculado al aumento de las reuniones propias de fin de año, y al incremento de testeos con motivo de viaje.

3. 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 observaciones. 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?

Como el dataset de Casos COVID no tiene coordenadas asignadas y no tenemos forma de obtener la información correspondiente, vamos a utilizar un nuevo dataset: COVID 147. Este último contiene información sobre los contactos a la línea de atencion al vecino (147) en temas vinculados al COVID.

Descargamos el dataset:

covid147 <- read.csv("data/covid147.csv", 
                         encoding = "UTF-8", stringsAsFactors = TRUE)
names(covid147)
##  [1] "Contacto"              "Periodo"               "Categoria"            
##  [4] "Fecha_ingreso"         "Comuna"                "Barrio"               
##  [7] "Domicilio_calle"       "Domicilio_altura"      "Lat"                  
## [10] "Long"                  "Canal"                 "Estado_del_contacto"  
## [13] "Fecha_cierre_contacto" "DETALLE_RECLAMO"
summary(covid147)
##     Contacto         Periodo                                Categoria    
##  Min.   : 89330   Min.   :202003   Asistencia Logistica          :16922  
##  1st Qu.:124642   1st Qu.:202004   El voluntario no se comunica  : 5823  
##  Median :170494   Median :202004   Ambas                         : 5768  
##  Mean   :201745   Mean   :202005   Logistística                  : 5184  
##  3rd Qu.:265661   3rd Qu.:202006   Solicita cambio de voluntario.: 4859  
##  Max.   :432034   Max.   :202101   Resolución logística en 24 hs.: 1805  
##                                    (Other)                       : 6511  
##              Fecha_ingreso            Comuna            Barrio     
##  21/04/2020 15:53:55:    3   CABA        : 9764            : 4320  
##  23/04/2020 10:58:15:    3               : 6307   Palermo  : 1947  
##  31/03/2020 11:09:55:    3   caba        : 4605   Recoleta : 1708  
##  01/04/2020 08:40:22:    2   buenos aires: 1744   Caballito: 1283  
##  01/04/2020 11:08:13:    2   Comuna 1    : 1712   Belgrano : 1273  
##  01/04/2020 11:08:14:    2   Buenos Aires: 1614   Almagro  : 1061  
##  (Other)            :46857   (Other)     :21126   (Other)  :35280  
##               Domicilio_calle  Domicilio_altura         Lat        
##  Avenida Rivadavia    :  399   Min.   :0.000e+00   Min.   :-42.78  
##  Avenida Córdoba      :  277   1st Qu.:9.660e+02   1st Qu.:-34.63  
##  Avenida Independencia:  270   Median :1.953e+03   Median :-34.61  
##  Avenida Eva Perón    :  265   Mean   :3.358e+06   Mean   :-34.55  
##  Avenida Corrientes   :  264   3rd Qu.:3.185e+03   3rd Qu.:-34.59  
##  Laprida              :  243   Max.   :1.572e+11   Max.   : 51.22  
##  (Other)              :45154   NA's   :16          NA's   :1       
##       Long            Canal      Estado_del_contacto
##  Min.   :-69.93   Min.   :147              :    1   
##  1st Qu.:-58.47   1st Qu.:147   Solucionado:46871   
##  Median :-58.44   Median :147                       
##  Mean   :-58.39   Mean   :147                       
##  3rd Qu.:-58.41   3rd Qu.:147                       
##  Max.   : 18.42   Max.   :147                       
##  NA's   :1        NA's   :1                         
##          Fecha_cierre_contacto                              DETALLE_RECLAMO 
##  07/05/2020 15:33:42:    3     2 - Solo requiere compras            : 8788  
##  18/05/2020 14:38:49:    3     4 - Otros                            : 5105  
##  25/04/2020 15:43:09:    3     Solicita cambio de voluntario.       : 4859  
##  01/06/2020 16:22:34:    2     Llamado telefónico y logística       : 4536  
##  01/06/2020 16:24:54:    2     1 - Realizar Compras y pasear mascota: 4131  
##  01/06/2020 16:25:43:    2     Tiene Voluntario asignado en sistema : 3115  
##  (Other)            :46857     (Other)                              :16338
str(covid147)
## 'data.frame':    46872 obs. of  14 variables:
##  $ Contacto             : int  132218 109012 128299 121279 119219 247629 314830 104769 117632 170870 ...
##  $ Periodo              : int  202004 202004 202004 202004 202004 202006 202007 202003 202004 202004 ...
##  $ Categoria            : Factor w/ 19 levels "Adulto mayor solicita baja al programa",..: 9 2 13 13 13 3 3 13 2 2 ...
##  $ Fecha_ingreso        : Factor w/ 46534 levels "01/04/2020 08:07:09",..: 22316 368 19425 12071 10372 3359 33611 43407 8986 39152 ...
##  $ Comuna               : Factor w/ 234 levels "","-1103","0",..: 1 86 70 123 70 66 128 91 87 1 ...
##  $ Barrio               : Factor w/ 2554 levels "","-monserrat",..: 764 1593 2119 617 2051 222 17 388 2396 1 ...
##  $ Domicilio_calle      : Factor w/ 6491 levels "","[DESCONOCIDA]",..: 5070 3229 2282 1389 4498 1848 1592 6269 395 6324 ...
##  $ Domicilio_altura     : num  1654 255 5725 3842 5455 ...
##  $ Lat                  : num  -34.6 -34.6 -34.6 -34.6 -34.6 ...
##  $ Long                 : num  -58.5 -58.5 -58.4 -58.5 -58.5 ...
##  $ Canal                : int  147 147 147 147 147 147 147 147 147 147 ...
##  $ Estado_del_contacto  : Factor w/ 2 levels "","Solucionado": 2 2 2 2 2 2 2 2 2 2 ...
##  $ Fecha_cierre_contacto: Factor w/ 46471 levels "","01/04/2020 11:18:40",..: 24937 25505 30653 18610 7596 1341 41411 39194 32837 5720 ...
##  $ DETALLE_RECLAMO      : Factor w/ 45 levels "","1 - Realizar Compras y pasear mascota",..: 39 26 2 2 4 3 8 2 26 26 ...

Convertimos la columna Fecha_ingreso a una clase de formato de datos temporales:

covid147_1 <- covid147 %>%
  mutate(fecha=dmy_hms(Fecha_ingreso))
class(covid147_1$Fecha_ingreso)
## [1] "factor"
covid147_2 <- covid147_1 %>%
  mutate(Fecha_ingreso=dmy_hms(Fecha_ingreso))
class(covid147_2$Fecha_ingreso)
## [1] "POSIXct" "POSIXt"
str(covid147_2)
## 'data.frame':    46872 obs. of  15 variables:
##  $ Contacto             : int  132218 109012 128299 121279 119219 247629 314830 104769 117632 170870 ...
##  $ Periodo              : int  202004 202004 202004 202004 202004 202006 202007 202003 202004 202004 ...
##  $ Categoria            : Factor w/ 19 levels "Adulto mayor solicita baja al programa",..: 9 2 13 13 13 3 3 13 2 2 ...
##  $ Fecha_ingreso        : POSIXct, format: "2020-04-16 14:57:55" "2020-04-01 12:11:04" ...
##  $ Comuna               : Factor w/ 234 levels "","-1103","0",..: 1 86 70 123 70 66 128 91 87 1 ...
##  $ Barrio               : Factor w/ 2554 levels "","-monserrat",..: 764 1593 2119 617 2051 222 17 388 2396 1 ...
##  $ Domicilio_calle      : Factor w/ 6491 levels "","[DESCONOCIDA]",..: 5070 3229 2282 1389 4498 1848 1592 6269 395 6324 ...
##  $ Domicilio_altura     : num  1654 255 5725 3842 5455 ...
##  $ Lat                  : num  -34.6 -34.6 -34.6 -34.6 -34.6 ...
##  $ Long                 : num  -58.5 -58.5 -58.4 -58.5 -58.5 ...
##  $ Canal                : int  147 147 147 147 147 147 147 147 147 147 ...
##  $ Estado_del_contacto  : Factor w/ 2 levels "","Solucionado": 2 2 2 2 2 2 2 2 2 2 ...
##  $ Fecha_cierre_contacto: Factor w/ 46471 levels "","01/04/2020 11:18:40",..: 24937 25505 30653 18610 7596 1341 41411 39194 32837 5720 ...
##  $ DETALLE_RECLAMO      : Factor w/ 45 levels "","1 - Realizar Compras y pasear mascota",..: 39 26 2 2 4 3 8 2 26 26 ...
##  $ fecha                : POSIXct, format: "2020-04-16 14:57:55" "2020-04-01 12:11:04" ...

A continuación, armamos el camino para observar cuántos contactos a la línea 147 hubo por mes para el año 2020.

Generamos nuevas columnas para las variables mes y año:

covid147_2 <- covid147_2 %>%
  mutate(anio= substr(Fecha_ingreso, 1,4),  
         mes= substr(Fecha_ingreso, 6,7))

Filtramos los datos del año 2020:

covid147_2020 <- filter(covid147_2, anio=="2020")
head(covid147_2020)
##   Contacto Periodo                    Categoria       Fecha_ingreso    Comuna
## 1   132218  202004 El voluntario no se comunica 2020-04-16 14:57:55          
## 2   109012  202004                        Ambas 2020-04-01 12:11:04   capital
## 3   128299  202004                 Logistística 2020-04-14 10:04:56      CABA
## 4   121279  202004                 Logistística 2020-04-08 12:26:19 Comuna 11
## 5   119219  202004                 Logistística 2020-04-07 13:24:41      CABA
## 6   247629  202006         Asistencia Logistica 2020-06-02 16:12:29      Caba
##         Barrio     Domicilio_calle Domicilio_altura       Lat      Long Canal
## 1    Caballito        Pedro Goyena             1654 -34.62847 -58.45159   147
## 2     floresta                goya              255 -34.63203 -58.48657   147
## 3      Palermo coronel niceto vega             5725 -34.58560 -58.44050   147
## 4          BPJ    Avenida Segurola             3842 -34.60343 -58.51601   147
## 5 Monte castro             Miranda             5455 -34.62720 -58.51078   147
## 6      Almagro   CALVO, CARLOS AV.             4198 -34.62505 -58.42435   147
##   Estado_del_contacto Fecha_cierre_contacto
## 1         Solucionado   18/04/2020 16:06:48
## 2         Solucionado   18/05/2020 12:13:09
## 3         Solucionado   21/04/2020 10:34:37
## 4         Solucionado   13/08/2020 16:59:18
## 5         Solucionado   06/07/2020 11:10:50
## 6         Solucionado   02/06/2020 16:12:40
##                                  DETALLE_RECLAMO               fecha anio mes
## 1             Solicita le asignen un voluntario. 2020-04-16 14:57:55 2020  04
## 2                 Llamado telefónico y logística 2020-04-01 12:11:04 2020  04
## 3          1 - Realizar Compras y pasear mascota 2020-04-14 10:04:56 2020  04
## 4          1 - Realizar Compras y pasear mascota 2020-04-08 12:26:19 2020  04
## 5                       2 - Solo realiza compras 2020-04-07 13:24:41 2020  04
## 6 1 - Requiere le hagan compras y paseen mascota 2020-06-02 16:12:29 2020  06

Graficamos:

ggplot(covid147_2020) + 
    geom_bar(aes(x = mes)) +
    labs(title = "Cantidad de contactos al 147 en CABA",
         subtitle = "Contactos registrados en 2020",
         x = "Mes",
         y = "Cantidad",
         caption = "Fuente: BA Data")

Se observa un pico de llamados bastante siginificativo en el mes de abril de 2020. Posterior a esto, comienza a haber una tendencia a la baja.

A continuación, pasamos a analizar los datos espaciales de nuestro dataset.

Decargamos un “mapa base” y lo asociamos a las coordenadas del dataset COVID 147. Para eso, primero vamos a filtrar las coordenadas que vemos que no corresponden con los límites de CABA.

covid147_2020_1 <- filter(covid147_2020, Lat <= -34.52655, Lat >= -34.70564, Long <= -58.33514, Long >= -58.53145)

Armamos nuestro “mapa base”:

bbox1 <- make_bbox(covid147_2020_1$Long, covid147_2020_1$Lat)
mapa_base <- get_stamenmap(bbox = bbox1,
                           maptype = "toner-lite",
                           zoom = 12)
## Source : http://tile.stamen.com/toner-lite/12/1381/2466.png
## Source : http://tile.stamen.com/toner-lite/12/1382/2466.png
## Source : http://tile.stamen.com/toner-lite/12/1383/2466.png
## Source : http://tile.stamen.com/toner-lite/12/1384/2466.png
## Source : http://tile.stamen.com/toner-lite/12/1381/2467.png
## Source : http://tile.stamen.com/toner-lite/12/1382/2467.png
## Source : http://tile.stamen.com/toner-lite/12/1383/2467.png
## Source : http://tile.stamen.com/toner-lite/12/1384/2467.png
## Source : http://tile.stamen.com/toner-lite/12/1381/2468.png
## Source : http://tile.stamen.com/toner-lite/12/1382/2468.png
## Source : http://tile.stamen.com/toner-lite/12/1383/2468.png
## Source : http://tile.stamen.com/toner-lite/12/1384/2468.png
## Source : http://tile.stamen.com/toner-lite/12/1381/2469.png
## Source : http://tile.stamen.com/toner-lite/12/1382/2469.png
## Source : http://tile.stamen.com/toner-lite/12/1383/2469.png
## Source : http://tile.stamen.com/toner-lite/12/1384/2469.png
ggmap(mapa_base)

Graficamos nuestros datos:

ggmap(mapa_base) +
  geom_bin2d(data = covid147_2020_1, 
             aes(x = Long, y = Lat), bins=50)+
  scale_fill_viridis_c(option = "magma", direction=-1)+
  labs(title = "Cantidad de contactos al 147 en CABA",
         subtitle = "Contactos registrados en 2020",
         fill = "Cantidad",
         caption = "Fuente: BA Data") +
  theme_void()

Como se puede observar, la mayor cantidad de contactos al 147 se encuentra en las comunas 1, 2 y 14, agregando una tendencia a concentrarse en el centro de CABA y en todo el corredor norte.

Realizamos el análisis temporal y espacial de los casos por mes:

ggmap(mapa_base) +
    geom_bin2d(data =  covid147_2020_1, 
               aes(x = Long, y = Lat), bins=50)+
  scale_fill_viridis_c(option = "magma", direction=-1)+
  labs(title = "Cantidad de contactos al 147 en CABA",
         subtitle = "Contactos registrados por mes en 2020",
         fill = "Cantidad",
         caption = "Fuente: BA Data") +
  facet_wrap(~mes)+ 
  theme_void()

El facetado nos demuestra que, a nivel temporal, los datos varían mes a mes. La mayor cantidad de llamados al 147 se encuentra en el mes de abril. En los meses posteriores la tendencia es a la baja, llegando a encontrar una cantidad mínima de contactos en el mes de diciembre.

En cuanto al análisis espacial, se observa que, a diferencia del mes de abril, donde la mayor cantidad de llamados parece contrarse en el corredor norte y en el centro de CABA, en el mes de mayo la concentración de llamados parece tender a distribuirse de manera más equilibrada en toda la ciudad. En los meses de octubre y noviembre se encuentra un punto de gran concentración de contactos al 147, en lo que pareciera ser el límite entra las comunas 4 y 1. LLegando a diciembre, no se encuentran diferencias significativas entre los llamados por zonas.