introduccion

Por análisis cluster(segmentacion) se entiende un conjunto de técnicas dentro de los métodos denominados interdependientes cuyo propósito es formar grupos a partir de un conjunto de elementos. Tales grupos deben estar compuestos por elementos lo más parecidos que sea posible y a la vez lo más diferentes que sea posible entre grupos. La agrupación se produce teniendo en cuenta las características o variables de las que se dispone; con arreglo a ellas se realiza la clasificación y, por tanto, determinan el resultado final de la misma. Normalmente se entiende que estos grupos deben ser mutuamente exclusivos.

Objetivos

Variables

clientes en canales estados financieros
en_vm_canal1 impo_cv
en_vm_canal2 expo_vt
en_vm_canal3 cxp
en_vm_canal4 cxc
en_tx_canal4 totalinventory
en_tx_canal5 pagos_pj
en_tx_canal6 pagos_pn
en_tx_canal7 tiene_ventas_fisicas
en_tx_canal10 tiene_ventas_electronicas
en_tx_otros recaudos_pj
sal_vm_canal5 recaudos_pn
sal_vm_canal2 rotacion_inventarios
sal_vm_canal8 rotacion_cxc
sal_vm_otros rotacion_cxp
sal_tx_canal5 ciclo_negocio
sal_tx_canal2 ciclo_financiero
sal_tx_canal8
muchas otras mas

Metodologia

Para la realizacion de este problema, se parte tratando a los datos con el fin de desarrrollar el método de cluster k-means para realizar una segmentación que permita agrupar por medio de características similares las empresas de las que se tiene información. Dentro del procedimiento que se llevam a cabo es importante resaltar que la matriz de distancias se obtiene a partir de la función daisy (Dissimilarity Matrix Calculation) con el metodo gower.

Este método consiste en calcular todas las desemejanzas por pares (distancias) entre las observaciones en el conjunto de datos. Las variables originales pueden ser de tipos mixtos. En ese caso, o siempre que se establezca metric = “gower”, se utiliza una generalización de la fórmula de Gower, ver “Detalles” a continuación.

La versión original de Daisy se describe en detalle en el capítulo 1 de Kaufman y Rousseeuw (1990). Comparada con dist cuya entrada debe ser variables numéricas, la característica principal de daisy es su capacidad para manejar también otros tipos de variables (por ejemplo, nominal, ordinal, (a) binario simétrico) incluso cuando se producen diferentes tipos en el mismo conjunto de datos.

La “distancia de Gower” se elige mediante “gower” métrico o automáticamente si algunas columnas de x no son numéricas. También conocido como el coeficiente de Gower (1971), expresado como una diferencia, esto implica que se aplicará una estandarización particular a cada variable, y la “distancia” entre dos unidades es la suma de todas las distancias específicas de la variable

Para mayor informacion sobre este metodo de cluster indagar en la documentaion de R https://www.rdocumentation.org/packages/cluster/versions/2.0.7-1/topics/daisy

creacion del cluster

set.seed(1680)
# calculo de las distencias por medio del petodo Gower de la funcion daisy

gower_dist <- daisy(Desca,metric = "gower",type = list(logratio = 3))

#summary(gower_dist)

POR k - means

# la semilla inicial es para que nos de los mismos resultados
# Recurde que los clusters son sensibles a los valores iniciales
dis_datos<-as.matrix(gower_dist)
SSE = rep(0, 30)
for (k in 1:30) {
  set.seed(42)
  grupos = kmeans(dis_datos, k)
  SSE[k] = grupos$tot.withinss
}

Interpretacion del grafico del codo: Este método utiliza los valores de la inercia obtenidos tras aplicar el K-means a diferente número de Clusters (desde 1 a N Clusters), siendo la inercia la suma de las distancias al cuadrado de cada objeto del Cluster a su centroide, Una vez obtenidos los valores de la inercia tras aplicar el K-means de 1 a N Clusters, representamos en una gráfica lineal la inercia respecto del número de Clusters. En esta gráfica se debería de apreciar un cambio brusco en la evolución de la inercia, teniendo la línea representada una forma similar a la de un brazo y su codo. El punto en el que se observa ese cambio brusco en la inercia nos dirá el número óptimo de Clusters a seleccionar .

