2016-03-31 1 views
1

Je suis actuellement en train d'effectuer un cluster hiérarchique. J'ai choisi d'utiliser FactoMineR en raison de son bon pipeline d'exploration de données: data-> MFA-> HCPC.Coercer HCPC objet à hclust à utiliser la bibliothèque (ape)

data("wine") 
names(wine) 
res<-MFA(wine,group = c(2,5,3,10,9,2),type=c("n",rep("s",5)), 
     ncp=5,name.group = c("orig","olf","vis","olfag","gust","ens"), 
     num.group.sup = c(1,6)) 

res.hcpc<-HCPC(res, nb.clust=0, consol=F, iter.max=10, min=3, 
      max=NULL, metric="euclidean", method="ward", order=TRUE, 
      graph.scale="sqrt-inertia", nb.par=5, graph=TRUE, proba=0.05, 
      cluster.CA="rows",kk=Inf) 

#Now for some nice plots 
plot(res.hcpc,draw.tree = T,choice = "tree") 
plot(res.hcpc,draw.tree = T,choice = "bar") 

Ce sont plus que suffisants pour extraire des réponses, mais je cherche à présenter ces arbres. i.e. Je veux qu'ils un peu retapé par library(ape) - examples

Le problème est que ces fonctions nécessitent un objet hclust. Une option que j'avais était d'utiliser les résultats MFA et d'utiliser une fonction hclust comme: res.hc<-hclust(dist(res$global.pca$ind$coord),method = "ward.D2") pour construire un objet hclust.

Cela fonctionne, mais je trouve que l'information que donne HCPC est beaucoup plus informative (et les réponses diffèrent de hclust). Ainsi, je veux travailler avec l'objet HCPC et non hclust, mais toujours être en mesure d'utiliser les fonctions dans library(ape). Une idée comment on pourrait contraindre HCPC à hclust?

+0

la section 'de value' dans'? Hclust' vous dit exactement ce qui fait un objet hclust, Il suffit donc de remplir les trous, par exemple, 'h2 <- structure (liste (merge = matrice (-c (1,3,2, -1), 2), hauteur = c (0, 10), ordre = 1: 3, étiquettes = 1: 3, dist.method = 'euclidean', call = quote (hclust (dist, méthode = "ave"))), class = 'hclust'); plot (h2) ' – rawr

+0

@rawr, j'ai jeté un oeil à la structure du' hclust'. Je vais commencer et comprendre comment je pourrais faire ce travail. Étant issu d'un milieu hors-programmation, j'espérais que quelqu'un avec un meilleur pedigree de développement R fournirait une fonction réalisable qui pourrait être incluse dans le paquet 'FactoMineR '. i.e structure et utilisation correctes au besoin par cran –

Répondre

1

pour la bibliothèque (singe)

hcpcTree<-res.hcpc$call$t$tree 
apeTree<-as.phylo(hcpcTree) 

pour la bibliothèque (statistiques)

dendextendTree<-as.phylo.dendrogram(hcpcTree)