ANÁLISIS Y MANIPULACIÓN DE DATOS

Análisis de los Delitos en la Ciudad Autónoma de Buenos Aires

2019 - 2020

 delitos2019.2020 <- read.csv("C:/Users/kamfc/Escritorio/Diplomatura en Ciudades/Ciencia de Datos 2021-2022/2022/INTRO-Datos/Data/delitos2019-2020.csv", stringsAsFactors = TRUE)

Partimos de una base de datos de más de 18.000 observaciones o registros, con 12 variables. Vamos a filtrarla un poco para entrar en detalles.

summary(delitos2019.2020)
##       fecha        franja_horaria       anio             mes       
##  11-03-19:   468   Min.   : 0.00   Min.   :2019   enero    :20372  
##  20-03-19:   453   1st Qu.: 9.00   1st Qu.:2019   febrero  :19538  
##  13-09-19:   450   Median :14.00   Median :2019   marzo    :17280  
##  08-03-19:   444   Mean   :13.06   Mean   :2019   noviembre:16638  
##  21-06-19:   440   3rd Qu.:18.00   3rd Qu.:2020   diciembre:16506  
##  02-11-19:   433   Max.   :23.00   Max.   :2020   octubre  :16000  
##  (Other) :186521   NA's   :500                    (Other)  :82875  
##     periodo                          tipo                  subtipo      
##  2019-03: 11247   Homicidio            :  399                  :169290  
##  2019-01: 10507   Hurto (sin violencia):75015   Hurto Automotor:  7304  
##  2019-05: 10435   Lesiones             :16506   Siniestro Vial :  6581  
##  2019-10: 10260   Robo (con violencia) :97289   Con uso de moto:  3734  
##  2019-04: 10256                                 Robo Automotor :  2082  
##  2019-02: 10141                                 Doloso         :   205  
##  (Other):126363                                 (Other)        :    13  
##          uso_armas          comuna         victimas           lat        
##               : 59444   Min.   : 1.00   Min.   : 1.00    Min.   :-34.70  
##  Arma cortante:  2258   1st Qu.: 3.00   1st Qu.: 1.00    1st Qu.:-34.63  
##  Arma de fuego:  5023   Median : 7.00   Median : 1.00    Median :-34.61  
##  SD           :122484   Mean   : 7.25   Mean   : 1.17    Mean   :-34.61  
##                         3rd Qu.:12.00   3rd Qu.: 1.00    3rd Qu.:-34.59  
##                         Max.   :15.00   Max.   :16.00    Max.   :-34.53  
##                         NA's   :1103    NA's   :178704   NA's   :1239    
##       lon        
##  Min.   :-58.53  
##  1st Qu.:-58.47  
##  Median :-58.43  
##  Mean   :-58.43  
##  3rd Qu.:-58.40  
##  Max.   :-58.34  
##  NA's   :1239

Se observa que dentro de las variables hay varias columnas que refieren al momento de ocurrencia de los hechos: “fecha”, “anio”, “mes”, “periodo”. Esta información se vuelve un poco redundante, por eso vamos a simplificarla. Para esto instalamos Tidyverse.

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.3
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.4     v dplyr   1.0.7
## v tidyr   1.1.3     v stringr 1.4.0
## v readr   2.0.1     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

Dentro de los tipos de delitos, vamos a elegir quedarnos con las lesiones (que son un total de 16.506 registros), para eso filtramos.

filtro_lesiones <- filter(delitos2019.2020, tipo=="Lesiones")

y para entender la nueva base de datos llama filtro_lesiones hacemos un resumen:

