ANALISIS EXPLORATORIO DE DATOS DE DELITOS EN ECUADOR

library(readxl)
library(knitr)
library(tidyverse)
library(lubridate) #transformación de los datos a fecha
library(corrplot)
library(extrafont)
library(viridis)
library(ggplot2)
library(dplyr)

Introducción

El siguiente análisis de datos trata sobre las incidencias de delitos presentadas en diferentes regiones de Ecuador durante el año 2013. Analizaremos a fondo cada una de las variables que consideremos de importancia para obtener información consistente y precisa, como por ejemplo el tipo de robo que se comete, en que lugares es más frecuente, los dias en que más se presentan los robos y quienes son los que más han sido afectados por estos. Para ello vamos a llevar a cabo un análisis exploratorio de datos siguiendo una metodologia cronológica, donde podamos manipular y representar cada varible que nos pueda arrojar información relevante.

Objetivos

Lo que se pretende con este analisis es buscar alternativas que puedan ayudar a disminuir la delincuencia en este pais. Por eso es importante llevar acabo un analisis exploratorio de los datos obtenidos y poder sacar nuestras conclusiones. Nos apoyaremos de representaciones gráficas visuales y tablas que nos permitan comprender mejor nuestro análisis.

library(readr)
Analisis_Delincuencia_Base_datos <- read_csv("Analisis_Delincuencia_Base_datos.csv")
View(Analisis_Delincuencia_Base_datos)
str(Analisis_Delincuencia_Base_datos)
## spec_tbl_df [21,004 × 45] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ cod_delito            : chr [1:21004] "2013.1m" "2013.3m" "2013.4m" "2013.5m" ...
##  $ zona_senplades        : chr [1:21004] "ZONA 8" "ZONA 8" "ZONA 8" "ZONA 8" ...
##  $ provincia             : chr [1:21004] "DMG" "DMG" "DMG" "DMG" ...
##  $ canton                : chr [1:21004] "GUAYAQUIL" "GUAYAQUIL" "GUAYAQUIL" "GUAYAQUIL" ...
##  $ cod_subcircuito       : chr [1:21004] "09D07C07S02" "09D09C02S02" "09D02C04S02" "09D07C07S04" ...
##  $ distrito              : chr [1:21004] "PASCUALES" "CEIBOS" "ESTEROS" "PASCUALES" ...
##  $ circuito              : chr [1:21004] "SAN FRANCISCO" "PUERTO HONDO" "ISLA TRINITARIA NORTE" "SAN FRANCISCO" ...
##  $ subcircuito           : chr [1:21004] "SAN FRANCISCO 2" "PUERTO HONDO 2" "TRINITARIA NORTE 2" "SAN FRANCISCO 4" ...
##  $ sector                : num [1:21004] 1 1 1 1 1 1 1 1 1 1 ...
##  $ zona                  : chr [1:21004] "ZONA URBANA" "ZONA URBANA" "ZONA URBANA" "ZONA RURAL" ...
##  $ f_registro            : chr [1:21004] "2/1/2013" "6/1/2013" "6/1/2013" "12/1/2013" ...
##  $ hora_registro         : 'hms' num [1:21004] 01:20:00 09:45:00 23:30:00 16:50:00 ...
##   ..- attr(*, "units")= chr "secs"
##  $ f_infraccion          : chr [1:21004] "1/1/2013" "6/1/2013" "6/1/2013" "12/1/2013" ...
##  $ semana                : num [1:21004] 1 1 1 2 2 2 3 3 3 3 ...
##  $ semanas 2             : chr [1:21004] "01 ene 06 ene" "01 ene 06 ene" "01 ene 06 ene" "07 ene 13 ene" ...
##  $ año_infraccion        : num [1:21004] 2013 2013 2013 2013 2013 ...
##  $ mes_infraccion        : chr [1:21004] "enero" "enero" "enero" "enero" ...
##  $ hora_infraccion       : chr [1:21004] "A DETERMINARSE" "A DETERMINARSE" "22:00:00" "A DETERMINARSE" ...
##  $ dia_infraccion        : chr [1:21004] "martes" "domingo" "domingo" "sAbado" ...
##  $ rango_                : chr [1:21004] "DESCONOCIDA" "DESCONOCIDA" "22:00 a 22:59" "DESCONOCIDA" ...
##  $ dia_mes               : num [1:21004] 1 6 6 12 13 12 16 17 17 18 ...
##  $ fuente                : chr [1:21004] "DINASED" "DINASED" "DINASED" "DINASED" ...
##  $ t_delito_pj           : logi [1:21004] NA NA NA NA NA NA ...
##  $ delito_pj             : chr [1:21004] "ASESINATO" "ASESINATO" "ASESINATO" "ASESINATO" ...
##  $ cmi                   : chr [1:21004] "HOMICIDIOS/ASESINATOS" "HOMICIDIOS/ASESINATOS" "HOMICIDIOS/ASESINATOS" "HOMICIDIOS/ASESINATOS" ...
##  $ modus_operandi        : chr [1:21004] NA NA NA NA ...
##  $ arma_utilizada        : chr [1:21004] "ARMA BLANCA" "ARMA BLANCA" "ARMA DE FUEGO" "ARMA DE FUEGO" ...
##  $ t_agresion            : logi [1:21004] NA NA NA NA NA NA ...
##  $ lugar_infraccion      : logi [1:21004] NA NA NA NA NA NA ...
##  $ condicion_lugar       : logi [1:21004] NA NA NA NA NA NA ...
##  $ quien_comete_delito   : logi [1:21004] NA NA NA NA NA NA ...
##  $ veh_utilizado         : logi [1:21004] NA NA NA NA NA NA ...
##  $ veh_color             : logi [1:21004] NA NA NA NA NA NA ...
##  $ veh_marca             : logi [1:21004] NA NA NA NA NA NA ...
##  $ modelo                : logi [1:21004] NA NA NA NA NA NA ...
##  $ victima_denunciante   : logi [1:21004] NA NA NA NA NA NA ...
##  $ vd_apellidos_nombres  : chr [1:21004] "ZANABRIA CASTRO JACINTO MANUEL" "CRUZ QUINDE ALFONSO MOISES" "ARROYO GARCIA RUBEN DAVID" "RIVAS JIMENEZ ROMULO GERMAN" ...
##  $ vd_sexo               : chr [1:21004] "MASCULINO" "MASCULINO" "MASCULINO" "MASCULINO" ...
##  $ vd_edad               : num [1:21004] 36 24 20 72 23 36 41 38 28 46 ...
##  $ vd_estado_civil       : chr [1:21004] "SOLTERO" "SOLTERO" "UNION DE HECHO" "UNION DE HECHO" ...
##  $ vd_nacionalidad       : chr [1:21004] "ECUATORIANA" "ECUATORIANA" "ECUATORIANA" "ECUATORIANA" ...
##  $ vd_etnia              : chr [1:21004] "MESTIZA" "MESTIZA" "AFRO_ECUATORIANA" "MESTIZA" ...
##  $ vd_profesion_ocupacion: chr [1:21004] "COCINERO" "EMPLEADO" "SE DESCONOCE" "COMERCIANTE" ...
##  $ vd_actividad          : chr [1:21004] "TIENE_TRABAJO_O_NEGOCIO" "TIENE_TRABAJO_O_NEGOCIO" "SIN_DATO" "TIENE_TRABAJO_O_NEGOCIO" ...
##  $ vd_instrucciOn        : chr [1:21004] "PRIMARIA" "PRIMARIA" "PRIMARIA" "PRIMARIA" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   cod_delito = col_character(),
##   ..   zona_senplades = col_character(),
##   ..   provincia = col_character(),
##   ..   canton = col_character(),
##   ..   cod_subcircuito = col_character(),
##   ..   distrito = col_character(),
##   ..   circuito = col_character(),
##   ..   subcircuito = col_character(),
##   ..   sector = col_double(),
##   ..   zona = col_character(),
##   ..   f_registro = col_character(),
##   ..   hora_registro = col_time(format = ""),
##   ..   f_infraccion = col_character(),
##   ..   semana = col_double(),
##   ..   `semanas 2` = col_character(),
##   ..   año_infraccion = col_double(),
##   ..   mes_infraccion = col_character(),
##   ..   hora_infraccion = col_character(),
##   ..   dia_infraccion = col_character(),
##   ..   rango_ = col_character(),
##   ..   dia_mes = col_double(),
##   ..   fuente = col_character(),
##   ..   t_delito_pj = col_logical(),
##   ..   delito_pj = col_character(),
##   ..   cmi = col_character(),
##   ..   modus_operandi = col_character(),
##   ..   arma_utilizada = col_character(),
##   ..   t_agresion = col_logical(),
##   ..   lugar_infraccion = col_logical(),
##   ..   condicion_lugar = col_logical(),
##   ..   quien_comete_delito = col_logical(),
##   ..   veh_utilizado = col_logical(),
##   ..   veh_color = col_logical(),
##   ..   veh_marca = col_logical(),
##   ..   modelo = col_logical(),
##   ..   victima_denunciante = col_logical(),
##   ..   vd_apellidos_nombres = col_character(),
##   ..   vd_sexo = col_character(),
##   ..   vd_edad = col_double(),
##   ..   vd_estado_civil = col_character(),
##   ..   vd_nacionalidad = col_character(),
##   ..   vd_etnia = col_character(),
##   ..   vd_profesion_ocupacion = col_character(),
##   ..   vd_actividad = col_character(),
##   ..   vd_instrucciOn = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>
#summary(Analisis_Delincuencia_Base_datos)

