1 Introducción

La base de datos para este análisis contiene datos reales sobre delitos registrados en diferentes regiones de Ecuador. Se desea encontrar información útil que sirva para realizar recomendaciones pertinentes, con el fin de disminuir la incidencia de delitos. Para ello, se realiza una exploración preliminar para conocer los datos y comprender con mayor claridad lo que se quiere investigar sobre ellos. Se utilizan gráficas y técnicas de estadistica exploratoria empleando la librería tidyverse.

Las librerías necesaria para este análisis son:

library(tidyverse)
library(readxl)
library(magrittr)
library(knitr)
library(lubridate)

2 Pre-procesamiento de datos

Se lee el archivo que contiene el conjunto de datos de delitos registrados, que es un archivo simple con encabezados, para su posterior lectura e inspección.

bd <- read_excel("Analisis_Delincuencia_Base_datos.xlsx")
bd
## # A tibble: 21,004 × 45
##    cod_delito zona_senplades provincia canton  cod_subcircuito distrito circuito
##    <chr>      <chr>          <chr>     <chr>   <chr>           <chr>    <chr>   
##  1 2013.1m    ZONA 8         DMG       GUAYAQ… 09D07C07S02     PASCUAL… SAN FRA…
##  2 2013.3m    ZONA 8         DMG       GUAYAQ… 09D09C02S02     CEIBOS   PUERTO …
##  3 2013.4m    ZONA 8         DMG       GUAYAQ… 09D02C04S02     ESTEROS  ISLA TR…
##  4 2013.5m    ZONA 8         DMG       GUAYAQ… 09D07C07S04     PASCUAL… SAN FRA…
##  5 2013.6m    ZONA 8         DMG       GUAYAQ… 09D01C02S02     SUR      UNION D…
##  6 2013.7m    ZONA 8         DMG       GUAYAQ… 09D03C04S02     09 DE O… GARAY   
##  7 2013.8m    ZONA 8         DMG       GUAYAQ… 09D04C01S05     PORTETE  CISNE   
##  8 2013.9m    ZONA 8         DMG       GUAYAQ… 09D01C04S03     SUR      SIETE L…
##  9 2013.10m   ZONA 8         DMG       GUAYAQ… 09D01C01S03     SUR      GUASMO  
## 10 2013.11m   ZONA 8         DMG       GUAYAQ… 09D04C03S04     PORTETE  SALINAS 
## # … with 20,994 more rows, and 38 more variables: subcircuito <chr>,
## #   sector <chr>, zona <chr>, f_registro <dttm>, hora_registro <chr>,
## #   f_infraccion <dttm>, semana <dbl>, semanas 2 <chr>, año_infraccion <dbl>,
## #   mes_infraccion <chr>, hora_infraccion <chr>, dia_infraccion <chr>,
## #   rango_ <chr>, dia_mes <dbl>, fuente <chr>, t_delito_pj <lgl>,
## #   delito_pj <chr>, cmi <chr>, modus_operandi <chr>, arma_utilizada <chr>,
## #   t_agresion <lgl>, lugar_infraccion <lgl>, condicion_lugar <lgl>,
## #   quien_comete_delito <lgl>, veh_utilizado <lgl>, veh_color <lgl>,
## #   veh_marca <lgl>, modelo <lgl>, victima_denunciante <lgl>,
## #   vd_apellidos_nombres <chr>, vd_sexo <chr>, vd_edad <chr>,
## #   vd_estado_civil <chr>, vd_nacionalidad <chr>, vd_etnia <chr>,
## #   vd_profesion_ocupacion <chr>, vd_actividad <chr>, vd_instrucciOn <chr>

La base de datos se guarda en un objeto de tipo tibble pues es un formato más eficiente para trabajar con la limpieza de datos.

Con este formato se obtiene una vista previa del conjunto de datos.

glimpse(bd)
## Rows: 21,004
## Columns: 45
## $ cod_delito             <chr> "2013.1m", "2013.3m", "2013.4m", "2013.5m", "20…
## $ zona_senplades         <chr> "ZONA 8", "ZONA 8", "ZONA 8", "ZONA 8", "ZONA 8…
## $ provincia              <chr> "DMG", "DMG", "DMG", "DMG", "DMG", "DMG", "DMG"…
## $ canton                 <chr> "GUAYAQUIL", "GUAYAQUIL", "GUAYAQUIL", "GUAYAQU…
## $ cod_subcircuito        <chr> "09D07C07S02", "09D09C02S02", "09D02C04S02", "0…
## $ distrito               <chr> "PASCUALES", "CEIBOS", "ESTEROS", "PASCUALES", …
## $ circuito               <chr> "SAN FRANCISCO", "PUERTO HONDO", "ISLA TRINITAR…
## $ subcircuito            <chr> "SAN FRANCISCO 2", "PUERTO HONDO 2", "TRINITARI…
## $ sector                 <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1…
## $ zona                   <chr> "ZONA URBANA", "ZONA URBANA", "ZONA URBANA", "Z…
## $ f_registro             <dttm> 2013-01-02, 2013-01-06, 2013-01-06, 2013-01-12…
## $ hora_registro          <chr> "0.0555555555555556", "0.40625", "0.97916666666…
## $ f_infraccion           <dttm> 2013-01-01, 2013-01-06, 2013-01-06, 2013-01-12…
## $ semana                 <dbl> 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,…
## $ `semanas 2`            <chr> "01 ene 06 ene", "01 ene 06 ene", "01 ene 06 en…
## $ año_infraccion         <dbl> 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013,…
## $ mes_infraccion         <chr> "enero", "enero", "enero", "enero", "enero", "e…
## $ hora_infraccion        <chr> "A DETERMINARSE", "A DETERMINARSE", "0.91666666…
## $ dia_infraccion         <chr> "martes", "domingo", "domingo", "sAbado", "domi…
## $ rango_                 <chr> "DESCONOCIDA", "DESCONOCIDA", "22:00 a 22:59", …
## $ dia_mes                <dbl> 1, 6, 6, 12, 13, 12, 16, 17, 17, 18, 18, 18, 18…
## $ fuente                 <chr> "DINASED", "DINASED", "DINASED", "DINASED", "DI…
## $ t_delito_pj            <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ delito_pj              <chr> "ASESINATO", "ASESINATO", "ASESINATO", "ASESINA…
## $ cmi                    <chr> "HOMICIDIOS/ASESINATOS", "HOMICIDIOS/ASESINATOS…
## $ modus_operandi         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ arma_utilizada         <chr> "ARMA BLANCA", "ARMA BLANCA", "ARMA DE FUEGO", …
## $ t_agresion             <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ lugar_infraccion       <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ condicion_lugar        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ quien_comete_delito    <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ veh_utilizado          <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ veh_color              <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ veh_marca              <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ modelo                 <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ victima_denunciante    <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ vd_apellidos_nombres   <chr> "ZANABRIA CASTRO JACINTO MANUEL", "CRUZ QUINDE …
## $ vd_sexo                <chr> "MASCULINO", "MASCULINO", "MASCULINO", "MASCULI…
## $ vd_edad                <chr> "36", "24", "20", "72", "23", "36", "41", "38",…
## $ vd_estado_civil        <chr> "SOLTERO", "SOLTERO", "UNION DE HECHO", "UNION …
## $ vd_nacionalidad        <chr> "ECUATORIANA", "ECUATORIANA", "ECUATORIANA", "E…
## $ vd_etnia               <chr> "MESTIZA", "MESTIZA", "AFRO_ECUATORIANA", "MEST…
## $ vd_profesion_ocupacion <chr> "COCINERO", "EMPLEADO", "SE DESCONOCE", "COMERC…
## $ vd_actividad           <chr> "TIENE_TRABAJO_O_NEGOCIO", "TIENE_TRABAJO_O_NEG…
## $ vd_instrucciOn         <chr> "PRIMARIA", "PRIMARIA", "PRIMARIA", "PRIMARIA",…

