Contexto La base de datos contiene estadísticas en arrestos por cada 100,000 residentes por agresión, asesinato y violación en cada uno de los 50 estados de EE.UU en 1973.
library(maps) # Librería para la visaulización de mapas geograficosw
## Warning: package 'maps' was built under R version 4.3.1
library(cluster) # Librería para la realización de clusters
## Warning: package 'cluster' was built under R version 4.3.1
##
## Attaching package: 'cluster'
## The following object is masked from 'package:maps':
##
## votes.repub
library(ggplot2) # Librería para la visualización de datos
## Warning: package 'ggplot2' was built under R version 4.3.1
library(data.table) #
## Warning: package 'data.table' was built under R version 4.3.1
library(factoextra) # librería para graficar cluster
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.1
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:data.table':
##
## between, first, last
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
df = USArrests
summary(df)
## Murder Assault UrbanPop Rape
## Min. : 0.800 Min. : 45.0 Min. :32.00 Min. : 7.30
## 1st Qu.: 4.075 1st Qu.:109.0 1st Qu.:54.50 1st Qu.:15.07
## Median : 7.250 Median :159.0 Median :66.00 Median :20.10
## Mean : 7.788 Mean :170.8 Mean :65.54 Mean :21.23
## 3rd Qu.:11.250 3rd Qu.:249.0 3rd Qu.:77.75 3rd Qu.:26.18
## Max. :17.400 Max. :337.0 Max. :91.00 Max. :46.00
df_escalado = scale(df)
set.seed(123)
grupos = 4
segmentos = kmeans(df_escalado,grupos)
segmentos
## K-means clustering with 4 clusters of sizes 8, 13, 16, 13
##
## Cluster means:
## Murder Assault UrbanPop Rape
## 1 1.4118898 0.8743346 -0.8145211 0.01927104
## 2 -0.9615407 -1.1066010 -0.9301069 -0.96676331
## 3 -0.4894375 -0.3826001 0.5758298 -0.26165379
## 4 0.6950701 1.0394414 0.7226370 1.27693964
##
## Clustering vector:
## Alabama Alaska Arizona Arkansas California
## 1 4 4 1 4
## Colorado Connecticut Delaware Florida Georgia
## 4 3 3 4 1
## Hawaii Idaho Illinois Indiana Iowa
## 3 2 4 3 2
## Kansas Kentucky Louisiana Maine Maryland
## 3 2 1 2 4
## Massachusetts Michigan Minnesota Mississippi Missouri
## 3 4 2 1 4
## Montana Nebraska Nevada New Hampshire New Jersey
## 2 2 4 2 3
## New Mexico New York North Carolina North Dakota Ohio
## 4 4 1 2 3
## Oklahoma Oregon Pennsylvania Rhode Island South Carolina
## 3 3 3 3 1
## South Dakota Tennessee Texas Utah Vermont
## 2 1 4 3 2
## Virginia Washington West Virginia Wisconsin Wyoming
## 3 3 2 2 3
##
## Within cluster sum of squares by cluster:
## [1] 8.316061 11.952463 16.212213 19.922437
## (between_SS / total_SS = 71.2 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
asignacion = cbind(df, cluster = segmentos$cluster)
fviz_cluster(segmentos, data = df_escalado)
# La cantidad optima de grupos corresponde al punto más alto de la siguiente gráfica
set.seed(123)
optimizacion = clusGap(df_escalado, FUN = kmeans, nstart = 1, K.max = 10)
plot(optimizacion, xlab="Número de cluster k")
# Grouping by 'assignation$cluster' and calculating mean of all numeric variables
analisis <- asignacion %>%
group_by(asignacion$cluster) %>%
summarise(across(where(is.numeric), mean, na.rm = TRUE))
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `across(where(is.numeric), mean, na.rm = TRUE)`.
## ℹ In group 1: `asignacion$cluster = 1`.
## Caused by warning:
## ! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
## Supply arguments directly to `.fns` through an anonymous function instead.
##
## # Previously
## across(a:b, mean, na.rm = TRUE)
##
## # Now
## across(a:b, \(x) mean(x, na.rm = TRUE))
print(analisis)
## # A tibble: 4 × 6
## `asignacion$cluster` Murder Assault UrbanPop Rape cluster
## <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 13.9 244. 53.8 21.4 1
## 2 2 3.6 78.5 52.1 12.2 2
## 3 3 5.66 139. 73.9 18.8 3
## 4 4 10.8 257. 76 33.2 4
# Separación por cluster
# Encontrar índices de las filas con el valor deseado en columna_a
cluster1 <- rownames(df)[which(asignacion$cluster == 1)]
cluster2 <- rownames(df)[which(asignacion$cluster == 2)]
cluster3 <- rownames(df)[which(asignacion$cluster == 3)]
cluster4 <- rownames(df)[which(asignacion$cluster == 4)]
# Visualizar el mapa segregado por la inseguridad
map(database = "state")
map(database = "state", cluster1, col= "red", fill = T, add = TRUE)
map(database = "state", cluster2, col= "green", fill = T, add = TRUE)
map(database = "state", cluster3, col= "yellow", fill = T, add = TRUE)
map(database = "state", cluster4, col= "red", fill = T, add = TRUE)
A través de un exhaustivo análisis de datos, hemos identificado patrones clave que resaltan las diferencias en seguridad entre varios estados de EE.UU., utilizando variables de asesinatos, arrestos y datos demográficos. Nuestros hallazgos revelan insights significativos sobre la distribución geográfica de la seguridad y cómo factores históricos y sociales pueden influir en ella.
Los estados clasificados en rojo representan las áreas con mayor peligrosidad, según nuestro análisis. Esta determinación se basa en:
Una proporción elevada de asesinatos y arrestos en comparación con otros estados. Una proporción significativa cuando se considera el número de habitantes, destacando una preocupante tasa de criminalidad per cápita. Estos estados, predominantemente ubicados en el sur del país, reflejan una tendencia geográfica que merece atención y análisis más profundos.
Cluster 3 (Amarillo): Si bien muestra mejores indicadores en comparación con los estados en rojo, su nivel de arrestos y asesinatos, en proporción, no alcanza los bajos índices observados en el cluster 2 (Verde), el cual representa a los estados con mejor situación de seguridad.
Distribución Geográfica: Un patrón notable es que los estados del sur tienden a agruparse en categorías de mayor peligrosidad, mientras que los del norte presentan mejores indicadores de seguridad. Este patrón sugiere la influencia de factores regionales específicos en las tasas de criminalidad.
Al examinar el contexto de 1973, encontramos conexiones potenciales entre eventos históricos o sociales y las tendencias de seguridad actuales. Este análisis contextual proporciona una capa adicional de comprensión sobre cómo los eventos pasados pueden seguir influyendo en la seguridad de diferentes estados.
Este análisis nos permite concluir que la seguridad en los estados de EE.UU. es un fenómeno complejo, influenciado por una combinación de factores demográficos, geográficos, y posiblemente históricos. Las diferencias marcadas entre los estados en términos de asesinatos, arrestos, y contextos sociales subrayan la importancia de políticas de seguridad pública que consideren las particularidades regionales.
Nuestro estudio destaca la necesidad de abordajes personalizados para combatir la criminalidad, teniendo en cuenta no solo los datos actuales sino también el legado histórico y social que cada estado porta. La seguridad es un tejido compuesto por múltiples hilos, y solo a través de un análisis detallado y considerado podemos comenzar a desentrañar las soluciones más efectivas.