Reporte del comportamiento Espacio temporal de los homicidios en cali

La siguiente presentación contiene resultados sobre el comportamiento de la violencia en cali a nivel espacial y temporal.

La base de datos contiene los casos georreferenciados de cada homicidio en la ciudad al igual que covariables de la persona y el contexto del evento.

require(raster)
require(ggplot2)
require(lubridate)
require(plotly)

comunas=shapefile("C:/Users/Daniel Goyes/Desktop/dinamica_prueba/Violencia_Cali/shp/Comunas/bcs_lim_comunas_WGS84.shp")
homicidios=shapefile("C:/Users/Daniel Goyes/Desktop/dinamica_prueba/Violencia_Cali/shp/Homicidios/homicidios.shp")
homicidios$fechah=as.Date(homicidios$fechah)
homicidios_tabla=homicidios@data
plot(comunas)
points(homicidios,col="red",pch=16,cex=0.5) 

En la figura se observa el mapa de cali con los puntos de homicidios ocurridos en la ciudad.

casos=over(comunas,homicidios[,1], fn = length)## Conteo de homicidios por comuna, El shape comunas no tiene el campo homicidios usamos over para relacionar los dos shapes de comunas y homicidios y contar los homicidios por comuna función lenght es conteo

casos[,1]
##  [1] 262 107  63 160 185 194 398 488 162 504 182 148 355 183 552 122 213   7 114
## [20]  72 155 110
comunas@data$casos=casos[,1]## Asignamos el campo casos al shape de comunas, nos muestra esta información en el shape.
spplot(comunas[,6]) ## Visualizar shape por rango de colores con escala

lbls <- as.character(comunas$COMUNA)##Etiqueta con el numero de comunas en el mapa
spl <- list('sp.text' , coordinates(comunas), lbls, cex=.6)
spplot(comunas[,6], col.regions= heat.colors(20, .95, .4), sp.layout = spl)

Se observa en el mapa que los casos de homicidios se enfocan principalmente en las comunas del oriente de la ciudad (Comunas 13, 14, 15 y 21) y la zona de ladera en el occidente (Comuna 20)

homicidios_tabla$fecha=substr(homicidios_tabla$fechah,1,7)
g1=ggplot(data = homicidios_tabla,aes(x=fecha))+geom_bar()+theme_bw()+ 
  theme(axis.text.x = element_text(angle = 90)) 
ggplotly(g1)

Casos por día de la semana

homicidios_tabla=data.frame(homicidios_tabla)
homicidios_tabla$diasem=factor(homicidios_tabla$diasem,levels = c("LUNES","MARTES","MIERCOLES","JUEVES","VIERNES","SABADO","DOMINGO"))
g2=ggplot(homicidios_tabla,aes(x=diasem))+geom_bar()+theme_bw()
ggplotly(g2)

Casos por rangos de Edad

g3=ggplot(homicidios_tabla,aes(x=EDAD))+geom_histogram()+theme_bw()
ggplotly(g3)

Casos por Edad y Sexo

g4=ggplot(homicidios_tabla,aes(y=EDAD, X=SEXO, fill=SEXO))+geom_histogram()+theme_bw()
ggplotly(g4)
g5=ggplot(homicidios_tabla,aes(y=EDAD,x=SEXO, fill= SEXO))+geom_boxplot()+theme_bw()
ggplotly(g5)

se observa que en el caso de la edad no se presentan diferencias significativas entre hombres y mujeres- En ambos grupos la mayoría de los casos ocurren en personas jovenes.

Mapa de casos por comunas

casos=as.numeric(unlist(over(comunas,homicidios[,1],fn = length)))
comunas$casos=casos

require(leaflet)
require(RColorBrewer)
require(classInt)

pal_fun <- colorQuantile("YlOrRd", NULL, n = 5)
breaks_qt <- classIntervals(comunas@data$casos, n = 5, style = "quantile")

m=leaflet(comunas) %>%
  addPolygons(
    stroke = FALSE,
    fillColor = ~pal_fun(casos),
    fillOpacity = 0.8, smoothFactor = 0.5,
    popup = casos,
    group = "Comunas") %>%
  addTiles()%>%
  addLegend("bottomright", 
            colors = brewer.pal(5, "YlOrRd"), 
            labels = paste0(format(breaks_qt$brks[-1], digits = 1)),
            title =  'Homicidios- Cali')%>%
  addLayersControl(baseGroups = c("OSM"), 
                   overlayGroups = c("Comunas","Casos")) %>%
  addMarkers(lng = homicidios_tabla$x,lat = homicidios_tabla$y,clusterOptions = markerClusterOptions(),label = homicidios_tabla$fechah,group = "Casos")

m