De este resumen se obtiene que la base se conforma de \(45\) variables con \(21004\) observaciones. Esta base se conforma en su mayoría de variables de caracteres y varibales tipo fecha en varios formatos. Además se vislumbran valores ausentes presentes en los datos.

A continuación se cuentan los valores ausentes para evaluar las variables de interés.

is.na(bd) %>% colSums()
##             cod_delito         zona_senplades              provincia 
##                      0                      0                      0 
##                 canton        cod_subcircuito               distrito 
##                      0                  20626                      0 
##               circuito            subcircuito                 sector 
##                      0                      0                  20626 
##                   zona             f_registro          hora_registro 
##                  16409                      0                      0 
##           f_infraccion                 semana              semanas 2 
##                      0                  20626                  20626 
##         año_infraccion         mes_infraccion        hora_infraccion 
##                      0                      0                      1 
##         dia_infraccion                 rango_                dia_mes 
##                      0                     28                      0 
##                 fuente            t_delito_pj              delito_pj 
##                  20626                  21004                  20626 
##                    cmi         modus_operandi         arma_utilizada 
##                      0                    386                  20626 
##             t_agresion       lugar_infraccion        condicion_lugar 
##                  21004                  21004                  21004 
##    quien_comete_delito          veh_utilizado              veh_color 
##                  21004                  21004                  21004 
##              veh_marca                 modelo    victima_denunciante 
##                  21004                  21004                  21004 
##   vd_apellidos_nombres                vd_sexo                vd_edad 
##                      0                      0                      0 
##        vd_estado_civil        vd_nacionalidad               vd_etnia 
##                  20630                  20626                  20627 
## vd_profesion_ocupacion           vd_actividad         vd_instrucciOn 
##                  20641                  20639                  20642

A partir de esta cuenta se puede ver que las variables con \(\texttt{NA}\)’s tienen una gran cantidad de valores en la mayoría de estas variables (\(> 98\%\)) o se cuenta con toda una columna de \(\texttt{NA}\)’s. Además se cuenta con la variable \(\texttt{zona}\) que consta de un \(78\%\) de valores ausentes por lo que se procede a sacarlas del análisis para hacer una exploración preliminar y después se contrastará la porción de estas variable que no es ausente (el \(2\%\) y el \(28\%\)) para evaluar si hay un cambio significativo respecto al análisis preliminar y checar si resulta conveniente realizar una imputación de datos. Sin embargo se conservan tres columnas con \(\texttt{NA}\)’s pues su proporción de valores asuentes es mínima: \(\texttt{hora_infraccion}\) (1 dato ausente), \(\texttt{rango_}\) (0.13 \(\%\)) y \(\texttt{modus_operandi}\) (1.8 \(\%\)).

bd %<>% select_if(colSums(is.na(.)) <= 386)
glimpse(bd)
## Rows: 21,004
## Columns: 21
## $ cod_delito           <chr> "2013.1m", "2013.3m", "2013.4m", "2013.5m", "2013…
## $ zona_senplades       <chr> "ZONA 8", "ZONA 8", "ZONA 8", "ZONA 8", "ZONA 8",…
## $ provincia            <chr> "DMG", "DMG", "DMG", "DMG", "DMG", "DMG", "DMG", …
## $ canton               <chr> "GUAYAQUIL", "GUAYAQUIL", "GUAYAQUIL", "GUAYAQUIL…
## $ distrito             <chr> "PASCUALES", "CEIBOS", "ESTEROS", "PASCUALES", "S…
## $ circuito             <chr> "SAN FRANCISCO", "PUERTO HONDO", "ISLA TRINITARIA…
## $ subcircuito          <chr> "SAN FRANCISCO 2", "PUERTO HONDO 2", "TRINITARIA …
## $ f_registro           <dttm> 2013-01-02, 2013-01-06, 2013-01-06, 2013-01-12, …
## $ hora_registro        <chr> "0.0555555555555556", "0.40625", "0.9791666666666…
## $ f_infraccion         <dttm> 2013-01-01, 2013-01-06, 2013-01-06, 2013-01-12, …
## $ año_infraccion       <dbl> 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2…
## $ mes_infraccion       <chr> "enero", "enero", "enero", "enero", "enero", "ene…
## $ hora_infraccion      <chr> "A DETERMINARSE", "A DETERMINARSE", "0.9166666666…
## $ dia_infraccion       <chr> "martes", "domingo", "domingo", "sAbado", "doming…
## $ rango_               <chr> "DESCONOCIDA", "DESCONOCIDA", "22:00 a 22:59", "D…
## $ dia_mes              <dbl> 1, 6, 6, 12, 13, 12, 16, 17, 17, 18, 18, 18, 18, …
## $ cmi                  <chr> "HOMICIDIOS/ASESINATOS", "HOMICIDIOS/ASESINATOS",…
## $ modus_operandi       <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ vd_apellidos_nombres <chr> "ZANABRIA CASTRO JACINTO MANUEL", "CRUZ QUINDE AL…
## $ vd_sexo              <chr> "MASCULINO", "MASCULINO", "MASCULINO", "MASCULINO…
## $ vd_edad              <chr> "36", "24", "20", "72", "23", "36", "41", "38", "…
is.na(bd) %>% colSums()
##           cod_delito       zona_senplades            provincia 
##                    0                    0                    0 
##               canton             distrito             circuito 
##                    0                    0                    0 
##          subcircuito           f_registro        hora_registro 
##                    0                    0                    0 
##         f_infraccion       año_infraccion       mes_infraccion 
##                    0                    0                    0 
##      hora_infraccion       dia_infraccion               rango_ 
##                    1                    0                   28 
##              dia_mes                  cmi       modus_operandi 
##                    0                    0                  386 
## vd_apellidos_nombres              vd_sexo              vd_edad 
##                    0                    0                    0