Segun los resultados obtenidos, las principales caracteristicas que presenta la tabla son los siguientes: El total de observaciones del conjunto de datos es 21004, el numero total de variables es 45.

Seleccionamos las variables con las que vamos a trabajar

#Dim (Analisis_Delincuencia_Base_datos)
colnames(Analisis_Delincuencia_Base_datos)
##  [1] "cod_delito"             "zona_senplades"         "provincia"             
##  [4] "canton"                 "cod_subcircuito"        "distrito"              
##  [7] "circuito"               "subcircuito"            "sector"                
## [10] "zona"                   "f_registro"             "hora_registro"         
## [13] "f_infraccion"           "semana"                 "semanas 2"             
## [16] "año_infraccion"         "mes_infraccion"         "hora_infraccion"       
## [19] "dia_infraccion"         "rango_"                 "dia_mes"               
## [22] "fuente"                 "t_delito_pj"            "delito_pj"             
## [25] "cmi"                    "modus_operandi"         "arma_utilizada"        
## [28] "t_agresion"             "lugar_infraccion"       "condicion_lugar"       
## [31] "quien_comete_delito"    "veh_utilizado"          "veh_color"             
## [34] "veh_marca"              "modelo"                 "victima_denunciante"   
## [37] "vd_apellidos_nombres"   "vd_sexo"                "vd_edad"               
## [40] "vd_estado_civil"        "vd_nacionalidad"        "vd_etnia"              
## [43] "vd_profesion_ocupacion" "vd_actividad"           "vd_instrucciOn"
Delincuencia<-select(Analisis_Delincuencia_Base_datos, canton,distrito,
circuito, subcircuito, zona, f_registro, hora_registro,
f_infraccion, semana, año_infraccion, mes_infraccion, hora_infraccion,
dia_infraccion, rango_, dia_mes, delito_pj, cmi, modus_operandi,
arma_utilizada, vd_sexo, vd_edad, vd_estado_civil,
vd_nacionalidad, vd_etnia, vd_profesion_ocupacion
              )

