Un peligro del análisis cluster

Julio 16th, 2012 | por rvaquerizo |

Quería plantearos un ejemplo de análisis cluster para observar el peligro que tiene agrupar observaciones en base a grupos homogéneos creados con distancias multivariantes. Para ilustrar el ejemplo trabajamos con R, creamos grupos en base a 2 variables, esto nos facilita los análisis gráficos. Simulamos el conjunto de datos con el que trabajamos:


#GRUPO 1
x = runif(500,70,90)
y = runif(500,70,90)
grupo1 = data.frame(cbind(x,y))
grupo1$grupo = 1


#GRUPO 2
x = runif(1000,10,40)
y = runif(1000,10,40)
grupo2 = data.frame(cbind(x,y))
grupo2$grupo = 2


#GRUPO 3
x = runif(3000,0,100)
y = runif(3000,0,100)
grupo3.1 = data.frame(cbind(x,y))
grupo3.1$separacion=(x+y)
grupo3.1 = subset(grupo3.1,separacion>=80 & separacion <=140,select=-separacion)
grupo3.1 = subset(grupo3.1,y>0)
grupo3.1$grupo = 3


#UNIMOS TODOS LOS GRUPOS
total=rbind(grupo1,grupo2,grupo3.1)
plot(total$x,total$y,col=c(1,2,3)[total$grupo])

Los grupos parecen claros:

linealidad_cluster1.png

Cabe preguntarse: ¿qué sucede si segmentamos en base a centroides? Para responder a esta pregunta hacemos un análisis no jerárquico, empleamos el algoritmos de las k-medias del que ya se ha hablado en este blog en alguna ocasión:


distancias = dist(total)
clus = kmeans(distancias,3)
total$grupo_nuevo = clus$cluster
plot(total$x,total$y,col=c(1,2,3)[total$grupo_nuevo])

linealidad_cluster2.png
Necesitamos un objeto con las distancias y sobre él utilizamos la función kmeans que es la más popular y sencilla. El objeto resultante de la realización del modelo tiene una variable cluster que añadimos a nuestros datos y tras graficar vemos que es evidente que no ha funcionado muy correctamente, nos ha creado los 3 grupos homogéneos en base a la distancia entre observaciones, pero no son los segmentos deseados… Mucho cuidado cuando utilicemos este tipo de técnicas.

¿Cómo podemos realizar una segmentación más apropiada para estos datos? ¿Qué técnica podemos utilizar? La respuesta en breve. Espero que esto sirva para  desordenar alguna conciencia.

Etiquetas: ,

  1. 6 Respuestas en “Un peligro del análisis cluster”

  2. Por Alex J. Zambrano, Jul 17, 2012 | Responder

    Me a parecido interesante este ejemplo. Realmente he mirado varios tipos de clasificación, con estos datos simulados. Pero todos no lo hacen bien. Creería a que se debe a que la gran mayoría de las técnicas de clasificación, se basan en la métrica que se utilice. Sin embargo, métricas como la mahalanobis la cual se basa en calcular la matriz de covarianzas, tampoco lo hace bien -esto debe ser por la homogeneidad de los grupos-.

    Estoy intrigado con la técnica de segmentación apropiada. Pensaría en alguna técnica de remuestreo o alguna técnica que detecte grupos outliers.

    Interesante.

  3. Por rvaquerizo, Jul 19, 2012 | Responder

    Hola Alex, circula un video por el mundo que ilustra mejor este problema, pero no le encuentro…

    Una pista: imagina que hacemos un algoritmo que “lanza planos” entre las observaciones, parece claro que, en este ejemplo, dos planos identificarían los 3 grupos.

  4. Por Angel Alonso Ares, Nov 18, 2012 | Responder

    Raul sabes algún sitio donde me pueda descargar el sas miner como versión de prueba.

    Muchas gracias

  5. Por rvaquerizo, Nov 19, 2012 | Responder

    La verdad es que lo desconozco, es un software propietario y tiene que ir con su licencia correspondiente. En SAS no tienen costumbre de tener versiones de prueba y en este caso no hay ni versiones de estudiante.

  6. Por Angel Alonso Ares, Nov 19, 2012 | Responder

    gracias raul

  1. 1 Trackback(s)

  2. Ago 1, 2012: Análisis y decisión

Publica un Comentario