Así, se reduce la base a 21 variables. Ahora, se eliminan los registros que contienen información incompleta de esta nueva base de datos filtrada.

bd %<>% drop_na()
glimpse(bd)
## Rows: 20,618
## Columns: 21
## $ cod_delito           <chr> "2013_1d", "2013_2d", "2013_3d", "2013_4d", "2013…
## $ zona_senplades       <chr> "ZONA 8", "ZONA 8", "ZONA 8", "ZONA 8", "ZONA 8",…
## $ provincia            <chr> "DMG", "DMG", "DMG", "DMG", "DMG", "DMG", "DMG", …
## $ canton               <chr> "GUAYAQUIL", "GUAYAQUIL", "GUAYAQUIL", "GUAYAQUIL…
## $ distrito             <chr> "09 DE OCTUBRE", "09 DE OCTUBRE", "09 DE OCTUBRE"…
## $ circuito             <chr> "9 DE OCTUBRE", "9 DE OCTUBRE", "9 DE OCTUBRE", "…
## $ subcircuito          <chr> "9 DE OCTUBRE 3", "9 DE OCTUBRE 2", "9 DE OCTUBRE…
## $ f_registro           <dttm> 2013-01-07, 2013-01-10, 2013-01-12, 2013-01-15, …
## $ hora_registro        <chr> "0.577245370370371", "0.460497685185185", "0.5555…
## $ f_infraccion         <dttm> 2013-01-06, 2013-01-08, 2013-01-10, 2013-01-10, …
## $ año_infraccion       <dbl> 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2…
## $ mes_infraccion       <chr> "enero", "enero", "enero", "enero", "enero", "ene…
## $ hora_infraccion      <chr> "0.0694444444444444", "0.958333333333333", "0", "…
## $ dia_infraccion       <chr> "domingo", "martes", "jueves", "jueves", "jueves"…
## $ rango_               <chr> "1:00 a 1:59", "23:00 a 23:59", "0:00 a 0:59", "7…
## $ dia_mes              <dbl> 6, 8, 10, 10, 17, 21, 23, 24, 24, 25, 8, 6, 8, 8,…
## $ cmi                  <chr> "ROBO_PERSONAS", "ROBO_A_LOCAL_COMERCIAL", "ROBO_…
## $ modus_operandi       <chr> "ASALTO", "ESCALAMIENTO", "ASALTO", "ASALTO", "VI…
## $ vd_apellidos_nombres <chr> "ASUNCION  MERA  LISBETH   HERMINIA", "TEJENA  AN…
## $ vd_sexo              <chr> "FEMENINO", "MASCULINO", "MASCULINO", "MASCULINO"…
## $ vd_edad              <chr> "21", "58", "13", "13", "29", "31", "2014", "23",…
is.na(bd) %>% colSums()
##           cod_delito       zona_senplades            provincia 
##                    0                    0                    0 
##               canton             distrito             circuito 
##                    0                    0                    0 
##          subcircuito           f_registro        hora_registro 
##                    0                    0                    0 
##         f_infraccion       año_infraccion       mes_infraccion 
##                    0                    0                    0 
##      hora_infraccion       dia_infraccion               rango_ 
##                    0                    0                    0 
##              dia_mes                  cmi       modus_operandi 
##                    0                    0                    0 
## vd_apellidos_nombres              vd_sexo              vd_edad 
##                    0                    0                    0

Por lo tanto se cuenta con una base \(20618\) observaciones en \(21\) variables para realizar la exploración. El encabezado de estos datos se muestra en la Tabla 1.

kable(head(bd))

Table 1: Delitos registrados en diferentes regiones de Ecuador.
cod_delito zona_senplades provincia 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_apellidos_nombres vd_sexo vd_edad
2013_1d ZONA 8 DMG GUAYAQUIL 09 DE OCTUBRE 9 DE OCTUBRE 9 DE OCTUBRE 3 2013-01-07 0.577245370370371 2013-01-06 2013 enero 0.0694444444444444 domingo 1:00 a 1:59 6 ROBO_PERSONAS ASALTO ASUNCION MERA LISBETH HERMINIA FEMENINO 21
2013_2d ZONA 8 DMG GUAYAQUIL 09 DE OCTUBRE 9 DE OCTUBRE 9 DE OCTUBRE 2 2013-01-10 0.460497685185185 2013-01-08 2013 enero 0.958333333333333 martes 23:00 a 23:59 8 ROBO_A_LOCAL_COMERCIAL ESCALAMIENTO TEJENA ANGELA ASUNCION MASCULINO 58
2013_3d ZONA 8 DMG GUAYAQUIL 09 DE OCTUBRE 9 DE OCTUBRE 9 DE OCTUBRE 6 2013-01-12 0.555532407407407 2013-01-10 2013 enero 0 jueves 0:00 a 0:59 10 ROBO_PERSONAS ASALTO FISCALIA GENERAL DEL ESTADO MASCULINO 13
2013_4d ZONA 8 DMG GUAYAQUIL 09 DE OCTUBRE 9 DE OCTUBRE 9 DE OCTUBRE 1 2013-01-15 0.332615740740741 2013-01-10 2013 enero 0.332615740740741 jueves 7:00 a 7:59 10 ROBO_PERSONAS ASALTO FISCALIA GENERAL DEL ESTADO MASCULINO 13
2013_5d ZONA 8 DMG GUAYAQUIL 09 DE OCTUBRE 9 DE OCTUBRE 9 DE OCTUBRE 5 2013-01-17 0.64994212962963 2013-01-17 2013 enero 0.64994212962963 jueves 15:00 a 15:59 17 ROBO_DE_MOTOS VIA_PUBLICA GARCIA DEFILIPPY LIVINGTON WILFRIDO MASCULINO 29
2013_6d ZONA 8 DMG GUAYAQUIL 09 DE OCTUBRE 9 DE OCTUBRE 9 DE OCTUBRE 2 2013-01-22 0.467800925925926 2013-01-21 2013 enero 0.927083333333333 lunes 22:00 a 22:59 21 ROBO_PERSONAS SUSTANCIAS_PSICOTROPICAS FLORES CHAVEZ ELSIE PAMELA FEMENINO 31

