Limpiamos y unimos la data final

library(rio)
## Warning: package 'rio' was built under R version 4.4.3
data2020 = import("data_2020.csv")
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data2020 = data2020 %>%
  select("Distrito", "HOMICIDIOS")

head(data2020)
##               Distrito HOMICIDIOS
## 1 DISTRITO  AGALLPAMPA          1
## 2 DISTRITO  ANGASMARCA          0
## 3 DISTRITO  BAMBAMARCA          2
## 4    DISTRITO  BOLIVAR          0
## 5 DISTRITO  CACHICADAN          0
## 6  DISTRITO  CARABAMBA          0
#renombramos

names(data2020)[names(data2020) %in% c("HOMICIDIOS")] <- c("HOMICIDIOS_2020")
library(rio)
data2024 = import("data_2024.csv")

library(dplyr)
data2024 = data2024 %>%
  select("Distrito", "HOMICIDIOS")

names(data2024)[names(data2024) %in% c("HOMICIDIOS")] <- c("HOMICIDIOS_2024")

head(data2024)
##               Distrito HOMICIDIOS_2024
## 1 DISTRITO  AGALLPAMPA               0
## 2 DISTRITO  ANGASMARCA               0
## 3 DISTRITO  BAMBAMARCA               1
## 4    DISTRITO  BOLIVAR               1
## 5 DISTRITO  CACHICADAN               1
## 6  DISTRITO  CARABAMBA               1
#Merge

data_final = merge(data2020, data2024, by = "Distrito")
head(data_final)
##               Distrito HOMICIDIOS_2020 HOMICIDIOS_2024
## 1 DISTRITO  AGALLPAMPA               1               0
## 2 DISTRITO  ANGASMARCA               0               0
## 3 DISTRITO  BAMBAMARCA               2               1
## 4    DISTRITO  BOLIVAR               0               1
## 5 DISTRITO  CACHICADAN               0               1
## 6  DISTRITO  CARABAMBA               0               1

Exploración Univariada

Homicidios 2020

summary(data_final$HOMICIDIOS_2020)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   1.000   2.293   2.750  16.000
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.4.2
allStats_h2020=c(summary(data_final$HOMICIDIOS_2020),
    sd=sd(data_final$HOMICIDIOS_2020), # variabilidad (en relacion a la media)
  skew=Skew(data_final$HOMICIDIOS_2020), # asimetria (positiva o negativa)
  kurt=Kurt(data_final$HOMICIDIOS_2020), # concentración (enpinada / aplanada)
  cv=CoefVar(data_final$HOMICIDIOS_2020)) # variabilidad (mayor o menor que uno)
allStats_h2020
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max.        sd      skew 
##  0.000000  0.000000  1.000000  2.293103  2.750000 16.000000  3.884330  2.182667 
##      kurt        cv 
##  4.130988  1.693918
#histograma

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.2
base=ggplot(data=data_final,
            aes(x=HOMICIDIOS_2020))

histograma_h2020 = base + geom_histogram(aes(y = after_stat(density)),
                 colour = 1, fill = "white",bins=10) +  
    stat_function(fun = dnorm,
                  args = list(mean = allStats_h2020['Mean'],
                              sd = allStats_h2020['sd']),col='red')

histograma_h2020

#Boxplot

base=ggplot(data=data_final,
            aes(y=HOMICIDIOS_2020))
boxplot_h2020=base + geom_boxplot() 

boxplot_h2020

#Identificamos los valores atípicos

valuesFromBox= ggplot_build(boxplot_h2020)$data[[1]]
valuesFromBox
##   ymin lower middle upper ymax              outliers notchupper notchlower x
## 1    0     0      1  2.75    6 12, 16, 8, 12, 16, 10   1.570526  0.4294735 0
##   flipped_aes PANEL group ymin_final ymax_final   xmin  xmax xid newx new_width
## 1       FALSE     1    -1          0         16 -0.375 0.375   1    0      0.75
##   weight colour  fill alpha shape linetype linewidth
## 1      1 grey20 white    NA    19    solid       0.5
outliersLocales=valuesFromBox$outliers[[1]]
outliersLocales
## [1] 12 16  8 12 16 10
valuesFromBox[c('ymin','ymax')]
##   ymin ymax
## 1    0    6
data_final[data_final$HOMICIDIOS_2020>6,]
##                  Distrito HOMICIDIOS_2020 HOMICIDIOS_2024
## 31          DISTRITO CHAO              12              23
## 35   DISTRITO EL PORVENIR              16              34
## 36 DISTRITO FLORENC. MORA               8               4
## 37     DISTRITO GUADALUPE              12              15
## 41  DISTRITO LA ESPERANZA              16              24
## 42        DISTRITO LAREDO              10              13