Numero de clusters

Como se peude observar el codo que se obtiene, se ven como las pendientes que mas se acercan a lo que buscamos oscilan entre los números de cluster 4 y 6, por lo que podemos pensar que se nos suguiere tomar un número de este intevralo para agrupar. al observar las diferentes agrupaciones dentro de los graficos que se generan oscilando los grupos entre 4 y 6, se observa que una mayor homogeneidad al tomar 4 grupos.

Gráfico de cluster

Como se puede observar, al seguir la recomendación que se da al interpretar el gráfico de codo, se puede observar como se marca la identidad de cada punto con respecto al grupo que se asigna.
donde se verifica que la homogeneidad que presenta al pertenecer a un grupo determinado, aunque si bien en algunos casos como el grupo 4 es difícil ver una homogeneidad más evidente, esto se puede deber a que el gráfico trabaja en un plano de 2 dimensiones, por lo que podemos considerar aceptable esta segmentacion, aunque se evidencia en otro tipo de gráfico para ver un comportamiento mas claro del grupo 4 en su agrupamiento.

Resumen de los datos
Grafico 3D

Aquí se evidencia de una manera un poco mas clara como se comporta la segmentacion en algunos casos, como es el del grupo 4 y se entiende entonces el motivo de se agrupación, es entonces claro que el considerar una segmentación de 4 grupos se puede brindar un análisis cercano a los datos sobre los que se esta trabajando. este gráfico nos muestra un comportamiento mas real y abarca más que el de dos dimensiones.

Las empresas que se comportan muy similarmente
##          ID en_vm_canal1 en_vm_canal2 en_vm_canal3 en_vm_canal4
## 1242 id1242     22511546    176515307            0            0
## 1197 id1197     21071210      6653585       101000            0
##      en_vm_canal5 en_vm_canal6 en_vm_canal7 en_vm_canal8 en_vm_canal9
## 1242            0            0            0            0            0
## 1197            0            0            0            0            0
##      en_vm_canal10 en_vm_otros en_tx_canal1 en_tx_canal2 en_tx_canal3
## 1242             0           0          1.0        4.500     0.000000
## 1197             0           0          1.2        1.125     1.333333
##      en_tx_canal4 en_tx_canal5 en_tx_canal6 en_tx_canal7 en_tx_canal8
## 1242            0            0            0            0            0
## 1197            0            0            0            0            0
##      en_tx_canal9 en_tx_canal10 en_tx_otros sal_vm_canal5 sal_vm_canal2
## 1242            0             0           0             0             0
## 1197            0             0           0             0             0
##      sal_vm_canal8 sal_vm_otros sal_tx_canal5 sal_tx_canal2 sal_tx_canal8
## 1242             0            0             0             0             0
## 1197             0            0             0             0             0
##      sal_tx_otros impo_cv expo_vt cxp cxc totalinventory pagos_pj pagos_pn
## 1242            0       1       1   1   1              1        1        0
## 1197            0       1       1   1   1              1        1        0
##      tiene_ventas_fisicas tiene_ventas_electronicas recaudos_pj
## 1242                    0                         0           0
## 1197                    0                         0           0
##      recaudos_pn rotacion_inventarios rotacion_cxc rotacion_cxp
## 1242           0                    1            1            1
## 1197           0                    1            1            1
##      ciclo_negocio ciclo_financiero GrupoKM
## 1242             1                2       1
## 1197             1                2       1

Aquí se presenta un análisis que nos indica las similutes mas claras que se presenstan entre 2 empresas representadas por su id en este caso son las empresas que corresponden a los id : 1242 y 1197, empresas que hacen parte ambas del grupo 2. lo que nos da un indicio de que la segmentacion realizo un buen trabajo.