3 Análisis Exploratorio

3.1 Exploración con base de datos modificada

Para iniciar la exploración se considera la cuenta de valores únicos de la variable \(\texttt{dia_mes}\), que es numérica, para visualizar la distribución de días con delitos registrados.

bd %>% count(dia_mes) %>% ggplot(aes(x=dia_mes, y=n)) + geom_col() + ylab('Cuenta') + xlab('Día del mes')
Delitos por día del mes.

Figure 1: Delitos por día del mes

De la Figura 1 se observan picos a mitad de mes y en días cercanos a fin de mes, por lo que se podrían contemplar mejorar las medidas de seguridad en las fechas de pago de nóminas (a mitad y fin de mes). Sin embargo, también se observa un pico a mediados de la quincena, por lo que se debe consultar con la experiencia de área para conocer adecuadamente el patrón de fechas de pago en Ecuador.

Para estudiar la distribución de la variable \(\texttt{hora_infraccion}\) se hace una cuenta de la variable caracter y luego se cambia a numérica para visualizar su distribución.

bd %>% count(hora_infraccion,sort=TRUE) %>% ggplot(aes(x=hora_infraccion, y=n)) + geom_col()+
theme(axis.text.x=element_blank(),
      axis.ticks.x=element_blank())
Delitos por hora del día.

Figure 2: Delitos por hora del día

Se puede ver en la Figura 2 que las horas con mayor incidencia de delitos están cercanas a las \(20:00\) a las \(21:00\) y a las \(19:00\) hrs. Por la tarde las horas más incidentes son a las \(14:00\) y \(16:00\) hrs. y por la mañana a las \(10:00\) hrs. En la madrugada la hora más incidente es a las \(3:00\) hrs. En la Tabla 2 se encuentra un resumen con el encabezado de las horas más incidentes.

bd %>% count(hora_infraccion,sort=TRUE) %>% select(hora_infraccion) %>% unlist() %>% as.numeric() -> tiempo_infraccion
kable(head(paste(floor(tiempo_infraccion*24),round((tiempo_infraccion*24-floor(tiempo_infraccion*24))*60), sep=":"),20),col.names="Hora")

Table 2: Horas del día registradas con mayor frecuencia delictiva.
Hora
19:60
21:0
19:0
22:0
20:30
19:30
13:60
10:0
16:0
21:30
15:0
12:0
16:60
22:60
10:60
18:0
22:30
13:0
3:0
9:0

Con la información por día del mes, se puede identificar como se distribuye la incidencia diaria entre distintos cantones.

bd %>% count(canton, dia_mes) %>% ggplot(aes(x=dia_mes, y=n, fill=canton)) + geom_col() + ylab('Cuenta') + xlab('Día del mes') 
Delitos por día del mes y cantón.

Figure 3: Delitos por día del mes y cantón

La Figura 3 muestra que Guayaquil es el cantón con mayor incidencia, representando la mayoría de los reportes. Seguido se encuentra Duran y el tercer cantón representativo es Samborondon. Las frecuencias por cantón se muestran en la Tabla 3.

bd %>% count(canton,sort=TRUE) %>% kable()

Table 3: Frecuencias de delitos por cantón.
canton n
GUAYAQUIL 18822
DURAN 1437
SAMBORONDON 243
PLAYAS 98
BALAO 9
SALITRE 5
NARANJAL 2
EL TRIUNFO 1
NOBOL 1

Así mismo, con la incidencia distribuida mensualmente, se puede visualizar el tipo de modus operandi de cada crimen.

options(repr.plot.width=14, repr.plot.height=6)
bd %>% count(modus_operandi, dia_mes) %>% ggplot(aes(x=dia_mes, y=n, fill=modus_operandi)) + geom_col() + ylab('Cuenta') + xlab('Día del mes') + theme(legend.position="none")
Modus operandi de delitos por día del mes.

Figure 4: Modus operandi de delitos por día del mes

options(repr.plot.width=14, repr.plot.height=6)
bd %>% count(modus_operandi, dia_mes) %>% ggplot(aes(x=dia_mes, y=n, fill=modus_operandi)) + geom_col() + ylab('Cuenta') + xlab('Día del mes')

De la Figura 4 se observa que el modus operandi más frecuente es el asalto, seguido del estruche y en tercer lugar el modus operandi en vía pública. El robo express y los arranchadores también siguen en el orden de incidencia representaitva. Se puede observar que esta distribución de crímenes se mantiene muy similar durante cada día el mes.

Este comportamiento es correspondiente a un año de estudio, como lo muestra la variable \(\texttt{f_infraccion}\).

summary(bd$f_infraccion) 
##                       Min.                    1st Qu. 
## "2013-01-01 00:00:00.0000" "2013-04-01 00:00:00.0000" 
##                     Median                       Mean 
## "2013-06-27 00:00:00.0000" "2013-06-28 11:08:06.4487" 
##                    3rd Qu.                       Max. 
## "2013-09-26 00:00:00.0000" "2013-12-31 00:00:00.0000"

Para evaluar la distribución mensual a lo largo del año, se agrega la información de la variable \(\texttt{mes_infraccion}\).

bd$frecuencia <- 1
bd %>% group_by(mes_infraccion) %>% summarize(frecuencia = sum(frecuencia)) %>% arrange(desc(frecuencia)) %>% kable()

Table 4: Distribución de delitos por mes.
mes_infraccion frecuencia
abril 1907
julio 1866
mayo 1824
agosto 1787
marzo 1755
junio 1704
febrero 1691
enero 1664
octubre 1658
diciembre 1617
noviembre 1616
septiembre 1529

La Tabla 4 muestra como en abril sube la incidencia de delitos y en septiembre baja el número de crímenes.