se seleccionaron un total de 25 variables que son de mayor importancia para llevar acabo nuestro analisis de datos y poder obtener resultados que nos permitan cumplir nuestro objetivo.

View(Delincuencia)

Las variables que hemos seleccionado se muestran en la siguiente tabla

kable(names(Delincuencia),col.names = c('Variable'), caption = "TABLA 1 :Variables seleccionadas para el análisis.")
TABLA 1 :Variables seleccionadas para el análisis.
Variable
canton
distrito
circuito
subcircuito
zona
f_registro
hora_registro
f_infraccion
semana
año_infraccion
mes_infraccion
hora_infraccion
dia_infraccion
rango_
dia_mes
delito_pj
cmi
modus_operandi
arma_utilizada
vd_sexo
vd_edad
vd_estado_civil
vd_nacionalidad
vd_etnia
vd_profesion_ocupacion

Se muestra a continuacion un resumen general de las variables de nuestra nueva la base de datos, mostrando valores como: máximo, minimo media, mediana, primer y tercer cuantil

summary(Delincuencia)
##     canton            distrito           circuito         subcircuito       
##  Length:21004       Length:21004       Length:21004       Length:21004      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##      zona            f_registro        hora_registro     f_infraccion      
##  Length:21004       Length:21004       Length:21004      Length:21004      
##  Class :character   Class :character   Class1:hms        Class :character  
##  Mode  :character   Mode  :character   Class2:difftime   Mode  :character  
##                                        Mode  :numeric                      
##                                                                            
##                                                                            
##                                                                            
##      semana      año_infraccion mes_infraccion     hora_infraccion   
##  Min.   : 1.00   Min.   :2013   Length:21004       Length:21004      
##  1st Qu.:15.00   1st Qu.:2013   Class :character   Class :character  
##  Median :26.00   Median :2013   Mode  :character   Mode  :character  
##  Mean   :26.78   Mean   :2013                                        
##  3rd Qu.:39.00   3rd Qu.:2013                                        
##  Max.   :52.00   Max.   :2013                                        
##  NA's   :20626                                                       
##  dia_infraccion        rango_             dia_mes       delito_pj        
##  Length:21004       Length:21004       Min.   : 1.00   Length:21004      
##  Class :character   Class :character   1st Qu.: 8.00   Class :character  
##  Mode  :character   Mode  :character   Median :16.00   Mode  :character  
##                                        Mean   :15.73                     
##                                        3rd Qu.:23.00                     
##                                        Max.   :31.00                     
##                                                                          
##      cmi            modus_operandi     arma_utilizada       vd_sexo         
##  Length:21004       Length:21004       Length:21004       Length:21004      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##     vd_edad        vd_estado_civil    vd_nacionalidad      vd_etnia        
##  Min.   :   3.00   Length:21004       Length:21004       Length:21004      
##  1st Qu.:  28.00   Class :character   Class :character   Class :character  
##  Median :  35.00   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :  49.04                                                           
##  3rd Qu.:  46.00                                                           
##  Max.   :2014.00                                                           
##  NA's   :1                                                                 
##  vd_profesion_ocupacion
##  Length:21004          
##  Class :character      
##  Mode  :character      
##                        
##                        
##                        
## 

