Analisis de Clusters Walter Sosa Escudero ([email protected]) Universidad de San Andres y CEDLAS/UNLP Walter Sosa Escudero Analisis de Clusters Ideas generales X matriz de N filas y p columnas. Cada fila es un ‘punto’ de p dimensiones. Filas: observacines, objetos, puntos. Cada columna se corresponde con una variable o atributo. Ejemplo: 40 alumnos, cuatro preguntas en un examen (cada alumno es un ‘punto’). Cluster: grupo de puntos Objetivo: dividir los puntos en clusters de modo que los puntos dentro de un cluster sean similares y a su vez distintos a los de cualquier otro cluster. Walter Sosa Escudero Analisis de Clusters Dissimilarity Central a la idea de clusters es la idea de dissimilarity. y, z ∈ <p . Como medir cuan disimiles son y y z, dado que tienen p coordendas cada uno? Para variables cuantitativas, un ejemplo comun es la distancia euclidea: 1/2 p X d(x, z) = (xj − yj )2 j=1 Es la agregacion de las disimilitudes para cada atributo. Distancia de Minkowski: 1/m p X d(x, z) = |xj − yj |m j=1 Walter Sosa Escudero Analisis de Clusters Variables binarias: Pp 2 j=1 (xj − yj ) = numero de coincidencias. En varias ocasiones es relevante ponderar los aciertos en forma distinta (ejemplo: personas que hablan griego). Ver Tabla 12.2 Johnson y Wichern para varias alternativas. Walter Sosa Escudero Analisis de Clusters Dissimilarity Matrix: D. matriz N × N donde Dij = D(xi , xj ) Este es el ‘input’ del analisis de clusters. Idealmente las Dij son verdaderas distancias, de modo que D es simetrica y con diagonal principal nula, no es siempre el caso. El analisis es muy sensible a la eleccion de D. Walter Sosa Escudero Analisis de Clusters Cluster analysis Cada punto, observacion, esta indizada por i ∈ {1, . . . , N }. Supongamos que sabemos de antemano que hay K clusters. Visitadores medicos? Clases sociales? Pobres? Cada cluster esta indizado por k ∈ {1, . . . , K}. Un mecanismo de clusters asigna cada punto a un solo cluster: k = C(i) C(i) = ‘enconder’. Asigna cada punto a un cluster, de modo que C(i) : {1, . . . , N } → {1, . . . , K} Analisis de Cluster: encontrar C ∗ (i) optimo, en base a la matriz de dissimilarities. Walter Sosa Escudero Analisis de Clusters Una alternativa es la siguiente funcion de perdida: K X X 1 d(xi , xj ) W (C) = 2 k=1 i,j/C(i)=C(j)=k Intuitivamente: agrega las disimilitudes dentro de cada cluster. Notar que T = 1X 2 i,j dij = K 1X 2 k=1 X d(xi , xj ) + i,j/C(i)=C(j)=k X d(xi , xj ) i/C(i)=k,j/C(j)6=k T = W (C) + B(C) T es la disimilitud total, entre todas las observaciones (no depende de la clusterizacion). BC es la agregacion de las distancias entre clusters. Entonces, minimizar W (C) es equivalente a maximizar B(C). Walter Sosa Escudero Analisis de Clusters Algoritmos combinatorios Minimizar W (C) chequeando todas las posibles clusterizaciones. Ventaja: conduce a un minimo global. Desventaja: computacionalmente impensable en la practica. S(N, K) : cantidad de clusterizaciones en base a N puntos y K clusters. K X 1 = (−1)K−k S(N, K) = K! k=1 S(10, 4) = 34.105, S(19, 4) = 1010 . Walter Sosa Escudero Analisis de Clusters K k kN K−medias Supongamos que como dissimilarity usamos el cuadrado de la distancia euclidea. La funcion de perdida es: K X X 1 W (C) = ||xi − xj ||2 2 k=1 i,j/C(i)=C(j)=k Pp 2 1/2 con ||xi − xj || = s=1 (xis − xjs ) Es facil mostrar que K X X W (C) = Nk ||xi − x̄k ||2 k=1 i/C(i)=k con x̄k = (x̄1k , . . . , x̄pk ), es el vector de p medias de todas las variables para cada cluster. Walter Sosa Escudero Analisis de Clusters El problema entonces es: C ∗ = min C K X Nk k=1 X ||xi − x̄k ||2 i/C(i)=k Notar que para cualquier conjunto S de observaciones: x̄S = argmin m X ||xi − m||2 i∈S Lo que sugiere el algoritmo de K−medias. Walter Sosa Escudero Analisis de Clusters Algoritmo de K−medias: 1 Para una clusterizacion C, computar los K vectores de medias para cada variable. 2 Reasignar las observaciones al cluster mas cercano en base a las medias computadas anteriormente 3 Iterar hasta que no haya reasignaciones. Idea: el mecanismo optimiza primero dentro del cluster (elige las medias) y luego optimiza reasignando las observaciones, dejando quietas las medias. Problema: es convergente, pero puede hacerlo a un minimo local. Walter Sosa Escudero Analisis de Clusters Walter Sosa Escudero Analisis de Clusters K-mediods 1 Para una clusterizacion C encontrar la observacion dentro del cluster que minimiza la distancia con respecto a los puntos restantes. (la ‘observacion central’). 2 Reasignar los puntos con respecto a la observacion central. 3 Iterar hasta que no haya reasignaciones. La media como ‘centroide’ es poco robusta (sensible a outliers). Es computacionalmente mas costoso. Alternativa: K−medianas. Walter Sosa Escudero Analisis de Clusters Cuestiones Practicas Inicializacion: puede ser en base a clusters o medias. Stata elige por default K observaciones al azar como centro (similar a K-mediods). Numero de clusters: No hay un mecanismo comunmente aceptado. En algunos casos es exogeno (visitadores medicos, pobreza?). Cuestion: La within dissimilarity W (C) cae con el numero de clusters (en el extremo cuanto da?). K optimo se correponde con un quiebre en el dibujo de W (C) incrementando la cantidad de clusters. Gap statistic (Tibshirani (2001): Comparar la curva log W (C) para los datos actuales, con la curva correspondiente de un conjunto de ‘pseudo-datos’ uniformemente distribuidos el (hiper) rectangulo que contiene a los datos actuales. El K optimo corresponde a la maxima distancia Walter Sosa Escudero Analisis de Clusters Walter Sosa Escudero Analisis de Clusters Seleccion de Variables Fraiman, Justel y Svarc (JASA, 2008) Una aproximacion alternativa al problema de reducir dimensionalidad. Supongamos que X es una matriz de datos que induce una clusterizacion ‘satisfactoria’. Idea: encontrar el minimo grupo de variables que permiten resproducir esta clusterizacion de la mejor manera posible. Ventaja: El ‘output’ es un grupo de variables, directamente interpretable (a diferencia del analisis de factores). Presupone que la clusterizacion y el numero de clusters es ‘adecuado’ Walter Sosa Escudero Analisis de Clusters Reduccion de variables Que significa que ciertas variables ‘sobren’ Que ciertas variables esten muy relacionadas con otras que ya inducen una clusterizacion adecuada (pensar en factor analysis). Que ciertas variables solo agreguen ‘ruido’. Supongamos que hay solo dos variables, Y y X. Y ‘sobra’ si: Esta muy correlacionada con X (y por ende no agrega informacion a la clusterizacion). Y es independiente de X y no agrega informacion a la clusterizacion. Walter Sosa Escudero Analisis de Clusters La clusterizacion depende solo de X, Y solo agrega ruido. Walter Sosa Escudero Analisis de Clusters Si esta X, la clusterizacion no cambia mucho si Y no esta. Walter Sosa Escudero Analisis de Clusters Blinding Fraiman et al: si la clusterizacion inducida por X es ‘satisfactoria’, la clusterizacion no cambia si dentro de cada cluster reemplazamos Y por su mejor prediccion en base a X. Si X esta muy correlacionaca con Y , dentro de cada cluster reemplazamos Y por E(Y |X). (pensar que en el extremo, estamos ‘duplicando’ X, ergo no altera la clusterizacion inducida por X). Si Y no esta relacionada con X, E(Y |X) es una constante. Estamos reemplazando las variables redundantes o ruidosas por una version que altera de la menor manera posible la informacion de clusterizacion que esta contenida en X. A este proceso de reemplazar Y por E(Y |X) se lo llama blinding. Walter Sosa Escudero Analisis de Clusters X es un vector de p variables. f : <p → {1, . . . , K} es el ‘enconder’ que asigna cada punto a un solo cluster. El mecanismo que asigna clusters supondremos que es K−medias. I ⊂ 1, . . . , p es un subconjunto de indices. Z I es un vector de p variables construido de la siguiente forma: ZiI = Xi si i ∈ I ZiI = E(Xi |X[I]) en caso contrario, X[I] son todas las variables Xj |j ∈ I. Z I es un vector ‘menos informativo’ contiene un subconjunto de las variables originales y el resto son variables ‘blinded’ (reemplazadas por sus esperanzas condicionales). Walter Sosa Escudero Analisis de Clusters Objetivo: encontrar I de modo que el algoritmo de K-medias aplicado sobre Z I induzca una clusterizacion lo mas parecida a la inducida si es aplicado sobre X. Para un entero d < p, en donde #I = d, la funcion objetivo poblacional es: h(I) = K X P (f (X) = k, f (Z I ) = k) k=1 La version empirica para n observaciones es: K hn (I) = n 1 XX I[fn (Xj ) = k] I[fn (ZjI ) = k] n k=1 j=1 La idea consiste en buscar el I que maximice las coincidencias de clusterizacion. Walter Sosa Escudero Analisis de Clusters Cuestiones practicas Efficiency: porcentaje de matches de clusterizacion explicados por Z I En el caso de dependencias (colinealidad), el problema es reemplazar las variables redundantes por sus esperanzas condicioanales: metodo no parametrico. En el caso de variables ruidosas, reemplazamos por la media muestral dentro del cluster (mucho mas rapido, funciona peor con dependencias). Busqueda exhaustiva: todas los posibles subconjuntos, puede ser costoso. Algoritmos ‘forward’ y ‘backward’ Walter Sosa Escudero Analisis de Clusters Ejemplo: Calidad de la educacion Llach et al (2006). 98 escuelas de Buenos Aires Clusterizar escuelas en base a un cuestionario de 15 preguntas sobre calidad. 3 clusters. Chequear si son ‘apropiados’: GKE (examen de conocimiento general), SEL (status socioeconomico de alumnos) Objetivo: buscar un subconjunto de variables que reproduzcan la clusterizacion ‘adecuada’ de la mejor manera posible. Walter Sosa Escudero Analisis de Clusters Clusterizacion en base a 15 variables: Los clusters parecen corresponderse con calidades (alta, media, baja). Walter Sosa Escudero Analisis de Clusters Las variables 3,4,7,8,9,11,12 y 14 reproducen la clusterizacion original en un 100%. Para una eficiencia de 97%, alcanza con las variables 3,4,7,11 y 14. Para una eficiencia de 91%, alcanza con las variables 4,7 y 14. 4 (opinion del director de la escuela sobre el estado de los edificios), 7 (relaciones entre directores y padres), 14 (relaciones entre maestros y padres). Walter Sosa Escudero Analisis de Clusters CART Y es una variable de interes, X es un vector de variables (input, atributos). La idea es construir un modelo muy flexible e interpretable para la relacion entre Y y X. Los metodos basados en arboles intentan partir el espacio de atributos en rectangulos, y ajustar un modelo simple para Y en cada uno de ellos. Para que? no-linealidades, clasificacion, altas interacciones, reduccion de la dimensionalidad, prediccion. CART: Classification and Regression Tree Walter Sosa Escudero Analisis de Clusters Un ejemplo simple Hastie, Tibshirani y Friedman (2001). Supongamos que la respuesta es Y y que los inputs son X1 y X2 . Partimos el espacio X1 , X2 en dos regiones, en base a una sola variable (particion horizontal o vertical). Dentro de cada region proponemos como prediccion la media muestral de Y en cada region. El punto consiste en elegir la varaible y el punto de particion de manera optima (mejor ajuste global). Continuar partiendo las regiones, con el mismo criterio. Esto implica una particion recursiva binaria del espacio de atributos. Walter Sosa Escudero Analisis de Clusters Walter Sosa Escudero Analisis de Clusters En este caso, el proceso parte el espacio de atributos en cinco regiones R1 , R2 , . . . , R5 y en cada region Rm , el modelo ajustado es una constante cm . O sea, el modelo ajustado es: Ŷ = fˆ(X) = 5 X cm I[(X1 , X2 )] ∈ Rm i=1 El modelo ajustado se puede representar en forma de arbol. La ventaja de esta ultima representacion es que vale aun para mas de tres dimensiones. Pensar que hace CART en dos dimensiones. Cual es la ventaja? Walter Sosa Escudero Analisis de Clusters Regression Trees Y , X, un vector de p variables, observables para n observaciones. El algoritmo elige cual variable usar para la particion y que punto de esa variable usar para la particion. Dentro de cada region, el mejor ajuste constante lo provee cm . Greedy algotithm j es la variable de particion y el punto de particion es s. Definamos los siguientes semi‘planos’ R1 (j, s) = {X | Xj ≤ s} y R2 (j, s) = {X | Xj > s} El problema es buscar la variable de particion j y el punto de particion s que resuelvan X X min min (yi − c1 )2 + min (yi − c2 )2 j,s c1 xi ∈R1 (j,s) Walter Sosa Escudero c2 xi ∈R2 (j,s) Analisis de Clusters Para cada varible de particion y punto de particion, la minimizacion interna se corresponde con las medias dentro de cada region. El proceso se repite dentro de las regiones. Como parar? Un arbol demasiado extenso ‘sobreajusta’ los datos (es como poner una dummy para cada observacion). Estrategia: ajustar un arbol grande y luego ‘podarlo’ (prune) usando un criterio de cost-complexity. Walter Sosa Escudero Analisis de Clusters Tree pruning Supongamos que los distintos arboles son indicados con T . Un subarbol T ⊂ T0 es un arbol que se obtiene colapsando los nodos terminales de otro arbol (cortando ramas). [T ] = numero de nodos terminales del arbol T El criterio de cost-complexity del arbol T se define como Cα (T ) = [T ] X nm Qm (T ) + α[T ] m=1 n−1 m 2 con Qm (T ) = xi ∈Rm (yi − ĉm ) . Qm (T ) penaliza la heterogenidad (‘impureza’) dentro de cada region, y el segundo termino la cantidad de regiones. El objetivo es, para un α dado, encontrar la ‘poda’ optima que minimiza Cα (T ) P Walter Sosa Escudero Analisis de Clusters Weakest link pruning: Mecanismo de busqueda de Tα (poda optima dado α). Resultado: para cada α hay un unico subarbol Tα que minimiza Cα (T ). Weakest link: eliminar sucesivamente las ramas que producen P[T ] el minimo incremento en m=1 nm Qm (T ). (sacar ramas es colapsar, esto aumenta la varianza, ergo, colapsamos la particion menos necesaria). Esto eventualmente colapsa en el nodo inicial, pero ‘pasa’ por una sucesion de arboles, desde el mas grande, hasta el mas chico, por el proceso de weakest link pruning. Breiman et al. (1984): Tα pertenece a esta sucesion. Reducir la busqueda a esta sucesion de subarboles. Walter Sosa Escudero Analisis de Clusters Eleccion de α: Cross Validation Es una tecnica general para elegir modelos. Supongamos que el error esperado de prediccion es E[Y − fˆ(X)]2 El mecanismo de K−fold cross validation propone: Dividir la muestra original en K grupos aproximadamente iguales. Estimar el modelo dejando de lado una de las partes, y usar el modelo estimado para predecir Y usando las X de las observaciones no usadas, computar el error de prediccion. Repetir el proceso dejando de lado sucesivamente cada una de los grupos. Walter Sosa Escudero Analisis de Clusters La estimacion por cross-validation del error de prediccion es n CV = 1X (yi − fˆCV (xi ))2 n i=1 en donde fˆCV son las predicciones por cross validation. En nuestro caso, la idea es computar CV para distintos valores de α y elegir el que induzca menor CV . Walter Sosa Escudero Analisis de Clusters Classification Trees Y ahora toma un conjunto de valores fijos {1, 2, . . . , K} denotando pertenencia a alguna clasificacion (no necesariamente ordinal). En principio, la media por region no funciona. Cambiaremos la prediccion. Definamos: p̂mk = 1 X I(yi = k) nm xi ∈Rm Es la proporcion de observaciones en la ‘clase’ k en la region m. La idea es clasificar a todas las observaciones en la region Rm a la clase k(m) = argmaxk p̂mk o sea, clasificar todas las observaciones en la region m de acuerdo a la clase correspondiente a la mayoria. Walter Sosa Escudero Analisis de Clusters A partir de esta definicion, hay varias alternativas para la funcion de impureza en la region: Luego el procedimiento es identico al anterior. Walter Sosa Escudero Analisis de Clusters Ejemplo: preferencias por la redistribucion Keely y Tan (2008): relacion entre caracteristicas de las personas y sus preferencias por la redistribucion. Problema: implica un modelo en particular. No linealidades y heterogeneidad. Variables (identity markers): sex, race reg16, born, madeg, age, etc. Variable dependiente: eqwlth (escala 1 a 7, uno esta muy de acuerdo con que el gobierno redistibuya para mejorar la distribucion, 7 si muy poco de acuerdo). 13024 observaciones. Walter Sosa Escudero Analisis de Clusters Walter Sosa Escudero Analisis de Clusters