Las empresas mas alejadas, que no tienen similutudes
##          ID en_vm_canal1 en_vm_canal2 en_vm_canal3 en_vm_canal4
## 1416 id1416  12604160664  3.62965e+11   1375837616  4.05096e+11
## 63     id63            0  0.00000e+00            0  0.00000e+00
##      en_vm_canal5 en_vm_canal6 en_vm_canal7 en_vm_canal8 en_vm_canal9
## 1416  8.06965e+11    209422639  7.70542e+11     52865126    105887742
## 63    0.00000e+00            0  0.00000e+00            0            0
##      en_vm_canal10 en_vm_otros en_tx_canal1 en_tx_canal2 en_tx_canal3
## 1416             0  1062973068     2820.167     2852.833     1082.333
## 63               0           0        0.000        0.000        0.000
##      en_tx_canal4 en_tx_canal5 en_tx_canal6 en_tx_canal7 en_tx_canal8
## 1416      3510700     91.66667     77.83333          333     12.33333
## 63              0      0.00000      0.00000            0      0.00000
##      en_tx_canal9 en_tx_canal10 en_tx_otros sal_vm_canal5 sal_vm_canal2
## 1416     77.33333             0    3752.417   8.06965e+11   8.56183e+11
## 63        0.00000             0       0.000   0.00000e+00   0.00000e+00
##      sal_vm_canal8 sal_vm_otros sal_tx_canal5 sal_tx_canal2 sal_tx_canal8
## 1416             0            0      91.66667      32301.83             0
## 63               0            0       0.00000          0.00             0
##      sal_tx_otros impo_cv expo_vt cxp cxc totalinventory pagos_pj pagos_pn
## 1416            0       2       2   6   6              6    0.277    0.723
## 63              0       1       1   1   1              2    1.000    0.000
##      tiene_ventas_fisicas tiene_ventas_electronicas recaudos_pj
## 1416                    1                         1           0
## 63                      0                         0           0
##      recaudos_pn rotacion_inventarios rotacion_cxc rotacion_cxp
## 1416           1                    2            1            4
## 63             0                    6            3            2
##      ciclo_negocio ciclo_financiero GrupoKM
## 1416             2                1       3
## 63               6                6       1

En contrastea a lo anterior aqui podemos observar los 2 puntos que menos similitudes presesntan en nuestros datos, los cuales corresponden a el id 1416 y id 63 que pertenecen al grupo 1 y 2 respectivamente.

## 
##   1   2   3   4 
## 798 816 179 440

Entonces ahora la conformación de nuestros grupos se da con unos totales de: 1:798 2:816 3:179 4:440

Graficos descriptivos de los grupos:

Las empresas tienen una proporción casi equivalente con respecto a un ámbito dentro de las variables de estado financiero por ejemplo en ventas físicas no hay mucha diferencia entre las que tienen y no tienen venta fisica hay un numero sercano de las empresas que realizan y no realizan este tipo de venta, la mayoría de las empresas tienen ventas electronicas , son muy pocas las empresas que aun no se han adaptado al mercado y a las nuevas tecnologias.

VM CANALES

Las variables denominadas por vm-canales presentan un patron y esque estas en la clasificacion de los clusters son las que presentan en el grupo 3 la mayor varianza como se puede apreciar facilmente en los boxplots , en los demas grupos o clusters se ven que las variables vm-canales presentan muy poca varianza en los grupos 1,2 y 4 respectivamente, se debe mirar porque en estos anteriores cluster mencionados los datos permanecen en la media y en el grupo 3 se podria explicar por el echo de que es el grupo con mas pocos datos 179 aproximadamente , y estos datos son los que mas estan alejados de la nove de puntos cuando se grafico en 2 dimensiones y 3 dimensiones observamos que las obersvaciones del grupo 3 , eran pocas y estaban muy dispersas las unas de las otras a comparacion del comportamiento de los datos entre si de los demas grupos , a continuacion podremos ver como se replica este comportamiento en el resto de las variables para los grupos.

TX CANALES

saldos

Método PAM Kmedoids

Este método solo sugiere 2 clusters ,observar en I son las columnas con datos continuos N son las columnas con datos categoricos calculo del cluster por medio de medoids (PAM) silhouette para mirar cuantos clusters usar en PAM.