Para estudiar las características de las víctimas, se comienza analizando la variable \(\texttt{vd_edad}\), pero se filtra una observación mal registrada de edad \(2014\).

bd %>% filter(vd_edad != "2014") %>% select(vd_edad) %>% unlist() %>% as.numeric() %>% summary()
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    10.0    28.0    35.0    37.1    46.0   103.0

Entonces, las edades de las víctimas que denunciaron tienen un rango de \(10\) a \(103\) años con un promedio de \(37\) años.

bd %>% filter(vd_edad != "2014") %>% select(vd_edad) %>% unlist() %>% as.numeric() %>% hist(breaks=40,xlab="edad",ylab="frecuencia", main="Víctimas en Ecuador")
Distribución de las víctimas por edad.

Figure 5: Distribución de las víctimas por edad

Del histograma en la Figura 5 también se puede observar que a pesar del promedio, la edad de \(13\) años es la más frecuente. La Tabla 5 resume esta información. Como a esta edad se muestra alta incidencia y es más vulnerable que la media, se deben tomar acciones para proteger a esta población.

bd %>% count(vd_edad,sort=TRUE) %>% head(10) %>% kable()

Table 5: Frecuencias de edades de las víctimas.
vd_edad n
13 1405
32 735
31 712
34 697
30 684
33 679
36 674
28 660
29 642
27 639

Para comprender mejor la exposición de la población a edad \(13\), se puede comparar la distribución de la edad con respecto al cantón.

bd  %>% filter(vd_edad != "2014") %>% count(canton, vd_edad) %>% ggplot(aes(x=vd_edad, y=n, fill=canton)) + geom_col() + ylab('Cuenta') + xlab('Edad víctimas') + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) + theme(legend.position = "bottom")
Distribución de delitos por edades y cantón.

Figure 6: Distribución de delitos por edades y cantón

La Figura 6 muestra nuevamente que los cuatro cantones más siniestrados vuelven a presentarse en la edad \(13\), por lo que la ubicación del cantón es independiente de la edad. Así, las víctimas de edad \(13\) en Guayaquil son la población que registra frecuencias más altas.

En cuanto al modus operandi que se presenta a la edad \(13\), también se pueden agrupar ambas distribuciones y visulizar su comportamiento.

options(repr.plot.width=14, repr.plot.height=6)
bd  %>% filter(vd_edad != "2014") %>% count(modus_operandi, vd_edad) %>% ggplot(aes(x=vd_edad, y=n, fill=modus_operandi)) + geom_col() + ylab('Cuenta') + xlab('Edad víctimas') + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) + theme(legend.position="none")
Distribución de delitos por edades y modus operandi.

Figure 7: Distribución de delitos por edades y modus operandi

options(repr.plot.width=14, repr.plot.height=6)
bd  %>% filter(vd_edad != "2014") %>% count(modus_operandi, vd_edad) %>% ggplot(aes(x=vd_edad, y=n, fill=modus_operandi)) + geom_col() + ylab('Cuenta') + xlab('Edad víctimas')

Una vez más, en la Figura 7 se tiene una distribución similar a la de toda la población durante todos los días del mes, sin embargo se aprecia que para el modus operandi de estruche, el porcentaje se intensifica dentro de la población a edad \(13\), por lo que tomar acciones para controlar el asalto entre toda la población seguido de controlar el estruche para la población de \(13\) años puede ayudar a mejorar la situación delictiva en Ecuador.

