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)
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)
g3=ggplot(homicidios_tabla,aes(x=EDAD))+geom_histogram()+theme_bw()
ggplotly(g3)
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.
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