summary(filtro_lesiones)
##       fecha       franja_horaria       anio              mes      
##  23/01/20:   69   Min.   : 0.00   Min.   :2019   febrero   :1593  
##  06-05-19:   57   1st Qu.:10.00   1st Qu.:2019   enero     :1507  
##  21-08-19:   55   Median :14.00   Median :2019   marzo     :1492  
##  16-04-19:   54   Mean   :13.74   Mean   :2019   octubre   :1490  
##  14-05-19:   52   3rd Qu.:18.00   3rd Qu.:2020   mayo      :1395  
##  13-09-19:   51   Max.   :23.00   Max.   :2020   septiembre:1394  
##  (Other) :16168                                  (Other)   :7635  
##     periodo                         tipo                          subtipo     
##  2019-05: 1060   Homicidio            :    0                          :10106  
##  2019-04:  976   Hurto (sin violencia):    0   Siniestro Vial         : 6400  
##  2019-03:  963   Lesiones             :16506   Con uso de moto        :    0  
##  2019-07:  943   Robo (con violencia) :    0   Doloso                 :    0  
##  2019-08:  909                                 Femicidio              :    0  
##  2019-06:  899                                 Femicidio Intrafamiliar:    0  
##  (Other):10756                                 (Other)                :    0  
##          uso_armas         comuna         victimas          lat        
##               : 6400   Min.   : 1.00   Min.   : 1.00   Min.   :-34.70  
##  Arma cortante:    0   1st Qu.: 4.00   1st Qu.: 1.00   1st Qu.:-34.63  
##  Arma de fuego:    0   Median : 8.00   Median : 1.00   Median :-34.61  
##  SD           :10106   Mean   : 7.89   Mean   : 1.17   Mean   :-34.61  
##                        3rd Qu.:12.00   3rd Qu.: 1.00   3rd Qu.:-34.59  
##                        Max.   :15.00   Max.   :16.00   Max.   :-34.53  
##                        NA's   :821     NA's   :6400    NA's   :831     
##       lon        
##  Min.   :-58.53  
##  1st Qu.:-58.48  
##  Median :-58.44  
##  Mean   :-58.44  
##  3rd Qu.:-58.41  
##  Max.   :-58.35  
##  NA's   :831

Se observa de entrada que los tipos de delitos estan filtrados por lesiones, y su principal subtipo es “siniestro vial”. Además, otro dato interesante para interpretar es que los meses del año con mayores registros son Febrero y Enero, continuando por Marzo, es decir la major parte del verano, cuando la Ciudad de Buenos Aires suele encontrarse con menos personas circulando por las calles, ya sea por los días de calor o porque muchas personas se encuentran de vaciones en las afueras de la Ciudad. Además la franja horaria promedio en la que suceden estos delitos, es alrededor de las 14 hs, y pareciera ser que la mayoria de los casos suceden en la Comuna 8 de CABA.

Vamos a seguir limpiando un poco mas la base para sacar la info que no nos interesa, o que no nos dice nada como los NA´s.

seleccion_lesiones <- select(filtro_lesiones, -anio, -lat, -lon, -periodo)

Ordenamos segun franja horaria de cada día, se empieza a entender un poco más de cada día cuales son los horarios en los que hay registro.

orden_diario <- arrange(seleccion_lesiones, fecha, franja_horaria)

Pero todavia seguimos teniendo bastantes datos/observaciones para analizar. Vamos a modificar un poco la base. Unificamos la fecha con franja horaria:

mutar_lesiones <- mutate(orden_diario, fecha_hora=paste(fecha, franja_horaria, sep="/"))

Sacamos las 2 columnas de fecha y franja horaria, asi nos quedamos con la nueva que contiene la información de ambas.

mutar_lesiones <- select(mutar_lesiones, -fecha, -franja_horaria)

Todos los registros como NA, los sacamos porque no dan información clara de los delitos que queremos analizar.

lesiones_sinNA <- filter(mutar_lesiones, !is.na(comuna))

Sólo filtrando los NA de la variable COMUNA, el total de registros pasó de 16.506 a 15.685.