Ajustamos el tipo de variable

Para facilitar nuestro análisis exploratorio de datos, vamos a cambiar los tipos de variables para manipular mejor los datos y poder hacer representaciones gráficas.

Delincuencia$canton<-factor(Delincuencia$canton,levels=c("BALAO","DURAN",
                                             "EL TRIUNFO","GUAYAQUIL",
                                             "NARANJAL","NOBOL","PLAYAS",
                                             "SALITRE", "SAMBORONDON"))

Delincuencia$canton<-factor(Delincuencia$canton)
Delincuencia$distrito<-factor(Delincuencia$distrito)
Delincuencia$circuito<-factor(Delincuencia$circuito)
Delincuencia$vd_edad<-as.numeric(Delincuencia$vd_edad)
Delincuencia$vd_estado_civil<-factor(Delincuencia$vd_estado_civil)
Delincuencia$vd_nacionalidad<-factor(Delincuencia$vd_nacionalidad)
Delincuencia$vd_etnia<-factor(Delincuencia$vd_etnia)
Delincuencia$vd_profesion_ocupacion<-factor(Delincuencia$vd_profesion_ocupacion)
Delincuencia$modus_operandi<-factor(Delincuencia$modus_operandi)
Delincuencia$arma_utilizada<-factor(Delincuencia$arma_utilizada)
Delincuencia$vd_sexo<-factor(Delincuencia$vd_sexo)
Delincuencia$f_infraccion<-as.Date(Delincuencia$f_infraccion)
Delincuencia$f_registro<-as.Date(Delincuencia$f_registro)
Delincuencia$mes_infraccion<-factor(Delincuencia$mes_infraccion)
Delincuencia$dia_infraccion<-factor(Delincuencia$dia_infraccion)
Delincuencia$hora_infraccion<-hms(Delincuencia$hora_infraccion)
## Warning in .parse_hms(..., order = "HMS", quiet = quiet): Some strings failed to
## parse, or all strings are NAs

Ahora vemos de forma compacta la estructura interna de nuestra nueva base de datos, donde nos indica el tipo de variable, rango de valores y una muestra de dichos valores

