Los 6 tipos de delitos más registrados en la CDMX son:
## `summarise()` ungrouping output (override with `.groups` argument)
| Tipo de delito | Delitos registrados |
|---|---|
| DELITO DE BAJO IMPACTO | 96679 |
| ROBO DE VEHICULO CON Y SIN VIOLENCIA | 6707 |
| ROBO A TRANSEUNTE EN VIA PUBLICA CON Y SIN VIOLENCIA | 6452 |
| ROBO A NEGOCIO CON VIOLENCIA | 2389 |
| HECHO NO DELICTIVO | 2368 |
| ROBO A REPARTIDOR CON Y SIN VIOLENCIA | 1441 |
La incidencia delictiva por alcaldía:
## `summarise()` ungrouping output (override with `.groups` argument)
| Alcaldía | Delitos registrados |
|---|---|
| IZTAPALAPA | 19039 |
| CUAUHTEMOC | 16040 |
| GUSTAVO A. MADERO | 13190 |
| BENITO JUAREZ | 8802 |
| ALVARO OBREGON | 8792 |
| COYOACAN | 8010 |
| TLALPAN | 7678 |
| MIGUEL HIDALGO | 7343 |
| VENUSTIANO CARRANZA | 7248 |
| AZCAPOTZALCO | 6026 |
| IZTACALCO | 4944 |
| XOCHIMILCO | 4225 |
| TLAHUAC | 3501 |
| LA MAGDALENA CONTRERAS | 2315 |
| CUAJIMALPA DE MORELOS | 1821 |
| MILPA ALTA | 952 |
Para las 5 alcaldías con más actividad criminal se mostrará información más detallada.
| Tipo de Delito | Enero | Febrero | Marzo | Abril | Mayo | Junio | Julio | Agosto | Total |
|---|---|---|---|---|---|---|---|---|---|
| DELITO DE BAJO IMPACTO | 2141 | 2252 | 2361 | 1359 | 1374 | 1535 | 1733 | 1673 | 14428 |
| ROBO DE VEHICULO CON Y SIN VIOLENCIA | 187 | 182 | 172 | 146 | 141 | 179 | 159 | 153 | 1319 |
| ROBO A TRANSEUNTE EN VIA PUBLICA CON Y SIN VIOLENCIA | 174 | 204 | 211 | 123 | 118 | 127 | 144 | 132 | 1233 |
| ROBO A NEGOCIO CON VIOLENCIA | 44 | 72 | 85 | 66 | 68 | 65 | 63 | 54 | 517 |
| HECHO NO DELICTIVO | 60 | 52 | 53 | 54 | 63 | 37 | 43 | 38 | 400 |
| Tipo de Delito | Enero | Febrero | Marzo | Abril | Mayo | Junio | Julio | Agosto | Total |
|---|---|---|---|---|---|---|---|---|---|
| DELITO DE BAJO IMPACTO | 2359 | 2378 | 2235 | 1174 | 1263 | 1293 | 1563 | 1459 | 13724 |
| ROBO A TRANSEUNTE EN VIA PUBLICA CON Y SIN VIOLENCIA | 159 | 119 | 129 | 81 | 80 | 67 | 111 | 106 | 852 |
| HECHO NO DELICTIVO | 58 | 62 | 57 | 49 | 40 | 52 | 35 | 35 | 388 |
| ROBO DE VEHICULO CON Y SIN VIOLENCIA | 50 | 55 | 50 | 33 | 34 | 44 | 43 | 34 | 343 |
| ROBO A NEGOCIO CON VIOLENCIA | 19 | 18 | 27 | 20 | 30 | 16 | 24 | 29 | 183 |
| Tipo de Delito | Enero | Febrero | Marzo | Abril | Mayo | Junio | Julio | Agosto | Total |
|---|---|---|---|---|---|---|---|---|---|
| DELITO DE BAJO IMPACTO | 1436 | 1651 | 1528 | 1050 | 1083 | 1191 | 1340 | 1170 | 10449 |
| ROBO DE VEHICULO CON Y SIN VIOLENCIA | 116 | 129 | 133 | 98 | 100 | 95 | 102 | 77 | 850 |
| ROBO A TRANSEUNTE EN VIA PUBLICA CON Y SIN VIOLENCIA | 114 | 91 | 113 | 48 | 56 | 62 | 70 | 80 | 634 |
| ROBO A NEGOCIO CON VIOLENCIA | 45 | 51 | 46 | 25 | 35 | 35 | 44 | 41 | 322 |
| HECHO NO DELICTIVO | 37 | 43 | 31 | 31 | 36 | 48 | 43 | 26 | 295 |
| Tipo de Delito | Enero | Febrero | Marzo | Abril | Mayo | Junio | Julio | Agosto | Total |
|---|---|---|---|---|---|---|---|---|---|
| DELITO DE BAJO IMPACTO | 1224 | 1300 | 1138 | 611 | 722 | 763 | 867 | 817 | 7442 |
| ROBO DE VEHICULO CON Y SIN VIOLENCIA | 60 | 83 | 72 | 49 | 59 | 70 | 64 | 44 | 501 |
| ROBO A TRANSEUNTE EN VIA PUBLICA CON Y SIN VIOLENCIA | 61 | 61 | 54 | 44 | 35 | 38 | 54 | 41 | 388 |
| HECHO NO DELICTIVO | 24 | 20 | 20 | 17 | 16 | 16 | 24 | 17 | 154 |
| ROBO A NEGOCIO CON VIOLENCIA | 13 | 9 | 14 | 14 | 20 | 12 | 13 | 7 | 102 |
| Tipo de Delito | Enero | Febrero | Marzo | Abril | Mayo | Junio | Julio | Agosto | Total |
|---|---|---|---|---|---|---|---|---|---|
| DELITO DE BAJO IMPACTO | 1041 | 1076 | 1045 | 672 | 675 | 770 | 854 | 794 | 6927 |
| ROBO A TRANSEUNTE EN VIA PUBLICA CON Y SIN VIOLENCIA | 84 | 87 | 84 | 55 | 52 | 52 | 58 | 71 | 543 |
| ROBO DE VEHICULO CON Y SIN VIOLENCIA | 60 | 65 | 77 | 46 | 45 | 54 | 49 | 50 | 446 |
| ROBO A NEGOCIO CON VIOLENCIA | 39 | 52 | 60 | 42 | 28 | 22 | 22 | 10 | 275 |
| ROBO A REPARTIDOR CON Y SIN VIOLENCIA | 18 | 22 | 27 | 19 | 23 | 19 | 28 | 27 | 183 |
## `summarise()` ungrouping output (override with `.groups` argument)
Porcentaje de incidencia criminal por alcaldía.
mapadel = MXMunicipioChoropleth$new(df_map)
mapadel$title = "Porcentaje de delitos por alcaldía"
mapadel$set_num_colors(1)
mapadel$ggplot_scale <- scale_fill_viridis("Porcentaje", labels = percent)
mapadel$set_zoom(df_map$region)
mapadel$render()
Mostramos a continuación las zonas con mayor número de delitos dentro de las 5 alcaldías con más delictivas.
izta <- get_coord("iztapalapa")
map_izta <- map(izta, "alcaldia")
plot_map(map_izta, df, "IZTAPALAPA", c(10,20,50,100))
cuau <- get_coord("cuauhtemoc, ciudad de mexico")
map_cuau <- map(cuau, "alcaldia")
plot_map(map_cuau, df, "CUAUHTEMOC", c(10, 20, 50, 80), size = 15)
gust <- get_coord("gustavo a. madero, ciudad de mexico")
map_gust <- map(gust, "alcaldia")
plot_map(map_gust, df, "GUSTAVO A. MADERO", c(5, 10, 20, 30), size = 15)
beno <- get_coord("benito juarez, ciudad de mexico")
map_beno <- map(beno, "alcaldia")
plot_map(map_beno, df, "BENITO JUAREZ", c(3, 5, 10), size = 15)
obr <- get_coord("alvaro obregon, ciudad de mexico")
map_obr <- map(obr, "alcaldia")
plot_map(map_obr, df, "ALVARO OBREGON", c(2, 5, 10), size = 15)Gráfica de los delitos más comunes en la CDMX por mes.
Gráfica de las fiscalías que más abrieron carpetas de investigación por mes.
La clave para Google se encuentra inactiva desde el momento en que se subió este código.
library(tidyverse)
library(reshape)
library(ggmap)
library(tmap)
library(tmaptools)
library(mxmaps)
library(ggplot2)
library(tmap)
library(tmaptools)
library(data.table)
library(stringi)
library(ggrepel)
library(viridis)
library(scales)
library(leaflet)
library(geojsonio)
library(jsonlite)
library(sf)
library(formattable)
df <- read.csv("C:/Users/LuisAlberto/Documents/Seminario Estadistica/CarpetasInvestigacion.csv",
encoding = 'UTF-8')
register_google(key = "AIzaSyDO22tHBdH6DAP03x3ZeH-ODQVdIOyjbYI")
get_coord <- function(string){
v <- geocode(string, output = "all")
v <- c(v$results[[1]]$geometry$location$lng, v$results[[1]]$geometry$location$lat)
return(v)
}
map <- function(v, type){
if(type == "alcaldia"){
zoom = 13
} else {
zoom = 10
}
mapa <- get_googlemap(center = v, zoom = zoom, maptype = "roadmap", size = c(650, 790))
return(mapa)
}
plot_map <- function(mapa, df, alcaldia, level, size = 12){
fg <- df %>%
filter(alcaldia_hechos == alcaldia) %>%
group_by(colonia_hechos, latitud, longitud) %>%
summarise(no_delitos = n()) %>%
arrange(desc(no_delitos)) %>%
na.omit() %>%
head(10)
ggmap(mapa) + geom_point(aes(x = longitud, y = latitud, size = no_delitos), data = fg, alpha = 0.7) +
scale_size_area(breaks = level, labels = level, max_size = 12, name = "Numero de delitos")
}
clean_geopoint_df <- function(df){
geop <- as.vector(df$geopoint)
splt <- strsplit(geop,",")
long <- c()
lat <- c()
for (i in 1:length(splt)){
lat[i] <- as.double(splt[[i]][1])
long[i] <- as.double(splt[[i]][2])
}
df$longitud <- df$latitud <- df$geopoint <- df$fecha_hechos <- df$fecha_inicio <- df$calle_hechos2 <- NULL
geopoint <- df
geopoint$longitud <-long
geopoint$latitud <- lat
return(geopoint)
}
nombres <- function(){
data("df_mxmunicipio")
df_mxmun <- data.frame(df_mxmunicipio,stringsAsFactors = FALSE)
df_aux <- df_mxmun %>%
filter(state_abbr == "CDMX") %>%
arrange(municipio_name)
df_aux <- data.frame(lapply(df_aux, function(v) {
if (is.character(v)) return(stri_trans_general(toupper(v), "Latin-ASCII"))
else return(v)
}))
nombres <- levels(factor(df_aux$municipio_name))
return(nombres)
}
delitos_cdmx <- function(df, nombres){
df1 <- df %>%
subset(alcaldia_hechos %in% nombres, drop = T) %>%
group_by(categoria_delito) %>%
summarise(no_delitos = n()) %>%
arrange(desc(no_delitos))
colnames(df1) <- c("Tipo de delito", "Delitos registrados")
df1 <- head(df1)
table <- formattable(df1, align = c('l', 'c'),
list(alcaldia_hechos = formatter(
"span", style = ~ style(color = "grey",font.weight = "bold")),
area(col = "Delitos registrados") ~ normalize_bar("pink", 0.2)))
return(table)
}
delitos_cdmx1 <- function(df, nombres){
df1 <- df %>%
subset(alcaldia_hechos %in% nombres, drop = T) %>%
group_by(alcaldia_hechos) %>%
summarise(no_delitos = n()) %>%
arrange(desc(no_delitos))
colnames(df1) <- c("Alcaldía", "Delitos registrados")
table <- formattable(df1, align = c('l', 'c'),
list(alcaldia_hechos = formatter(
"span", style = ~ style(color = "grey",font.weight = "bold")),
area(col = "Delitos registrados") ~ normalize_bar("pink", 0.2)))
return(table)
}
delitos_alcaldia <- function(df, alcaldia){
customGreen0 = "#DeF7E9"
customGreen = "#71CA97"
customRed = "#ff7f7f"
customRed0 = ""
df1 <- df %>%
subset(alcaldia_hechos %in% alcaldia, drop = T) %>%
group_by(categoria_delito, mes_hechos) %>% # delito categoria_delito
count(categoria_delito, mes_hechos) %>%
arrange(mes_hechos) %>%
spread(key = mes_hechos, value = n)
df1[is.na(df1)] <- 0
df1$Total <- apply(df1[2:9],1,sum)
df1 <- df1 %>%
arrange(desc(Total))
colnames(df1)[1] <- "Tipo de Delito"
table <- formattable(df1, align = c('l','c','c','c','c','c','c','c','c','r'),
list(alcaldia_hechos = formatter(
"span", style = ~ style(color = "grey",font.weight = "bold")),
'Enero' = color_tile(customGreen0,customGreen),
'Febrero' = color_tile(customGreen0,customGreen),
'Marzo' = color_tile(customGreen0,customGreen),
'Abril' = color_tile(customGreen0,customGreen),
'Mayo' = color_tile(customGreen0,customGreen),
'Junio' = color_tile(customGreen0,customGreen),
'Julio' = color_tile(customGreen0,customGreen),
'Agosto' = color_tile(customGreen0,customGreen),
area(col = 'Total')~ normalize_bar("pink", 0.2)
))
return(table)
}
df <- read.csv("C:/Users/LuisAlberto/Documents/Seminario Estadistica/CarpetasInvestigacion.csv",
encoding = 'UTF-8')
register_google(key = "AIzaSyDO22tHBdH6DAP03x3ZeH-ODQVdIOyjbYI")
df <- clean_geopoint_df(df)
df$mes_hechos <- factor(df$mes_hechos, levels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto"))
nombres <- nombres()
delitos_cdmx(df, nombres)
delitos_cdmx1(df, nombres)
head(delitos_alcaldia(df, "IZTAPALAPA"),5)
head(delitos_alcaldia(df, "CUAUHTEMOC"),5)
head(delitos_alcaldia(df, "GUSTAVO A. MADERO"),5)
head(delitos_alcaldia(df, "BENITO JUAREZ"),5)
head(delitos_alcaldia(df, "ALVARO OBREGON"),5)
data("df_mxmunicipio")
df_mxmunicipio
df_mxmun <- data.frame(df_mxmunicipio,stringsAsFactors = FALSE)
df_aux <- df_mxmun %>%
filter(state_abbr == "CDMX") %>%
arrange(municipio_name)
df_aux <- data.frame(lapply(df_aux, function(v) {
if (is.character(v)) return(stri_trans_general(toupper(v), "Latin-ASCII"))
else return(v)
}))
df_map <- df %>%
subset(alcaldia_hechos %in% nombres, drop = T) %>%
group_by(alcaldia_hechos) %>%
summarise(no_delitos = n())
colnames(df_map) <- c("Alcaldia", "Delitos registrados")
df_map$value <- df_map$`Delitos registrados`/sum(df_map$`Delitos registrados`)
df_map$region <- df_aux$region
mapadel = MXMunicipioChoropleth$new(df_map)
mapadel$title = "Porcentaje de delitos por alcaldia"
mapadel$set_num_colors(1)
mapadel$ggplot_scale <- scale_fill_viridis("Porcentaje", labels = percent)
mapadel$set_zoom(df_map$region)
mapadel$render()
izta <- get_coord("iztapalapa")
map_izta <- map(izta, "alcaldia")
plot_map(map_izta, df, "IZTAPALAPA", c(10,20,50,100))
cuau <- get_coord("cuauhtemoc, ciudad de mexico")
map_cuau <- map(cuau, "alcaldia")
plot_map(map_cuau, df, "CUAUHTEMOC", c(10, 20, 50, 80), size = 15)
gust <- get_coord("gustavo a. madero, ciudad de mexico")
map_gust <- map(gust, "alcaldia")
plot_map(map_gust, df, "GUSTAVO A. MADERO", c(5, 10, 20, 30), size = 15)
beno <- get_coord("benito juarez, ciudad de mexico")
map_beno <- map(beno, "alcaldia")
plot_map(map_beno, df, "BENITO JUAREZ", c(3, 5, 10), size = 15)
obr <- get_coord("alvaro obregon, ciudad de mexico")
map_obr <- map(obr, "alcaldia")
plot_map(map_obr, df, "ALVARO OBREGON", c(2, 5, 10), size = 15)
graf_delitos <- function(df, nombres, num){
if(num == 1){
df6 <- df %>%
subset(alcaldia_hechos %in% nombres, drop = T) %>%
group_by(delito, mes_hechos) %>%
count(delito, mes_hechos) %>%
arrange(desc(n), mes_hechos) %>%
spread(key = mes_hechos, value = n)
df6[is.na(df6)] <- 0
df6$Total <- apply(df6[2:9],1,sum)
df6 <- df6 %>%
arrange(desc(Total)) %>%
head(6)
df6$Total <- NULL
names(df6) = c("column", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto" )
row.names(df6) <- df6$column
df7 <- df6[2:9]
row.names(df7) <- df6$column
df7 <- as.data.frame(t(df7))
df7$Mes <- rownames(df7)
df8 <- reshape::melt(df7, id.vars = c("Mes"))
df8$Mes <- factor(df8$Mes, levels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto"))
ggplot(df8, aes(x = desc(desc(factor(Mes))), y= value, color = variable)) +
geom_line(size = 1) + geom_point(size = 2) + theme_minimal() +
labs(color = "Delitos", x = "Mes", y = "Num. delitos") +
scale_x_continuous(breaks = c(1, 2, 3, 4, 5, 6, 7, 8),
labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto")) +
theme(legend.key=element_blank(),legend.position="bottom", legend.key.size=unit(1, "point"))+
guides(colour=guide_legend(nrow=3))
} else {
df6 <- df %>%
subset(alcaldia_hechos %in% nombres, drop = T) %>%
group_by(fiscalia, mes_hechos) %>%
count(fiscalia, mes_hechos) %>%
arrange(desc(n), mes_hechos) %>%
spread(key = mes_hechos, value = n)
df6[is.na(df6)] <- 0
df6$Total <- apply(df6[2:9],1,sum)
df6 <- df6 %>%
arrange(desc(Total)) %>%
head(6)
df6$Total <- NULL
names(df6) = c("column", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto" )
row.names(df6) <- df6$column
df7 <- df6[2:9]
row.names(df7) <- df6$column
df7 <- as.data.frame(t(df7))
df7$Mes <- rownames(df7)
df8 <- reshape::melt(df7, id.vars = c("Mes"))
df8$Mes <- factor(df8$Mes, levels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto"))
ggplot(df8, aes(x = desc(desc(factor(Mes))), y= value, color = variable)) +
geom_line(size = 1) + geom_point(size = 2) + theme_minimal() +
labs(color = "Fiscalia", x = "Mes", y = "Num. carpetas") +
scale_x_continuous(breaks = c(1, 2, 3, 4, 5, 6, 7, 8),
labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto")) +
theme(legend.key=element_blank(),legend.position="bottom", legend.key.size=unit(1, "point"))+
guides(colour=guide_legend(nrow=6))
}
}
graf_delitos(df, nombres, 1)
graf_delitos(df, nombres, 2)