Homicidios 2024

summary(data_final$HOMICIDIOS_2024)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   1.000   4.776   5.000  34.000
library(DescTools)
allStats_h2024=c(summary(data_final$HOMICIDIOS_2024),
    sd=sd(data_final$HOMICIDIOS_2024), # variabilidad (en relacion a la media)
  skew=Skew(data_final$HOMICIDIOS_2024), # asimetria (positiva o negativa)
  kurt=Kurt(data_final$HOMICIDIOS_2024), # concentración (enpinada / aplanada)
  cv=CoefVar(data_final$HOMICIDIOS_2024)) # variabilidad (mayor o menor que uno)
allStats_h2024
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max.        sd      skew 
##  0.000000  0.000000  1.000000  4.775862  5.000000 34.000000  8.210056  2.100658 
##      kurt        cv 
##  3.386646  1.719073
#histograma

library(ggplot2)

base=ggplot(data=data_final,
            aes(x=HOMICIDIOS_2024))

histograma_h2024 = base + geom_histogram(aes(y = after_stat(density)),
                 colour = 1, fill = "white",bins=10) +  
    stat_function(fun = dnorm,
                  args = list(mean = allStats_h2024['Mean'],
                              sd = allStats_h2024['sd']),col='red')

histograma_h2024

#Boxplot

base=ggplot(data=data_final,
            aes(y=HOMICIDIOS_2024))
boxplot_h2024=base + geom_boxplot() 

boxplot_h2024

#Identificamos los valores atípicos

valuesFromBox2= ggplot_build(boxplot_h2024)$data[[1]]
valuesFromBox2
##   ymin lower middle upper ymax                       outliers notchupper
## 1    0     0      1     5   11 29, 23, 34, 15, 24, 13, 22, 27   2.037321
##    notchlower x flipped_aes PANEL group ymin_final ymax_final   xmin  xmax xid
## 1 -0.03732082 0       FALSE     1    -1          0         34 -0.375 0.375   1
##   newx new_width weight colour  fill alpha shape linetype linewidth
## 1    0      0.75      1 grey20 white    NA    19    solid       0.5
outliersLocales=valuesFromBox2$outliers[[1]]
outliersLocales
## [1] 29 23 34 15 24 13 22 27
valuesFromBox2[c('ymin','ymax')]
##   ymin ymax
## 1    0   11
data_final[data_final$HOMICIDIOS_2024>11,]  #los puntos que aparecen en el boxplot, son aquellos valores atípicos, los cuales se escapan de la distribución normal --> aquellos distritos que resaltan en homicidios en el año 2024
##                 Distrito HOMICIDIOS_2020 HOMICIDIOS_2024
## 18       DISTRITO  PATAZ               0              29
## 31         DISTRITO CHAO              12              23
## 35  DISTRITO EL PORVENIR              16              34
## 37    DISTRITO GUADALUPE              12              15
## 41 DISTRITO LA ESPERANZA              16              24
## 42       DISTRITO LAREDO              10              13
## 56    DISTRITO TRUJILLO.               6              22
## 58         DISTRITO VIRU               4              27

Análisis Bivariado

En este caso vamos a correr una prueba t pareada, para identificar si existe una diferencia estadísticamente significativa en torno a los homicidios registrados para el año 2020 y el año 2024