summary(lesiones_sinNA)
##          mes                          tipo                          subtipo    
##  febrero   :1505   Homicidio            :    0                          :9591  
##  octubre   :1433   Hurto (sin violencia):    0   Siniestro Vial         :6094  
##  enero     :1432   Lesiones             :15685   Con uso de moto        :   0  
##  marzo     :1419   Robo (con violencia) :    0   Doloso                 :   0  
##  septiembre:1332                                 Femicidio              :   0  
##  mayo      :1329                                 Femicidio Intrafamiliar:   0  
##  (Other)   :7235                                 (Other)                :   0  
##          uso_armas        comuna         victimas       fecha_hora       
##               :6094   Min.   : 1.00   Min.   : 1.000   Length:15685      
##  Arma cortante:   0   1st Qu.: 4.00   1st Qu.: 1.000   Class :character  
##  Arma de fuego:   0   Median : 8.00   Median : 1.000   Mode  :character  
##  SD           :9591   Mean   : 7.89   Mean   : 1.169                     
##                       3rd Qu.:12.00   3rd Qu.: 1.000                     
##                       Max.   :15.00   Max.   :16.000                     
##                                       NA's   :6094

Con este nuevo resumen, algunos analisis preliminares cambian. Por ejemplo, en cuanto a los meses con mayores registros, sigue estando Febrero en primer lugar, pero ahora Octubre pasó a estar en un segundo lugar de cantidad de delitos registrados en dicho mes; dejando a enero y marzo en tercer y cuarto puesto, respectivamemte. Todavia hay unos 6mil registros en “victimas” que no nos dicen nada. Los sacamos.

lesiones_sinNA <- filter(lesiones_sinNA, !is.na(victimas))

Ahora si tenemos una base un poco mejor que la original, para interpretar. El total de registros pasó a ser 9.591, con 7 variables.

summary(lesiones_sinNA)
##       mes                          tipo                         subtipo    
##  mayo   :1017   Homicidio            :   0                          :9591  
##  abril  : 910   Hurto (sin violencia):   0   Con uso de moto        :   0  
##  julio  : 907   Lesiones             :9591   Doloso                 :   0  
##  marzo  : 904   Robo (con violencia) :   0   Femicidio              :   0  
##  agosto : 879                                Femicidio Intrafamiliar:   0  
##  octubre: 854                                Hurto Automotor        :   0  
##  (Other):4120                                (Other)                :   0  
##          uso_armas        comuna          victimas       fecha_hora       
##               :   0   Min.   : 1.000   Min.   : 1.000   Length:9591       
##  Arma cortante:   0   1st Qu.: 4.000   1st Qu.: 1.000   Class :character  
##  Arma de fuego:   0   Median : 8.000   Median : 1.000   Mode  :character  
##  SD           :9591   Mean   : 7.912   Mean   : 1.169                     
##                       3rd Qu.:12.000   3rd Qu.: 1.000                     
##                       Max.   :15.000   Max.   :16.000                     
## 

Finalmente vemos que vuelven a cambiar los meses con mayor cantidad de registro, pasando en primer lugar el mes de mayo com 1017 lesiones del total de 9.591, luego abril y julio, en tercer lugar; con un total de 910 y 907 delitos identificados, respectivamente. Dejando a Octubre en un lugar más abajo, en cuanto a registros.

vamos a agrupar y resumir algunos datos:

agrupar_comunas <- group_by(lesiones_sinNA, comuna)

resumen <- summarise(agrupar_comunas, victimas=n())

Ahora si, con este resumen identificamos la cantidad de victimas por comuna, observando que las comunas 1 y 15 son las que presentan mayor cantidad, seguidas por las comunas 4 y 3.

summary(resumen)
##      comuna        victimas     
##  Min.   : 1.0   Min.   : 407.0  
##  1st Qu.: 4.5   1st Qu.: 529.5  
##  Median : 8.0   Median : 618.0  
##  Mean   : 8.0   Mean   : 639.4  
##  3rd Qu.:11.5   3rd Qu.: 718.0  
##  Max.   :15.0   Max.   :1121.0

Ahora con este nuevo resumen podemos observar la cantidad de victimas asociadas a lesiones, por comuna.

                                                            *~FIN Version 2 ~*