Para estudiar la distribución por género, se filtran \(9\) observaciones registradas como \(\texttt{#NULL!}\) y se observan los siguientes porcentajes.

bd %>% filter(vd_sexo != "#NULL!") %>% select(vd_sexo) %>% table() %>% `/`(nrow(bd)) %>% `*`(100) %>% kable()

Table 5: Distribución de delitos por género.
vd_sexo Freq
FEMENINO 26.64662
MASCULINO 73.30973

En la Tabla 5 se tiene que se registró un \(73\%\) del género masculino y un \(27\%\) del género femenino.

3.2 Exploración con base de datos completa

Ahora se considera la base de datos completa para comparar con las distribuciones obtenidas anteriormente y evaluar su comportamiento.

bd <- read_excel("Analisis_Delincuencia_Base_datos.xlsx")
bd
## # A tibble: 21,004 × 45
##    cod_delito zona_senplades provincia canton  cod_subcircuito distrito circuito
##    <chr>      <chr>          <chr>     <chr>   <chr>           <chr>    <chr>   
##  1 2013.1m    ZONA 8         DMG       GUAYAQ… 09D07C07S02     PASCUAL… SAN FRA…
##  2 2013.3m    ZONA 8         DMG       GUAYAQ… 09D09C02S02     CEIBOS   PUERTO …
##  3 2013.4m    ZONA 8         DMG       GUAYAQ… 09D02C04S02     ESTEROS  ISLA TR…
##  4 2013.5m    ZONA 8         DMG       GUAYAQ… 09D07C07S04     PASCUAL… SAN FRA…
##  5 2013.6m    ZONA 8         DMG       GUAYAQ… 09D01C02S02     SUR      UNION D…
##  6 2013.7m    ZONA 8         DMG       GUAYAQ… 09D03C04S02     09 DE O… GARAY   
##  7 2013.8m    ZONA 8         DMG       GUAYAQ… 09D04C01S05     PORTETE  CISNE   
##  8 2013.9m    ZONA 8         DMG       GUAYAQ… 09D01C04S03     SUR      SIETE L…
##  9 2013.10m   ZONA 8         DMG       GUAYAQ… 09D01C01S03     SUR      GUASMO  
## 10 2013.11m   ZONA 8         DMG       GUAYAQ… 09D04C03S04     PORTETE  SALINAS 
## # … with 20,994 more rows, and 38 more variables: subcircuito <chr>,
## #   sector <chr>, zona <chr>, f_registro <dttm>, hora_registro <chr>,
## #   f_infraccion <dttm>, semana <dbl>, semanas 2 <chr>, año_infraccion <dbl>,
## #   mes_infraccion <chr>, hora_infraccion <chr>, dia_infraccion <chr>,
## #   rango_ <chr>, dia_mes <dbl>, fuente <chr>, t_delito_pj <lgl>,
## #   delito_pj <chr>, cmi <chr>, modus_operandi <chr>, arma_utilizada <chr>,
## #   t_agresion <lgl>, lugar_infraccion <lgl>, condicion_lugar <lgl>,
## #   quien_comete_delito <lgl>, veh_utilizado <lgl>, veh_color <lgl>,
## #   veh_marca <lgl>, modelo <lgl>, victima_denunciante <lgl>,
## #   vd_apellidos_nombres <chr>, vd_sexo <chr>, vd_edad <chr>,
## #   vd_estado_civil <chr>, vd_nacionalidad <chr>, vd_etnia <chr>,
## #   vd_profesion_ocupacion <chr>, vd_actividad <chr>, vd_instrucciOn <chr>

Se vuelve a considerar la cuenta de la variable \(\texttt{dia_mes}\) en la Figura 8.

bd %>% count(dia_mes) %>% ggplot(aes(x=dia_mes, y=n)) + geom_col() + ylab('Cuenta') + xlab('Día del mes')
Delitos por día del mes. Base de datos completa.

Figure 8: Delitos por día del mes
Base de datos completa.

La Figura 9 vuelve a mostrar la cuenta de la hora de infracción.

bd %>% count(hora_infraccion,sort=TRUE) %>% ggplot(aes(x=hora_infraccion, y=n)) + geom_col()+
theme(axis.text.x=element_blank(),
      axis.ticks.x=element_blank())
Delitos por hora del día. Base de datos completa.

Figure 9: Delitos por hora del día
Base de datos completa.

Y se vuelven a observar los mismos picos temporales.

Ahora se compara la distribución del cantón por día del mes en la Figura 10 y el resumen de frecuencias en la Tabla 6.

bd %>% count(canton, dia_mes) %>% ggplot(aes(x=dia_mes, y=n, fill=canton)) + geom_col() + ylab('Cuenta') + xlab('Día del mes') 
Delitos por día del mes y cantón. Base de datos completa.

Figure 10: Delitos por día del mes y cantón
Base de datos completa.

bd %>% count(canton,sort=TRUE) %>% kable()
Table 6: Frecuencias de delitos por cantón
Base de datos completa.
canton n
GUAYAQUIL 19171
DURAN 1467
SAMBORONDON 250
PLAYAS 98
BALAO 9
SALITRE 5
NARANJAL 2
EL TRIUNFO 1
NOBOL 1

La distribución es la misma, y de aquí se aprecia que la proporción de \(\texttt{NA}\)’s se concentra en los cantones más frecuentes, por lo que se puede entender que la eliminación de estos registros no afectarán en la exploración pues se mantiene la forma original de la base de datos.

Se continúa la comparación con el modus operandi en la Figura 11.

options(repr.plot.width=14, repr.plot.height=6)
bd %>% count(modus_operandi, dia_mes) %>% ggplot(aes(x=dia_mes, y=n, fill=modus_operandi)) + geom_col() + ylab('Cuenta') + xlab('Día del mes') + theme(legend.position="none")
Modus operandi de delitos por día del mes. Base de datos completa.

Figure 11: Modus operandi de delitos por día del mes
Base de datos completa.

options(repr.plot.width=14, repr.plot.height=6)
bd %>% count(modus_operandi, dia_mes) %>% ggplot(aes(x=dia_mes, y=n, fill=modus_operandi)) + geom_col() + ylab('Cuenta') + xlab('Día del mes')

También se preserva la distribución del modus operandi y de estas gráficas se puede concluir que la base de datos modificada es más eficiente pues retira el porcentaje de valores ausente que no permite representar los modus operandi menos frecuentes. Así mismo, en cuanto al control del registro de la información, se observa que en los registros con mayores denuncias se cometen más errores al registrar mayor cantidad de \(\texttt{NA}\)’s, por lo que la base de datos modificada puede brindar mayor confiabilidad ya que esta puede ser la razón principal en la falta de valores y no un comportamiento inrínseco de la problemática de la delincuencia.

Para evaluar el comportamiento de las víctimas con la base completa se toman las distribuciones de edades en las Figuras 12, 13 y 14.

bd %>% filter(vd_edad != "2014") %>% select(vd_edad) %>% unlist() %>% as.numeric() %>% hist(breaks=40,xlab="edad",ylab="frecuencia", main="Víctimas en Ecuador")
## Warning in hist(., breaks = 40, xlab = "edad", ylab = "frecuencia", main =
## "Víctimas en Ecuador"): NAs introducidos por coerción
Distribución de las víctimas por edad. Base de datos completa.

Figure 12: Distribución de las víctimas por edad
Base de datos completa.

bd  %>% filter(vd_edad != "2014") %>% count(canton, vd_edad) %>% ggplot(aes(x=vd_edad, y=n, fill=canton)) + geom_col() + ylab('Cuenta') + xlab('Edad víctimas') + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) + theme(legend.position = "bottom")
Distribución de delitos por edades y cantón. Base de datos completa.

Figure 13: Distribución de delitos por edades y cantón
Base de datos completa.

options(repr.plot.width=14, repr.plot.height=6)
bd  %>% filter(vd_edad != "2014") %>% count(modus_operandi, vd_edad) %>% ggplot(aes(x=vd_edad, y=n, fill=modus_operandi)) + geom_col() + ylab('Cuenta') + xlab('Edad víctimas') + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) + theme(legend.position="none")
Distribución de delitos por edades y modus operandi. Base de datos completa.

Figure 14: Distribución de delitos por edades y modus operandi
Base de datos completa.

options(repr.plot.width=14, repr.plot.height=6)
bd  %>% filter(vd_edad != "2014") %>% count(modus_operandi, vd_edad) %>% ggplot(aes(x=vd_edad, y=n, fill=modus_operandi)) + geom_col() + ylab('Cuenta') + xlab('Edad víctimas')

Al comparar las distribuciones de la base completa de las Figuras 12, 13 y 14 se puede notar, que aunque las proporciones se preservan respecto a la base modificada, existe un rango mucho mayor de edades siniestradas en la base de datos original, pues se muestran registros para edades \(3\) y \(6\) años que se eliminan con la limpieza de valores ausentes pues muy probablemente no se registran íntegramente estos casos al no estar en capacidad de denunciar independientemente. En estos casos se debe tener un mejor control para registrar estas observaciones lo más completas posibles.

La distribución por género para datos completos se muestra en la Tabla 7 y se observa que también se vuelven a preservar los porcentajes.

bd %>% filter(vd_sexo != "#NULL!") %>% select(vd_sexo) %>% table() %>% `/`(nrow(bd)) %>% `*`(100) %>% kable()
Table 7: Distribución de delitos por género
Base de datos completa.
vd_sexo Freq
FEMENINO 26.32832
MASCULINO 73.62883