str(Delincuencia)
## tibble [21,004 × 25] (S3: tbl_df/tbl/data.frame)
##  $ canton                : Factor w/ 9 levels "BALAO","DURAN",..: 4 4 4 4 4 4 4 4 4 4 ...
##  $ distrito              : Factor w/ 12 levels "09 DE OCTUBRE",..: 8 2 4 8 12 1 9 12 12 9 ...
##  $ circuito              : Factor w/ 69 levels "9 DE OCTUBRE",..: 60 53 29 60 66 26 17 62 27 57 ...
##  $ subcircuito           : chr [1:21004] "SAN FRANCISCO 2" "PUERTO HONDO 2" "TRINITARIA NORTE 2" "SAN FRANCISCO 4" ...
##  $ zona                  : chr [1:21004] "ZONA URBANA" "ZONA URBANA" "ZONA URBANA" "ZONA RURAL" ...
##  $ f_registro            : Date[1:21004], format: "0002-01-20" "0006-01-20" ...
##  $ hora_registro         : 'hms' num [1:21004] 01:20:00 09:45:00 23:30:00 16:50:00 ...
##   ..- attr(*, "units")= chr "secs"
##  $ f_infraccion          : Date[1:21004], format: "0001-01-20" "0006-01-20" ...
##  $ semana                : num [1:21004] 1 1 1 2 2 2 3 3 3 3 ...
##  $ año_infraccion        : num [1:21004] 2013 2013 2013 2013 2013 ...
##  $ mes_infraccion        : Factor w/ 12 levels "abril","agosto",..: 4 4 4 4 4 4 4 4 4 4 ...
##  $ hora_infraccion       :Formal class 'Period' [package "lubridate"] with 6 slots
##   .. ..@ .Data : num [1:21004] NA NA 0 NA 0 0 NA 0 NA 0 ...
##   .. ..@ year  : num [1:21004] NA NA 0 NA 0 0 NA 0 NA 0 ...
##   .. ..@ month : num [1:21004] NA NA 0 NA 0 0 NA 0 NA 0 ...
##   .. ..@ day   : num [1:21004] NA NA 0 NA 0 0 NA 0 NA 0 ...
##   .. ..@ hour  : num [1:21004] NA NA 22 NA 7 14 NA 5 NA 17 ...
##   .. ..@ minute: num [1:21004] NA NA 0 NA 0 0 NA 30 NA 30 ...
##  $ dia_infraccion        : Factor w/ 7 levels "domingo","jueves",..: 4 1 1 6 1 6 5 2 2 7 ...
##  $ rango_                : chr [1:21004] "DESCONOCIDA" "DESCONOCIDA" "22:00 a 22:59" "DESCONOCIDA" ...
##  $ dia_mes               : num [1:21004] 1 6 6 12 13 12 16 17 17 18 ...
##  $ delito_pj             : chr [1:21004] "ASESINATO" "ASESINATO" "ASESINATO" "ASESINATO" ...
##  $ cmi                   : chr [1:21004] "HOMICIDIOS/ASESINATOS" "HOMICIDIOS/ASESINATOS" "HOMICIDIOS/ASESINATOS" "HOMICIDIOS/ASESINATOS" ...
##  $ modus_operandi        : Factor w/ 23 levels "AGRESION_FISICA",..: NA NA NA NA NA NA NA NA NA NA ...
##  $ arma_utilizada        : Factor w/ 3 levels "ARMA BLANCA",..: 1 1 2 2 1 2 2 1 2 2 ...
##  $ vd_sexo               : Factor w/ 3 levels "#NULL!","FEMENINO",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ vd_edad               : num [1:21004] 36 24 20 72 23 36 41 38 28 46 ...
##  $ vd_estado_civil       : Factor w/ 10 levels "CASADO","DIVORCIADO",..: 7 7 8 8 8 8 7 7 1 2 ...
##  $ vd_nacionalidad       : Factor w/ 6 levels "COLOMBIANA","COREANA",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ vd_etnia              : Factor w/ 7 levels "AFRO ECUATORIANO",..: 5 5 2 5 2 5 5 5 5 5 ...
##  $ vd_profesion_ocupacion: Factor w/ 92 levels "ADMINISTRADOR DE CANCHA DEPORTIVA",..: 14 34 80 17 83 17 17 36 35 87 ...

Detección y tratamiento de datos ausentes

Las bases de datos a menudo presentan datos ausentes que pueden generar problemas a la hora de hacer analisis estadisticos o hacer una representacion grafica de los datos. La siguiente tabla (Tabla 1) nos dice la cantidad de valores perdidos, ausenten o celdas vacias en cada una de las variables de la tabla

kable(colSums(is.na(Delincuencia)), col.names = c('Cantidad'), caption = "TABLA 1 :Total de valores perdidos")
TABLA 1 :Total de valores perdidos
Cantidad
canton 0
distrito 0
circuito 0
subcircuito 0
zona 16409
f_registro 0
hora_registro 1
f_infraccion 0
semana 20626
año_infraccion 0
mes_infraccion 0
hora_infraccion 261
dia_infraccion 0
rango_ 0
dia_mes 0
delito_pj 20626
cmi 0
modus_operandi 386
arma_utilizada 20626
vd_sexo 0
vd_edad 1
vd_estado_civil 20630
vd_nacionalidad 20626
vd_etnia 20627
vd_profesion_ocupacion 20641

Limpiamos la base de datos respecto al porcentaje de valores perdidos de las variables seleccionadas,eliminaremos las variables que tengan mas del 75% de valores perdidos.

Los valores perdidos en el resto de las variables los eliminaremos para que los análisis posteriores no se vean alterados y podamos tener mejores resultados. La mayoría de las veces se debe a fallos en la transcripción de los datos o problemas durante la recogida de datos, por ejemplo, debido a la imposibilidad para obtener cierta medida u observación.

Delincuencia <- Delincuencia[,-which(colMeans(is.na(Delincuencia))>= 0.75)]
Delincuencia1<-na.omit(Delincuencia)

Aqui presentamos el total de variables que utilizaremos tras hacer la limpieza de datos ausentes

