Kamila

Resumen

En este trabajo hablaremos un poco sobre el paquete KAMILA, este paquete nos permiete combinar equitativamente variables continuas (cuantitativas) y categóricas (cualitativas) para el análisis de conglomerados. Las técnicas existentes requieren supuestos paramétricos sólidos o parámetros de ajuste difíciles de especificar. Describimos el paquete kamila, que incluye un enfoque de k-medias ponderadas para agrupar datos de tipo mixto, un método para estimar ponderaciones para datos de tipo mixto (ponderación ModhaSpangler) y un método semiparamétrico adicional recientemente propuesto en la literatura (KAMILA). Incluimos una discusión de las estrategias para estimar la cantidad de conglomerados en los datos y describimos la implementación de uno de estos métodos en el paquete R actual. Se presentan los antecedentes y el uso de estos métodos de agrupación. Luego mostramos cómo el algoritmo KAMILA se puede adaptar a un marco de reducción de mapa.

Lo básico de Kamila

  1. Primero podemos usar la función genMixedData para crear una función simple de generación de datos. En esta función ingresamos como atributos el tamaño de la base de datos, el numero de variables numéricas y categoricas y podemos además especificar cuantas de estas variables se encuentran en overlap.
Una vez creada nuestra base podemos realizar un gráfico (diagrama de dispersión) para ver como se encuentran distribuidos los datos.

La imagen anterior nos muestra las variables categoricas (1 y 2) y las variables numéricas (v1 y v2) las cuales podemos observar como se encuentran los datos distribuidos de una manera balanceada. En este caso realizamos solo dos grupos (coloreados de rojo y negro). A continuación observemos la siguiente imagen de una base de datos no balanceados.

  1. Ahora, comparamos el rendimiento de Weighted k-means con dos ponderaciones (una primera ponderación de 0.5 para ambos tipos de variables y luego una ponderación de 0.8 para las variables caterórigas y 0.2 para las variables continuas), usando Modha-Spangler y KAMILA clustering.
Para ello podemos realizar el siguiente gráfico:

En el cual los cuadros de color blanco representan la base balanceada y los de color gris la base de datos no balanceados. Ademas, W representa el peso que usammos (W5/5 es un peso de 0.5 y W2/8 un peso de 0.2 para continuas y 0.8 categóricas), MS es Modha Spang y KAM es Kamila Clustering.

Como se puede ver usar ponderaciones iguals para el método de Weighted k-means tiene un índice mayor en los datos balanceados y un resultado opuesto cuando usamos la otra ponderacion.

Luego, cuando usamos datos balanceados ambos algoritmos parecen tener un índice igual. Sin embargo, cuando los datos no son balanceados (cuando las variables categóricas son mas informativas) el algoritmo de Kamila Clustering parece ser mejor.

Aplicación a la Medicina

Usaremos una base de datos con 15 variables y 475 pacientes con cáncer de próstata. Veamos como se encuentra nuestra base de datos:

Edad Peso Calificaciones de desempeño Historia de la enfermedad cardiovascular presión sanguínea sistólica Presión sanguínea Diastólica Código de electrocardiograma Hemoglobina sérica tamaño del tumor primario Indice de estadio tumoral y grado histológico Fosfatasa ácida prostática sérica metástasis óseas grado observación Estado de Supervivencia
75 76 0 0 15 9 4 138 2 8 3 0 3 1 0
69 102 0 1 14 8 4 134 3 9 3 0 3 3 3
75 94 1 1 14 7 1 176 4 8 9 0 3 4 3
67 99 0 0 17 10 0 134 34 8 5 0 3 5 0
71 98 0 0 19 10 0 151 10 11 6 0 3 6 1
75 100 0 0 14 10 1 130 13 9 8 0 3 7 2

Lo primero que haremos es agrupar los datos y eliminaremos las variables de altura, peso, identificación y resultado. Luego, convertiremos las variables categóricas de enteros a factores. Teniendo ahora la siguiente base de datos:

presión sanguínea sistólica Presión sanguínea Diastólica Hemoglobina sérica tamaño del tumor primario Indice de estadio tumoral y grado histológico Fosfatasa ácida prostática sérica Calificaciones de desempeño Historia de la enfermedad cardiovascular Código de electrocardiograma metástasis óseas grado
15 9 138 2 8 1.098612 0 0 4 0 3
14 8 134 3 9 1.098612 0 1 4 0 3
14 7 176 4 8 2.197225 1 1 1 0 3
17 10 134 34 8 1.609438 0 0 0 0 3
19 10 151 10 11 1.791759 0 0 0 0 3
14 10 130 13 9 2.079442 0 0 1 0 3

Luego, podemos observar como se encuentran descritas nuestras variables continuas:

presión sanguínea sistólica Presión sanguínea Diastólica Hemoglobina sérica tamaño del tumor primario Indice de estadio tumoral y grado histológico Fosfatasa ácida prostática sérica
Min. : 8.00 Min. : 4.000 Min. : 59.0 Min. : 0.00 Min. : 5.0 Min. :0.000
1st Qu.:13.00 1st Qu.: 7.000 1st Qu.:122.5 1st Qu.: 5.00 1st Qu.: 9.0 1st Qu.:1.609
Median :14.00 Median : 8.000 Median :137.0 Median :10.00 Median :10.0 Median :1.946
Mean :14.38 Mean : 8.158 Mean :134.2 Mean :14.29 Mean :10.3 Mean :2.639
3rd Qu.:16.00 3rd Qu.: 9.000 3rd Qu.:147.0 3rd Qu.:21.00 3rd Qu.:11.0 3rd Qu.:3.384
Max. :30.00 Max. :18.000 Max. :182.0 Max. :69.00 Max. :15.0 Max. :9.210
y de manera similar nuestras variables categoricas:
Calificaciones de desempeño Historia de la enfermedad cardiovascular Código de electrocardiograma metástasis óseas grado
0:428 0:268 0:161 0:398 3:273
1: 32 1:207 1: 23 1: 77 4:202
2: 13 NA 2: 50 NA NA
3: 2 NA 3: 25 NA NA
NA NA 4:145 NA NA
NA NA 5: 70 NA NA
NA NA 6: 1 NA NA

Ahora, lo que haremos es normalizar los valores de las variables continuas y utilizando la distancia de Gower crearemos el cluster usando pamix. Primero veamos la siguiente imagen utilizando la distancia de Gower en la función de Modha Spangler: En este caso como podemos ver el mejor peso para la función objetivo de Modha Spangler es 0,82.

Ahora, procedemos hacer el cluster usando el Kamila. Veamos la siguiente tabla de resultados:

      modhaSpangler
kamila   1   2   3
     1 101  29   0
     2  19   9 174
     3  13 125   5

Comparando las particiones, vemos que el agrupamiento Modha-Spangler identifica una estructura sustancialmente similar en comparación con KAMILA. Sin embargo, observamos que KAMILA utiliza una estructura algorítmica más eficiente que no requiere una búsqueda de fuerza bruta para optimizar la contribución continua y categórica al agrupamiento resultante.

Parece que hay una fuerte relación entre la estructura del grupo identificada y la variable de resultado (supervivencia, que no se usó en la construcción de los grupos), que está respaldada por una prueba de bondad de ajuste de ji cuadrado:
Sobrevive Muere por cáncer de Próstata Otro tipo de muerte
Cluster 1 24 11 95
Cluster 2 46 90 66
Cluster 3 67 20 56

    Pearson's Chi-squared test

data:  kamilaSurvTab
X-squared = 104.74, df = 4, p-value < 2.2e-16

