file.choose()
## [1] "C:\\Users\\Migue\\OneDrive\\Documentos\\R\\Primer bloque\\USArrests\\USArrests.Rmd"
bd1<- read.csv("C:\\Users\\Migue\\OneDrive\\Documentos\\R\\Primer bloque\\USArrests\\USArrests.csv")
summary(bd1)
## X Murder Assault UrbanPop
## Length:50 Min. : 0.800 Min. : 45.0 Min. :32.00
## Class :character 1st Qu.: 4.075 1st Qu.:109.0 1st Qu.:54.50
## Mode :character Median : 7.250 Median :159.0 Median :66.00
## Mean : 7.788 Mean :170.8 Mean :65.54
## 3rd Qu.:11.250 3rd Qu.:249.0 3rd Qu.:77.75
## Max. :17.400 Max. :337.0 Max. :91.00
## Rape
## Min. : 7.30
## 1st Qu.:15.07
## Median :20.10
## Mean :21.23
## 3rd Qu.:26.18
## Max. :46.00
bd2 <- bd1
rownames(bd2)<- bd2$X
summary(bd2)
## X Murder Assault UrbanPop
## Length:50 Min. : 0.800 Min. : 45.0 Min. :32.00
## Class :character 1st Qu.: 4.075 1st Qu.:109.0 1st Qu.:54.50
## Mode :character Median : 7.250 Median :159.0 Median :66.00
## Mean : 7.788 Mean :170.8 Mean :65.54
## 3rd Qu.:11.250 3rd Qu.:249.0 3rd Qu.:77.75
## Max. :17.400 Max. :337.0 Max. :91.00
## Rape
## Min. : 7.30
## 1st Qu.:15.07
## Median :20.10
## Mean :21.23
## 3rd Qu.:26.18
## Max. :46.00
bd3 <- bd2
bd3 <- subset (bd3, select = -c (X))
summary(bd3)
## 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
plot(bd3$Murder,bd3$Assault)
### Límite Inferior = Q1 - 1.5*IQR
### Límite Superior = Q3 + 1.5*IQR
### Q1: Cuartil 1, Q3: Cuartil 3, IQR: Rango Intercuartil = Q3 - Q1
iqr_murder <- IQR(bd3$Murder)
limite_superior_murder <- 11.250 + 1.5*iqr_murder
limite_superior_murder
## [1] 22.0125
bd4 <- bd3
bd4 <- bd4[bd4$Murder < 22.0125, ]
summary(bd4)
## 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
plot(bd4$Murder,bd4$Assault)
bd5 <- bd4
bd4 <- as.data.frame(scale(bd4))
plot(bd4$Murder,bd4$Assault)
segmentos <- kmeans(bd4,4)
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(bd3, cluster = segmentos$cluster)
head(asignacion,10)
## Murder Assault UrbanPop Rape cluster
## Alabama 13.2 236 58 21.2 1
## Alaska 10.0 263 48 44.5 4
## Arizona 8.1 294 80 31.0 4
## Arkansas 8.8 190 50 19.5 1
## California 9.0 276 91 40.6 4
## Colorado 7.9 204 78 38.7 4
## Connecticut 3.3 110 77 11.1 3
## Delaware 5.9 238 72 15.8 3
## Florida 15.4 335 80 31.9 4
## Georgia 17.4 211 60 25.8 1
write.csv(asignacion,"clientes_segmentados.csv")
#install.packages("factoextra")
library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
fviz_cluster(segmentos, data = bd4,
palette=c("red", "blue", "black", "darkgreen"),
ellipse.type = "euclid",
star.plot = T,
repel = T,
ggtheme = theme())
library(cluster)
library(data.table)
set.seed(123)
optimizacion <- clusGap(bd4, FUN = kmeans, nstart = 25, K.max = 10, B = 50)
plot(optimizacion, xlab = "Numero de clusters k")
boxplot(bd5)
Reducir el porcentaje de asesinatos y casos hostiles en California.
Segmentación.
Posicionar en estas áreas más cuerpos policiacos o escuadrones de protección para reducir el porcentaje de incidentes.
Identificar las áreas o sectores donde ocurren más crímenes.
Escuadrones de policía en áreas más inseguras de California para reducir el porcentaje de asesinatos y eventos violentos, dándole a los ciudadanos una ciudad más segura y mayor sentido de seguridad.
# Se determinó que hay datos anormales en Rape (fuera del límite superior), pero
# No se eliminarán al ser muy cercanos a los demás datos.
En las gráficas se muestra la correlación entre los asaltos contra asesinatos. En este destaca que hay más asaltos sin asesinato que asaltos con asesinatos. De acuerdo a los segmentos y vectores (clusters), se tienen más incidentes de asesinato, asalto, urbanpop y abuso sexual en Georgia, mientras que en Connecticut es el estado en donde existen menos eventos de violencia.
En general, vemos que en Estados Unidos existe una mayor cantidad de casos de asaltos y aquellos con menor frecuencia en el registro son los asesinatos.