pam {cluster} Particionado (agrupamiento) de los datos en k clusters “alrededor de medoids”, una versión más robusta de K-means. El algoritmo básico de pam se describe en detalle en el capítulo 2 de Kaufman y Rousseeuw (1990). Comparado con el enfoque k-means en kmeans, la función pam tiene las siguientes características: (a) también acepta una matriz de diferencias; (b) es más robusto porque minimiza una suma de desemejanzas en lugar de una suma de distancias euclidianas al cuadrado; (c) proporciona una nueva presentación gráfica, la trama de la silueta (ver plot.partition)

Sugiere dos clusters ya que es el punto mas alto ,se realiza la creacion de dos clusters por medio de la funcion pam la cual estima los clusters por el metodo medoids ,el cual es util cuando se tiene obs atipicas.

Visualización del comportamiento de los clusters

Dendograma usando el metodo “Ward.D”
## The "ward" method has been renamed to "ward.D"; note new "ward.D2"

En el dendograma se puede observar que primero se crean 2 grupos principales , luego seguirian 3 grupos y por ultimo 5 grupos, algo parecido o un numero cercano a los 4 clusters por el primer metodo de k medias estandar

Para entender como se comportan los datos en 2D

Por pam de k medias se puede observar que la variabilidad explicada por este metodo es de 24.36 mayor que el metodo anterior.

Unir columna cluster a la base original
##    ID en_vm_canal1 en_vm_canal2 en_vm_canal3 en_vm_canal4 en_vm_canal5
## 1 id1            0            0            0            0            0
## 2 id2            0            0            0            0            0
##   en_vm_canal6 en_vm_canal7 en_vm_canal8 en_vm_canal9 en_vm_canal10
## 1            0            0            0            0             0
## 2            0            0            0            0             0
##   en_vm_otros en_tx_canal1 en_tx_canal2 en_tx_canal3 en_tx_canal4
## 1           0            0            0            0            0
## 2           0            0            0            0            0
##   en_tx_canal5 en_tx_canal6 en_tx_canal7 en_tx_canal8 en_tx_canal9
## 1            0            0            0            0            0
## 2            0            0            0            0            0
##   en_tx_canal10 en_tx_otros sal_vm_canal5 sal_vm_canal2 sal_vm_canal8
## 1             0           0             0             0             0
## 2             0           0             0             0             0
##   sal_vm_otros sal_tx_canal5 sal_tx_canal2 sal_tx_canal8 sal_tx_otros
## 1            0             0             0             0            0
## 2            0             0             0             0            0
##   impo_cv expo_vt cxp cxc totalinventory pagos_pj pagos_pn
## 1       1       1   6   6              6        0        0
## 2       1       1   2   6              2        1        0
##   tiene_ventas_fisicas tiene_ventas_electronicas recaudos_pj recaudos_pn
## 1                    0                         0           0           0
## 2                    0                         0           0           0
##   rotacion_inventarios rotacion_cxc rotacion_cxp ciclo_negocio
## 1                    6            2            2             5
## 2                    1            3            1             3
##   ciclo_financiero Grupo
## 1                6     1
## 2                4     2
Los centros de los clusters son:

Para el cluster uno el cliente ID2005 cluster 1 Para el cluster dos igual para el cliente ID660 cluster 2