kable(names(Delincuencia),col.names = c('Variables'), caption = "TABLA 2. . Variables a utilizar para el análisis")
TABLA 2. . Variables a utilizar para el análisis
Variables
canton
distrito
circuito
subcircuito
f_registro
hora_registro
f_infraccion
año_infraccion
mes_infraccion
hora_infraccion
dia_infraccion
rango_
dia_mes
cmi
modus_operandi
vd_sexo
vd_edad

Detección y tratamiento de valores atípicos

Un valor atípico u outlier, es una observación significativamente distinta del resto de datos que presenta una variable, de tal magnitud que se puede considerar un valor anómalo. En nuestra base de datos la única variable que presente este tipo de datos es en el sexo y los vamos a eliminiar ya que no influye en nuestro análisis de datos.

eliminarNull<- Delincuencia$vd_sexo %in% c("#NULL!")
Delincuencia<-Delincuencia[!eliminarNull,]
Delincuencia$vd_sexo<-droplevels(Delincuencia$vd_sexo)

Representaciones gráficas

Con estas representaciones gráficas nos daremos cuenta de forma visual que es lo que hay en nuestra base de datos y comprender mejor lo que queremos lograr. Empezaremos por el tipo de robo. Pero primero conoceremos el total de observaciones por tipo de robo en la sigueinte tabla (tabla 3).

Tabla3<- table(Delincuencia$cmi)
Tabla3
## 
##           HOMICIDIOS/ASESINATOS ROBO DE ACCESORIOS DE VEHICULOS 
##                             378                            2126 
##          ROBO_A_LOCAL_COMERCIAL                  ROBO_DE_CARROS 
##                             751                            2091 
##                   ROBO_DE_MOTOS                 ROBO_DOMICILIOS 
##                            1204                            2796 
##              ROBO_EN_CARRETERAS                   ROBO_PERSONAS 
##                              49                           11600

Así que el robo a personas es el tipo de robo que más abunda en el país de ecuador, con un total de 11600 observaciones, luego robo a domicilios con 2796 y en tercero robo de accesorios de vehículos con 2126 observaciones. Lo podemos visualizar mejor en la siguiente gráfica (Gráfica 1)

ggplot(Delincuencia, aes(x=cmi,fill=cmi)) +
  geom_bar() + ggtitle("Gráfica 1. Tipos de robo")+
  scale_fill_brewer(palette = "Accent")+
  theme(legend.position = "top",legend.text = element_text("blue",size = 6), axis.text=element_text(size=5),axis.title=element_text(size=10,face="italic"))

Ahora veamos por proporción el impacto de cada tipo de delito y su porcentaje (Gráfico 2), donde el robo a personas tiene un 55.3% de incidencias y es una cantidad considerable ya que abarca más de la mitad del total de los datos.

porcentaje2 <- Delincuencia%>% 
                group_by(cmi) %>% 
               count() %>% 
                ungroup() %>% 
                mutate(percentage=`n`/sum(`n`) * 100)
ggplot(porcentaje2, aes(x=1, y=percentage, fill=cmi)) +
       geom_bar(stat="identity") +
      geom_text(aes(label = paste0(round(percentage,1),"%")), 
                 position = position_stack(vjust = 0.5)) +
       coord_polar(theta = "y") + 
       theme_void()+ scale_fill_brewer(palette = "Dark2")

A continuación se muestra la cantidad exacta de incidencias por sexo, donde el hombre se lleva el mayor número de incidencias con un total de 15465 incidencias mientras que la mujer 5530 (Tabla 4)

Tabla4<-table(Delincuencia$vd_sexo)
Tabla4
## 
##  FEMENINO MASCULINO 
##      5530     15465

El siguiente gráfico (Gráfico 3) de pastel nos muestra el porcentaje de las incidencias por sexo de las víctimas

porcentaje <- Delincuencia%>% 
                group_by(vd_sexo) %>% 
               count() %>% 
                ungroup() %>% 
                mutate(percentage=`n`/sum(`n`) * 100)

ggplot(porcentaje, aes(x=1, y=percentage, fill=vd_sexo)) +
       geom_bar(stat="identity") +
      geom_text(aes(label = paste0(round(percentage,1),"%")), 
                 position = position_stack(vjust = 0.5)) +
       coord_polar(theta = "y") + 
       theme_void()

Vamos a analizar el total de datos sobre la variable edad para ver cuál es la edad en la que más son afectadas las personas por los diferentes tipos de delito o robo

Delincuencia%>%count(vd_edad, sort=TRUE)
## # A tibble: 91 × 2
##    vd_edad     n
##      <dbl> <int>
##  1      13  1405
##  2      32   751
##  3      31   724
##  4      34   707
##  5      30   699
##  6      33   697
##  7      36   686
##  8      28   670
##  9      27   654
## 10      29   653
## # … with 81 more rows