3.3 Sobre los valores ausentes

Del conteo de valores ausentes se encontraron \(10\) columnas vacías, por lo que no se consideran en absoluto dentro del estudio, pues no proveen ninguna información adicional sobre la actividad delictiva, salvo que son variables que podrían registrarse en una base de datos posterior.

bd %<>% select_if(colSums(is.na(.)) < 21004) %>% glimpse() 
## Rows: 21,004
## Columns: 35
## $ cod_delito             <chr> "2013.1m", "2013.3m", "2013.4m", "2013.5m", "20…
## $ zona_senplades         <chr> "ZONA 8", "ZONA 8", "ZONA 8", "ZONA 8", "ZONA 8…
## $ provincia              <chr> "DMG", "DMG", "DMG", "DMG", "DMG", "DMG", "DMG"…
## $ canton                 <chr> "GUAYAQUIL", "GUAYAQUIL", "GUAYAQUIL", "GUAYAQU…
## $ cod_subcircuito        <chr> "09D07C07S02", "09D09C02S02", "09D02C04S02", "0…
## $ distrito               <chr> "PASCUALES", "CEIBOS", "ESTEROS", "PASCUALES", …
## $ circuito               <chr> "SAN FRANCISCO", "PUERTO HONDO", "ISLA TRINITAR…
## $ subcircuito            <chr> "SAN FRANCISCO 2", "PUERTO HONDO 2", "TRINITARI…
## $ sector                 <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1…
## $ zona                   <chr> "ZONA URBANA", "ZONA URBANA", "ZONA URBANA", "Z…
## $ f_registro             <dttm> 2013-01-02, 2013-01-06, 2013-01-06, 2013-01-12…
## $ hora_registro          <chr> "0.0555555555555556", "0.40625", "0.97916666666…
## $ f_infraccion           <dttm> 2013-01-01, 2013-01-06, 2013-01-06, 2013-01-12…
## $ semana                 <dbl> 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,…
## $ `semanas 2`            <chr> "01 ene 06 ene", "01 ene 06 ene", "01 ene 06 en…
## $ año_infraccion         <dbl> 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013,…
## $ mes_infraccion         <chr> "enero", "enero", "enero", "enero", "enero", "e…
## $ hora_infraccion        <chr> "A DETERMINARSE", "A DETERMINARSE", "0.91666666…
## $ dia_infraccion         <chr> "martes", "domingo", "domingo", "sAbado", "domi…
## $ rango_                 <chr> "DESCONOCIDA", "DESCONOCIDA", "22:00 a 22:59", …
## $ dia_mes                <dbl> 1, 6, 6, 12, 13, 12, 16, 17, 17, 18, 18, 18, 18…
## $ fuente                 <chr> "DINASED", "DINASED", "DINASED", "DINASED", "DI…
## $ delito_pj              <chr> "ASESINATO", "ASESINATO", "ASESINATO", "ASESINA…
## $ cmi                    <chr> "HOMICIDIOS/ASESINATOS", "HOMICIDIOS/ASESINATOS…
## $ modus_operandi         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ arma_utilizada         <chr> "ARMA BLANCA", "ARMA BLANCA", "ARMA DE FUEGO", …
## $ vd_apellidos_nombres   <chr> "ZANABRIA CASTRO JACINTO MANUEL", "CRUZ QUINDE …
## $ vd_sexo                <chr> "MASCULINO", "MASCULINO", "MASCULINO", "MASCULI…
## $ vd_edad                <chr> "36", "24", "20", "72", "23", "36", "41", "38",…
## $ vd_estado_civil        <chr> "SOLTERO", "SOLTERO", "UNION DE HECHO", "UNION …
## $ vd_nacionalidad        <chr> "ECUATORIANA", "ECUATORIANA", "ECUATORIANA", "E…
## $ vd_etnia               <chr> "MESTIZA", "MESTIZA", "AFRO_ECUATORIANA", "MEST…
## $ vd_profesion_ocupacion <chr> "COCINERO", "EMPLEADO", "SE DESCONOCE", "COMERC…
## $ vd_actividad           <chr> "TIENE_TRABAJO_O_NEGOCIO", "TIENE_TRABAJO_O_NEG…
## $ vd_instrucciOn         <chr> "PRIMARIA", "PRIMARIA", "PRIMARIA", "PRIMARIA",…

Así, la base con información real consta solamente de \(35\) variables. Ahora, se tienen \(8\) columna con \(20626\) valores ausentes cada una. Esto coincide con la diferencia \(21004-378\), por lo que al filtrar estas columnas con la variable \(\texttt{cmi}\) se encuentra que estos \(20626\) registros por cada columna no son verdaderos valores ausentes, si no que son variables que prosiblemente sólo se registran al presentarse la categoría \(\texttt{HOMICIDIOS/ASESINATOS}\) de la columna \(\texttt{cmi}\).

bd %>% select(cmi,vd_nacionalidad,arma_utilizada,delito_pj,fuente,`semanas 2`,semana,sector,cod_subcircuito) %>% select_if(colSums(is.na(.)) <= 20626) %>% drop_na() %>% select(cmi) %>% table()
## cmi
## HOMICIDIOS/ASESINATOS 
##                   378

De manera similar esta relación se presenta con la variable \(\texttt{vd_etnia}\), sólo que en este caso se contabilizan \(20627\) \(\texttt{NA}\)’s, así que se cuenta solamente con un valor ausente verdadero.

bd %>% select(cmi,vd_etnia) %>% select_if(colSums(is.na(.)) <= 20627) %>% drop_na() %>% select(cmi) %>% table()
## cmi
## HOMICIDIOS/ASESINATOS 
##                   377

Y se repite nuevamente este comportamiento con las siguientes variables.

Para \(\texttt{vd_estado_civil}\), con \(4\) verdaderos valores ausentes.

bd %>% select(cmi,vd_estado_civil) %>% select_if(colSums(is.na(.)) <= 20630) %>% drop_na() %>% select(cmi) %>% table()
## cmi
## HOMICIDIOS/ASESINATOS 
##                   374

Para \(\texttt{vd_actividad}\), con \(13\) verdaderos valores ausentes y un resumen en la Tabla 8.

