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 ~*