Así que la edad con más frecuencia de delitos son a los 13 años con un total de 1405 observaciones. Las víctimas entre el rango de 13 a 50 años son las que más sufren de delitos, como se observa en la gráfica 4. Tambien podemos ver que hay una baja drástica dentro de la gráfica porque en la edad de 15 años solo presenta un total de 3 observaciones.

histEdad<- hist(Delincuencia$vd_edad,
                      main=" Grafica 4. Edad de las victimas",
                      xlab = "edad",
                      ylab = "Frecuencia",
                      xlim = c(0, 150),
                      breaks = 1000)

Con lo que respecta a Canton de las victimas, vamos ver Cuál de los 9 presenta un mayor número de delitos

Delincuencia%>%count(canton, sort=TRUE)
## # A tibble: 9 × 2
##   canton          n
##   <fct>       <int>
## 1 GUAYAQUIL   19162
## 2 DURAN        1467
## 3 SAMBORONDON   250
## 4 PLAYAS         98
## 5 BALAO           9
## 6 SALITRE         5
## 7 NARANJAL        2
## 8 EL TRIUNFO      1
## 9 NOBOL           1

Con un total de 19171 delitos Guayaquil se lleva el primer lugar, en seguida Duran con 1467 delitos y en tercero Samborondon con 250 delitos.(Gráfica 5)

ggplot(Delincuencia, aes(x=canton,fill=canton)) + 
  geom_bar() +ggtitle("Gráfica 5. Distribución de las incidencias por canton")+
  labs(x = "canton",y = "Frecuencia")+
 scale_fill_brewer(palette = "Accent")+
 theme(legend.text = element_text("blue",size = 6), axis.text=element_text(size=5),axis.title=element_text(size=10,face="italic"))
## Warning in RColorBrewer::brewer.pal(n, pal): n too large, allowed maximum for palette Accent is 8
## Returning the palette you asked for with that many colors
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database

Vamos a analizar los meses para observar cuales son los 3 meses con mayor incidencia de delitos.

Delincuencia%>%count(mes_infraccion, sort=TRUE)
## # A tibble: 12 × 2
##    mes_infraccion     n
##    <fct>          <int>
##  1 abril           1944
##  2 julio           1886
##  3 mayo            1853
##  4 agosto          1817
##  5 marzo           1790
##  6 junio           1743
##  7 febrero         1722
##  8 enero           1695
##  9 octubre         1685
## 10 diciembre       1651
## 11 noviembre       1643
## 12 septiembre      1566

Los 3 meses con mayor número de delitos son abril con un total de 1944 observaciones, julio con 1886 observaciones y mayo con 1853 observaciones así como se puede observar en la gráfica 6

ggplot(Delincuencia, aes(x=mes_infraccion,fill=mes_infraccion)) + 
         geom_bar() +ggtitle("Gráfica 6")+
         scale_fill_brewer(palette = "Paired")+
         theme(legend.position = "top",legend.text = element_text("blue",size = 6), axis.text=element_text(size=5),axis.title=element_text(size=10,face="italic"))
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database

Delincuencia%>%count(dia_infraccion, sort=TRUE)
## # A tibble: 7 × 2
##   dia_infraccion     n
##   <fct>          <int>
## 1 viernes         3347
## 2 sAbado          3154
## 3 miErcoles       3116
## 4 lunes           3072
## 5 jueves          3015
## 6 martes          2853
## 7 domingo         2438

El día en el que más se presentan los delitos es el día viernes con 3347 observaciones, le sigue sábado con 3154 observaciones y miércoles con 3116 observaciones (Gráfica 7)

ggplot(Delincuencia, aes(x=dia_infraccion,fill=dia_infraccion)) + 
  geom_bar() + ggtitle("Gráfica 7")+
  scale_fill_brewer(palette = "Accent")+
  theme(legend.position = "top",legend.text = element_text("blue",size = 6), axis.text=element_text(size=5),axis.title=element_text(size=10,face="italic"))
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database

## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database

Correlación de variables

La correlación determina la relación lineal entre dos o más variables, es decir, la fuerza y la dirección de una posible relación entre variables. Dicho de otra forma, si los valores de una variable tienden a subir, los de otra u otras variables, harán lo mismo si están correladas positivamente o a la inversa, si lo están negativamente. Esto no quiere decir, que una correlación entre variables indique una relación causa-efecto.

Tablas de contingencia

Tabla de contingencia (tabla 5) de las variables sexo y tipo de delito(cmi).