El grupo 2 está compuesto por una alta proporción de pacientes que murieron por cáncer de próstata (el 74% de todos los pacientes en todo el conjunto de datos que murieron por cáncer de próstata), mientras que el grupo 1 está compuesto principalmente por pacientes que fallecieron debido a razones distintas al cáncer de próstata (73%). El grupo 3 contiene principalmente individuos que sobrevivieron o murieron debido a razones no relacionadas con el cáncer de próstata (86%).

Estas cifras sugieren que el agrupamiento captura la mortalidad específica de la enfermedad. Esto se ve respaldado por los resultados que se muestran en la Figura siguiente, en los que vemos que el grupo 2 parece contener una preponderancia de pacientes con altos índices de estadio / grado tumoral, mientras que los grupos 1 y 3 parecen incluir predominantemente pacientes con fosfatasa ácida prostática sérica baja y bajos índices de estadio / grado tumoral. Observemos la siguiente tabla:

                           Cluster   1   2   3
Metastasis Etapa del tumor                    
No         Etapa 3                 130   0 142
           Etapa 4                   0 126   0
Yes        Etapa 3                   0   0   1
           Etapa 4                   0  76   0

Podemos ver que la etapa del tumor y la metástasis ósea muestra relaciones sugestivas con otras variables. Por ejemplo, cada individuo en el grupo 2 de KAMILA tenía un tumor en la etapa 4, mientras que todos los individuos en los grupos 1 y 3 tenían tumores en la etapa 3. Todos, excepto un individuo con diseminación metastásica del tumor de próstata al hueso, se asignaron al grupo 2.

Si ahora corremos el cluster de KAMILA utilizando el método de prediccion fuerte tenemos que el número de clusters optimos es 2 solo que en este caso los grupos que tieníamos antes, 1 y 3 se fucionan en uno solo, los resultados los podemos observar en la figura y tabla siguientes:

       kamila2
kamila3   1   2
      1 130   0
      2   0 202
      3 143   0

Aplicación en los Cajeros de un Banco

Ahora, usaremos la base de datos de los cajeros de un Banco con distintas sucursarles ubicadas en el área de Quito.

Anteriormente ya se analizó esta base a profundidad, en este caso nos vamos a centrar en la aplicación de KAMILA para crear grupos y ver cuales son los cajeros buenos y malos. Además, compararemos los resultados para ver que tan efectivo es usar KAMILA y no nuestro ranking anterior para clasificar los cajeros y la sucursales del Banco. Entonces una vez que realizamos el cluster podemos hacer un par de gráficos sobre el tiempo de servicio vs el monto, y sobre el tiempo de servicio vs el monto por nivel de Satisfacción y saber a que grupo corresponden. Estos gráficos los coloreamos por cada grupo:
kamila Freq
1 4169
2 8008
3 12122
Length Class Mode
finalMemb 24299 -none- numeric
numIter 10 -none- numeric
finalLogLik 1 -none- numeric
finalObj 1 -none- numeric
finalCenters 3 -none- numeric
finalProbs 3 -none- list
input 10 -none- list
verbose 0 -none- list
nClust 0 -none- list

    Pearson's Chi-squared test

data:  kamilaSurvTab
X-squared = 24328, df = 8, p-value < 2.2e-16

Del último gráfico tenemos que los cajeros calificados como malos y muy malos van en un solo grupo, los cajeros muy buenos y algunos cajeros buenos en otro grupo y los cajeros regualres y buenos se encuentran en otro grupo. Parece que tratar de diferenciar entre que cajeros son regulares y cuales buenos parece ser un trabajo muy dificil debido a la alta correlación que existe entre estos dos grupos.

Sin embargo, este cluster nos permitirá diferenciar que cajeros son malos y cuales deberán ser revisados para alguna pequeña mejora.

Haciendo un gráfico similar por sucursales tenemos: A simple vista de la figura anterior no podemos saber que sucursal es buena o mala.Hagamos un gráfico similar por cajero. Como podemos observar en las sucursales y los cajeros, al parecer la sucursal Riocentro Sur y la sucursal de Alborada necesitan ser revisadas y analizar más a fondo que sucede con los cajeros.