bd %>% select(cmi,vd_actividad) %>% select_if(colSums(is.na(.)) <= 20639) %>% drop_na() %>% select(cmi) %>% table()
## cmi
## HOMICIDIOS/ASESINATOS 
##                   365
bd %>% select(vd_actividad) %>% table() %>% sort(decreasing = TRUE) %>% head() %>% kable()

Table 8: Distribución de actividad para víctimas de homicidio/asesinato.
vd_actividad Freq
TIENE TRABAJO O NEGOCIO 158
NO TIENE TRABAJO 61
TIENE TRABAJO 57
ESTUDIANTE 23
TIENE_TRABAJO_O_NEGOCIO 17
SIN DATO 12

Para \(\texttt{vd_profesion_ocupacion}\), con \(15\) verdaderos valores ausentes y un resumen en la Tabla 9.

bd %>% select(cmi,vd_profesion_ocupacion) %>% select_if(colSums(is.na(.)) <= 20641) %>% drop_na() %>% select(cmi) %>% table()
## cmi
## HOMICIDIOS/ASESINATOS 
##                   363
bd %>% select(vd_profesion_ocupacion) %>% table() %>% sort(decreasing = TRUE) %>% head() %>% kable()

Table 9: Distribución de profesión para víctimas de homicidio/asesinato.
vd_profesion_ocupacion Freq
COMERCIANTE 64
ALBAÑIL 36
ESTUDIANTE 28
DESEMPLEADO 24
SE DESCONOCE 19
NINGUNA 12

Y para \(\texttt{vd_instrucciOn}\), con \(16\) verdaderos valores ausentes y un resumen en la Tabla 10.

bd %>% select(cmi,vd_instrucciOn) %>% select_if(colSums(is.na(.)) <= 20642) %>% drop_na() %>% select(cmi) %>% table()
## cmi
## HOMICIDIOS/ASESINATOS 
##                   362
bd %>% select(vd_instrucciOn) %>% table() %>% sort(decreasing = TRUE) %>% head() %>% kable()

Table 10: Distribución de escolaridad para víctimas de homicidio/asesinato.
vd_instrucciOn Freq
SECUNDARIA 166
PRIMARIA 143
SUPERIOR 21
SIN DATO 14
NINGUNA 10
SE DESCONOCE 7

4 Conclusiones.

Se deben tomar medidas preventivas respecto en función de las frecuencias más altas registradas correspondiente a la población en Guayaquil, con énfasis en las víctimas a edad \(13\) que reportan delitos de asalto y estruche alrededor de las \(20:00\) hrs.

El registro de homicidios/asesinatos involucra un análisis posterior para la denuncia de delitos en cuanto a características más específicas de estas víctimas. Se tiene que las actividades que desembocan en homiciodios y asesinatos están principalmenmte relacioanadas con víctimas que tienen trabajo o negocio, seguidas de aquellas víctimas que no contaban con trabajo y con una frecuiencia también representativa en las víctimas con actividad estudiantil. Las profesiones u ocupaciones más frecuentes en lso delitos de homicidios y asesinatos son la de comerciante en primer lugar, seguida de la albañilería, la estudiantil y personas desempleadas respectivamente. La distribución de escolaridad de los homicidios y asesinatos se centra principalmente en población con secundaria, seguida de población con primaria y en tercer lugar se encuentra la población con escolaridad superior.

De la comparación de variables con datos ausentes se concluye que la única columna con \(\texttt{NA}\)’s significativos es la variable \(\texttt{zona}\), con un \(78\%\) de información faltante, sin embargo, para la imputación de esta información se recomienda cruzar la información de las demás variables espaciales dentro del estudio así como trabajar con la experiencia de área y la información existente geográfica y socioeconómica en Ecuador para integrar la clasificación de zonas rurales y urbanas en la actividad delictiva de forma más exacta en vez de llevar a cabo alguna metodología artificial de imputación. En cuanto a las demás variables, este estudio presenta un análisis comparativo para poder detectar la naturaleza de la falta de registros y que no equivale a la presencia de falta de información o información mal registrada.

Session info

## R version 4.2.1 (2022-06-23)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.3 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
## 
## locale:
##  [1] LC_CTYPE=es_MX.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=es_MX.UTF-8        LC_COLLATE=es_MX.UTF-8    
##  [5] LC_MONETARY=es_MX.UTF-8    LC_MESSAGES=es_MX.UTF-8   
##  [7] LC_PAPER=es_MX.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=es_MX.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] lubridate_1.7.10 knitr_1.40       magrittr_2.0.3   readxl_1.4.1    
##  [5] forcats_0.5.1    stringr_1.4.0    dplyr_1.0.7      purrr_0.3.4     
##  [9] readr_2.0.0      tidyr_1.1.3      tibble_3.1.3     ggplot2_3.3.6   
## [13] tidyverse_1.3.1  BiocStyle_2.24.0
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_1.0.9          assertthat_0.2.1    digest_0.6.29      
##  [4] utf8_1.2.2          R6_2.5.1            cellranger_1.1.0   
##  [7] backports_1.4.1     reprex_2.0.0        evaluate_0.16      
## [10] httr_1.4.4          highr_0.9           pillar_1.6.1       
## [13] rlang_1.0.5         rstudioapi_0.14     jquerylib_0.1.4    
## [16] magick_2.7.3        rmarkdown_2.16      labeling_0.4.2     
## [19] munsell_0.5.0       broom_0.7.8         compiler_4.2.1     
## [22] modelr_0.1.8        xfun_0.33           pkgconfig_2.0.3    
## [25] htmltools_0.5.3     tidyselect_1.1.1    bookdown_0.29      
## [28] fansi_1.0.3         crayon_1.5.1        tzdb_0.1.2         
## [31] dbplyr_2.1.1        withr_2.5.0         grid_4.2.1         
## [34] jsonlite_1.8.0      gtable_0.3.1        lifecycle_1.0.2    
## [37] DBI_1.1.3           scales_1.2.1        cli_3.4.0          
## [40] stringi_1.7.8       cachem_1.0.6        farver_2.1.1       
## [43] fs_1.5.2            xml2_1.3.3          bslib_0.4.0        
## [46] ellipsis_0.3.2      generics_0.1.3      vctrs_0.3.8        
## [49] tools_4.2.1         glue_1.6.2          hms_1.1.0          
## [52] fastmap_1.1.0       yaml_2.3.5          colorspace_2.0-3   
## [55] BiocManager_1.30.18 rvest_1.0.0         haven_2.4.1        
## [58] sass_0.4.2