La muestra es determinado a criterio del investigador, en este caso on esta base de datos disponemos de 850 filas disponibles de la cuales determinamos nuestra muestra y lo dividimos en 2 grupos respectivamente.
#MUESTRA
set.seed(1234)
muestra=sample(510,340)
#grupo1
grupo1=clientes[-muestra,]
#grupo2
grupo2=clientes[muestra,]
dim(grupo1)
## [1] 510 9
dim(grupo2)
## [1] 340 9
Después de haber definido nuestros grupos de datos, determinamos y analizamos nuestra columna objetivo que deseamos determinar
grupo1<-grupo1$Ratio.ingreso.deuda
grupo2<-grupo2$Ratio.ingreso.deuda
sd(grupo2)
## [1] 6.477698
summary(grupo1)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.40 5.40 9.00 10.48 13.88 41.30
summary(grupo2)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.100 4.800 8.200 9.714 13.800 32.500
Luego de haber hallado los valores desarrollamos lo siguiente.
set.seed(1234)
grupo_1 <- cbind(rnorm(n = 340, mean = 10.443, sd = 6.716126),
rnorm(n = 340, mean = 10.443, sd = 6.716126))
grupo_2 <- cbind(rnorm(n = 510, mean = 9.764, sd = 6.713698),
rnorm(n = 510, mean = 9.764, sd = 6.713698))
clientes <- rbind(grupo_1, grupo_2)
colnames(clientes) <- c("x", "y")
head(clientes)
## x y
## [1,] 2.336194 10.08018
## [2,] 12.306250 12.66027
## [3,] 17.726244 16.85908
## [4,] -5.311001 18.12598
## [5,] 13.325055 11.11812
## [6,] 13.841735 18.26443
La función clara() del paquete cluster permite aplicar el algoritmo CLARA. Entre sus argumentos destaca: una matriz numérica x donde cada fila es una observación, el número de clusters k, la medida de distancia empleada metric (euclídea o manhattan), si los datos se tienen que estandarizar stand, el número de partes samples en las que se divide el set de datos (recomendable 50) y si se utiliza el algoritmo PAM pamLike.
library(cluster)
library(factoextra)
## Loading required package: ggplot2
## Welcome! Related Books: `Practical Guide To Cluster Analysis in R` at https://goo.gl/13EFCZ
clara_clusters <- clara(x = clientes, k = 2, metric = "manhattan", stand = TRUE,
samples = 50, pamLike = TRUE)
clara_clusters
## Call: clara(x = clientes, k = 2, metric = "manhattan", stand = TRUE, samples = 50, pamLike = TRUE)
## Medoids:
## x y
## [1,] 6.364651 8.842981
## [2,] 15.149215 10.329626
## Objective function: 1.60106
## Clustering vector: int [1:850] 1 2 2 1 2 2 1 1 1 1 1 1 1 1 2 1 1 1 ...
## Cluster sizes: 469 381
## Best sample:
## [1] 38 50 54 80 98 189 204 217 244 258 267 278 292 314 328 329 338 346 364
## [20] 428 443 461 479 486 492 516 557 568 573 577 596 602 634 646 668 671 730 732
## [39] 777 787 792 797 805 846
##
## Available components:
## [1] "sample" "medoids" "i.med" "clustering" "objective"
## [6] "clusinfo" "diss" "call" "silinfo" "data"
fviz_cluster(object = clara_clusters, ellipse.type = "t", geom = "point",
pointsize = 2.5) +
theme_bw() +
labs(title = "Resultados clustering CLARA") +
theme(legend.position = "none")