tabla5<-table(Delincuencia$vd_sexo, Delincuencia$cmi)
tabla5
##            
##             HOMICIDIOS/ASESINATOS ROBO DE ACCESORIOS DE VEHICULOS
##   FEMENINO                     35                             515
##   MASCULINO                   343                            1611
##            
##             ROBO_A_LOCAL_COMERCIAL ROBO_DE_CARROS ROBO_DE_MOTOS ROBO_DOMICILIOS
##   FEMENINO                     215            407           115            1062
##   MASCULINO                    536           1684          1089            1734
##            
##             ROBO_EN_CARRETERAS ROBO_PERSONAS
##   FEMENINO                   7          3174
##   MASCULINO                 42          8426

La gráfica 8 muestra una representación de la tabla de sexo y tipo de delito. Podemos observar que en todos los diferentes tipos de delito, el sexo masculino es el que presenta mayor número incidencias. Del delito de robo a personas 3174 son del sexo femenino y 8426 son del sexo masculino, que es el que tiene mayor frecuencia.

plot(tabla5, col=c("blue","red"), main="Gráfica 8.Tipo de delito vs  Sexo del denunciante", las=1, cex.lab=0.8)
## Warning: In mosaicplot.default(x, xlab = xlab, ylab = ylab, ...) :
##  extra argument 'cex.lab' will be disregarded

Tabla de contingencia de las variables distrito y tipo de delito (Tabla 6).

tabla6<-table(Delincuencia$distrito,Delincuencia$cmi)
tabla6
##                   
##                    HOMICIDIOS/ASESINATOS ROBO DE ACCESORIOS DE VEHICULOS
##   09 DE OCTUBRE                       28                             375
##   CEIBOS                               9                              58
##   DURAN                               26                              98
##   ESTEROS                             44                              97
##   FLORIDA                             17                             203
##   MODELO                              24                             797
##   NUEVA PROSPERINA                    27                              29
##   PASCUALES                           51                             113
##   PORTETE                             52                              80
##   PROGRESO                             8                               1
##   SAMBORONDON                          5                              46
##   SUR                                 87                             229
##                   
##                    ROBO_A_LOCAL_COMERCIAL ROBO_DE_CARROS ROBO_DE_MOTOS
##   09 DE OCTUBRE                       170            369           228
##   CEIBOS                               10             43            16
##   DURAN                                74            113            64
##   ESTEROS                              38            195           108
##   FLORIDA                              70            233           129
##   MODELO                              153            487           125
##   NUEVA PROSPERINA                     26             52            57
##   PASCUALES                            43            177           186
##   PORTETE                              63            105           137
##   PROGRESO                              2             26             5
##   SAMBORONDON                          18             20            23
##   SUR                                  84            271           126
##                   
##                    ROBO_DOMICILIOS ROBO_EN_CARRETERAS ROBO_PERSONAS
##   09 DE OCTUBRE                237                  0          2572
##   CEIBOS                        75                  3           112
##   DURAN                        454                 20           675
##   ESTEROS                      180                  0           741
##   FLORIDA                      264                  0          1093
##   MODELO                       434                  1          2685
##   NUEVA PROSPERINA             419                  0           444
##   PASCUALES                    231                 17           899
##   PORTETE                      186                  0          1040
##   PROGRESO                      45                  4            44
##   SAMBORONDON                   60                  4           145
##   SUR                          211                  0          1150

Como ya lo habíamos dicho anteriormente, el robo a personas es el delito que más incidencia tiene. En la gráfica 9 vemos que los tres distritos que presentan más este delito son Modelo con 2685 incidencias,09 de Octubre con 2572 y Sur con 1150.

plot(tabla6, col=palette("Paired"), main="Gráfica 9. Tipo de delito vs Distrito ", las=2)

Conclusiones

Tras el análisis exploratorio de los datos de delitos en Ecuador durante el año 2013 nos dimos cuenta que las personas de sexo Masculino son las que sufren más robos a pesar de que las mujeres se consideran más vulnerables ante este tipo de problemas que abunda por todas partes y aun más en los jóvenes de 13 años porque hubo una gran cantidad de robos en esa edad.También que el robo a personas es el que con mayor frecuencia se presenta y con una cantidad considerable de los otros tipos de robo, con un total de 11600 observaciones que representa un 55.3% de los datos. En Canton se observa un mayor número de incidencias en Guayaquil con un total de 19171 delitos, Duran con 1467 y Samborondon con 250, asi que se debe tomar medidas preventivas en estos lugares para disminuir los robos, puede ser realizar rondines todos los dias por estos lugares y más específicamente en los fines de semana ya que es cuando se presenta un mayor número de incidencias y así le gente pueda estar mas tranquila sin miedo a ser asaltada. Otra opción seria poner cámaras de seguridad en distritos como Modelo, 9 de octubre y sur, distritos en los cuáles son más comunes los robos.