Enseña las empresas que se comportan muy similarmente
##          ID en_vm_canal1 en_vm_canal2 en_vm_canal3 en_vm_canal4
## 1242 id1242     22511546    176515307            0            0
## 1197 id1197     21071210      6653585       101000            0
##      en_vm_canal5 en_vm_canal6 en_vm_canal7 en_vm_canal8 en_vm_canal9
## 1242            0            0            0            0            0
## 1197            0            0            0            0            0
##      en_vm_canal10 en_vm_otros en_tx_canal1 en_tx_canal2 en_tx_canal3
## 1242             0           0          1.0        4.500     0.000000
## 1197             0           0          1.2        1.125     1.333333
##      en_tx_canal4 en_tx_canal5 en_tx_canal6 en_tx_canal7 en_tx_canal8
## 1242            0            0            0            0            0
## 1197            0            0            0            0            0
##      en_tx_canal9 en_tx_canal10 en_tx_otros sal_vm_canal5 sal_vm_canal2
## 1242            0             0           0             0             0
## 1197            0             0           0             0             0
##      sal_vm_canal8 sal_vm_otros sal_tx_canal5 sal_tx_canal2 sal_tx_canal8
## 1242             0            0             0             0             0
## 1197             0            0             0             0             0
##      sal_tx_otros impo_cv expo_vt cxp cxc totalinventory pagos_pj pagos_pn
## 1242            0       1       1   1   1              1        1        0
## 1197            0       1       1   1   1              1        1        0
##      tiene_ventas_fisicas tiene_ventas_electronicas recaudos_pj
## 1242                    0                         0           0
## 1197                    0                         0           0
##      recaudos_pn rotacion_inventarios rotacion_cxc rotacion_cxp
## 1242           0                    1            1            1
## 1197           0                    1            1            1
##      ciclo_negocio ciclo_financiero Grupo
## 1242             1                2     2
## 1197             1                2     2
Enseña las empresas mas alejados, que no tiene similutud
##          ID en_vm_canal1 en_vm_canal2 en_vm_canal3 en_vm_canal4
## 1416 id1416  12604160664  3.62965e+11   1375837616  4.05096e+11
## 63     id63            0  0.00000e+00            0  0.00000e+00
##      en_vm_canal5 en_vm_canal6 en_vm_canal7 en_vm_canal8 en_vm_canal9
## 1416  8.06965e+11    209422639  7.70542e+11     52865126    105887742
## 63    0.00000e+00            0  0.00000e+00            0            0
##      en_vm_canal10 en_vm_otros en_tx_canal1 en_tx_canal2 en_tx_canal3
## 1416             0  1062973068     2820.167     2852.833     1082.333
## 63               0           0        0.000        0.000        0.000
##      en_tx_canal4 en_tx_canal5 en_tx_canal6 en_tx_canal7 en_tx_canal8
## 1416      3510700     91.66667     77.83333          333     12.33333
## 63              0      0.00000      0.00000            0      0.00000
##      en_tx_canal9 en_tx_canal10 en_tx_otros sal_vm_canal5 sal_vm_canal2
## 1416     77.33333             0    3752.417   8.06965e+11   8.56183e+11
## 63        0.00000             0       0.000   0.00000e+00   0.00000e+00
##      sal_vm_canal8 sal_vm_otros sal_tx_canal5 sal_tx_canal2 sal_tx_canal8
## 1416             0            0      91.66667      32301.83             0
## 63               0            0       0.00000          0.00             0
##      sal_tx_otros impo_cv expo_vt cxp cxc totalinventory pagos_pj pagos_pn
## 1416            0       2       2   6   6              6    0.277    0.723
## 63              0       1       1   1   1              2    1.000    0.000
##      tiene_ventas_fisicas tiene_ventas_electronicas recaudos_pj
## 1416                    1                         1           0
## 63                      0                         0           0
##      recaudos_pn rotacion_inventarios rotacion_cxc rotacion_cxp
## 1416           1                    2            1            4
## 63             0                    6            3            2
##      ciclo_negocio ciclo_financiero Grupo
## 1416             2                1     1
## 63               6                6     2
grafico en 3D

Como ya vimos en clase , decir que un metodo es mejor que otro es muy subjetivo debido a que no se puede determinar , cada metodo de cluster arroja su grupo y el usuario es el que por medio del contexto da su interpretacion y le da el valor agregado o el valor que el quiere al metodo que uso.

referencias :

Gower, J. C. (1971) A general coefficient of similarity and some of its properties, Biometrics 27, 857–874.

Kaufman, L. and Rousseeuw, P.J. (1990) Finding Groups in Data: An Introduction to Cluster Analysis. Wiley, New York.

Struyf, A., Hubert, M. and Rousseeuw, P.J. (1997) Integrating Robust Clustering Techniques in S-PLUS, Computational Statistics and Data Analysis 26, 17–37

Reynolds, A., Richards, G., de la Iglesia, B. and Rayward-Smith, V. (1992) Clustering rules: A comparison of partitioning and hierarchical clustering algorithms; Journal of Mathematical Modelling and Algorithms 5, 475–504 (http://dx.doi.org/10.1007/s10852-005-9022-1).