Archivo de la etiqueta: análisis cluster

Solventamos los peligros del análisis cluster con SVM

Retomamos un asunto tratado en días anteriores, los peligros de realizar un análisis de agrupamiento basado en las distancias entre observaciones. ¿Cómo podemos evitar este problema? Empleando máquinas de vectores de soporte, traducción de Support Vector Machines (SVM). Esta técnica de clasificación de la que ya hablamos en otra entrada nos permite separar observaciones en base la creación de hiperplanos que las separan. Una función kernel será la que nos permita crear estos hiperplanos, en el caso que nos ocupa tenemos sólo dos variables, necesitamos crear líneas de separación entre observaciones. En la red tenéis una gran cantidad de artículos sobre estas técnicas.

Para ilustrar como funciona retomamos el ejemplo anterior:


#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])

El paquete de R que vamos a emplear es kernlab, Sigue leyendo Solventamos los peligros del análisis cluster con SVM

Manual. Curso introducción de R. Capítulo 16: Análisis Cluster con R (II)

En esta entrega vamos a seguimos trabajando con el análisis Cluster viendo más posibilidades que nos ofrece R. Para ello vamos a realizar un estudio de agrupamiento de países europeos en función de algunos indicadores básicos:

  • Superficie
  • Población
  • PIB (en mil de $)
  • Esperanza de vida
  • Índice de desarrollo humano
  • % Población en ciudad

Para este estudio contamos con este archivo excel . El primer paso por supuesto es crear un objeto en R:


odbcClose(tabla)
library(RODBC)
setwd("c:/raul")
tabla<-odbcConnectExcel("paises.xls")
datos<-sqlFetch(tabla,"Hoja1")
odbcClose(tabla)
detach(datos)
attach(datos)
datos$densi<-datos$pob/datos$sup
detach(datos)

Ya tenemos el objeto datos sobre el que realizaremos el análisis. Sigue leyendo Manual. Curso introducción de R. Capítulo 16: Análisis Cluster con R (II)