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
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
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
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…
No todos los distritos tienen datos en ambos años: la prueba t pareada solo considera los distritos que tienen datos tanto en 2020 como en 2024, mientras que el total puede incluir más distritos solo en un año.
Valores extremos: algunos distritos pueden haber tenido un aumento muy fuerte en 2024, que afecta el total, pero como la prueba t pareada usa el promedio de diferencias, ese aumento se “dispersa”
Distribución desigual: es posible que la mayoría de distritos hayan tenido una ligera baja, pero unos pocos hayan tenido muchísimos homicidios, lo que eleva el total, pero no el promedio.
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")