t.test(data_final$HOMICIDIOS_2020, data_final$HOMICIDIOS_2024, paired = TRUE)
## 
##  Paired t-test
## 
## data:  data_final$HOMICIDIOS_2020 and data_final$HOMICIDIOS_2024
## t = -3.1853, df = 57, p-value = 0.002345
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
##  -4.0435601 -0.9219572
## sample estimates:
## mean difference 
##       -2.482759

Ya que el p-valor (p-value) resulta menor a 0.05 (0.002345), podemos señalar que existe una diferencia estadísticamente significativa entre ambos años.

La diferencia promedio de homicidios (mean difference) es igual a -2.48, lo que significa que en promedio hubo 2.48 homicidios menos en 2024 que en 2020, por distrito.

#número de homicidios 2020
sum(data_final$HOMICIDIOS_2020, na.rm = TRUE)
## [1] 133
#número de homicidios 2024
sum(data_final$HOMICIDIOS_2024, na.rm = TRUE)
## [1] 277

Como podemos ver, para el año 2024 se reportaron más homicidios que en el 2020, por lo que a simple vista parece que la prueba t se contradice, pero…

Entonces, aunque el número total de homicidios en los distritos de Trujillo aumentó significativamente entre 2020 y 2024, el aumento se concentró en pocos distritos (como Pataz, Virú o El Porvenir). La mayoría de distritos no presentó cambios relevantes o solo aumentos mínimos. Por ello, el promedio de la diferencia por distrito fue ligeramente negativo, y la prueba t pareada encontró una diferencia estadísticamente significativa, pero hacia la baja, lo cual no contradice el aumento total, sino que revela alta desigualdad en la distribución del crecimiento de homicidios.

Si queremos identificar aquellos distritos que más crecieron en torno a homicidios, podemos hacer lo siguiente:

#calculamos la diferencia por distrito
data_final$diferencia_homicidios <- data_final$HOMICIDIOS_2024 - data_final$HOMICIDIOS_2020
# Ordenar de mayor a menor crecimiento
data_ordenada <- data_final[order(-data_final$diferencia_homicidios), ]

# Ver los 10 distritos con mayor aumento
head(data_ordenada, 10)
##                 Distrito HOMICIDIOS_2020 HOMICIDIOS_2024 diferencia_homicidios
## 18       DISTRITO  PATAZ               0              29                    29
## 58         DISTRITO VIRU               4              27                    23
## 35  DISTRITO EL PORVENIR              16              34                    18
## 56    DISTRITO TRUJILLO.               6              22                    16
## 31         DISTRITO CHAO              12              23                    11
## 41 DISTRITO LA ESPERANZA              16              24                     8
## 44        DISTRITO MOCHE               3               9                     6
## 10  DISTRITO  HUAMACHUCO               1               6                     5
## 39    DISTRITO HUANCHACO               6              11                     5
## 52     DISTRITO SAN JOSE               1               6                     5
# Ver los 10 distritos con mayor disminución
tail(data_ordenada, 10)
##                  Distrito HOMICIDIOS_2020 HOMICIDIOS_2024 diferencia_homicidios
## 3    DISTRITO  BAMBAMARCA               2               1                    -1
## 8       DISTRITO  CHILLIA               1               0                    -1
## 13        DISTRITO  LUCMA               1               0                    -1
## 16       DISTRITO  OTUZCO               3               2                    -1
## 27       DISTRITO  USQUIL               2               1                    -1
## 46     DISTRITO PACASMAYO               2               1                    -1
## 51     DISTRITO SALAVERRY               1               0                    -1
## 7        DISTRITO  CHARAT               4               2                    -2
## 57  DISTRITO VICTOR LARCO               5               2                    -3
## 36 DISTRITO FLORENC. MORA               8               4                    -4
#graficamos los principales aumentos

library(ggplot2)

# Seleccionar los 10 con más aumento
top10 <- head(data_ordenada, 10)

# Gráfico de barras
ggplot(top10, aes(x = reorder(Distrito, diferencia_homicidios), y = diferencia_homicidios)) +
  geom_bar(stat = "identity", fill = "red") +
  coord_flip() +
  labs(title = "Top 10 distritos con mayor aumento de homicidios (2024 vs 2020)",
       x = "Distrito", y = "Aumento en número de homicidios")