#### Analisis de conglomerados: #### Para obtener la matriz de distancias, puede usarse la funcion en R 'dist' -ver help(dist) #### Para otras distancias, usar la libreria 'labdsv' y usar la funcion 'dsvdis' - ver help(dsvdis) #### Ejemplo concordancias en la primera letra para los numeros entre 11 lenguas sim.idiom <- matrix(c(10, 8, 8, 3, 4, 4, 4, 4, 3, 1, 1, 8, 10, 9, 5, 6, 4, 4, 4, 3, 2, 1, 8, 9, 10, 4, 5, 4, 1, 1, 0, 2, 1, 3, 5, 4, 10, 5, 1, 1, 1, 0, 2, 1, 4, 6, 5, 5, 10, 3, 3, 3, 2, 1, 1, 4, 4, 4, 1, 3, 10, 8, 9, 5, 0, 1, 4, 4, 5, 1, 3, 8, 10, 9, 7, 0, 1, 4, 4, 5, 1, 3, 9, 9, 10, 6, 0, 1, 3, 3, 4, 0, 2, 5, 7, 6, 10, 0, 1, 1, 2, 2, 2, 1, 0, 0, 0, 0, 10, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 10),nrow=11,ncol=11,byrow=T); dist.idiom <- as.dist(10-sim.idiom); ## Convierte la matriz de distancias en un objeto tipo 'dist' en R dimnames(dist.idiom) <- list(c("E","N","Da","Du","G","Fr","Sp","I","P","H","Fi"),c("E","N","Da","Du","G","Fr","Sp","I","P","H","Fi")); ### Conglomerados jerarquicos # a) Single linkage: single.clus <- hclust(d=dist.idiom, method="single") plclust(single.clus,labels=c("E","N","Da","Du","G","Fr","Sp","I","P","H","Fi"), main="Single Linkage", xlab="",sub="") # b y c): para "average" y "complete linkage", solo cambiar argumento "method" a "method=average" o "method=complete" ### Conglomerados no jerarquicos: K-means ### kmeans(x= "matriz datos", centers= "numero de grupos iniciales o baricentros iniciales") ### la funcion 'plot' hace un plot similar al pasado del objeto calculado por 'kmeans()- ### alternativamente, se puede empezar de una matriz de distancias usando la funcion 'pam' de la ### libraria 'cluster'. El plot no es muy bonito que digamos, pero esta funcion incluye otros algoritmos para hacer ### k-means library(cluster) kmeans.idiom <- pam(dist.idiom,k=3,diss=T, metric="euclidean"); kmeans.idiom$medoids ## los objetos que sirven de centroides [1] 2 8 11 kmeans.idiom$clustering [1] 1 1 1 1 1 2 2 2 2 1 3