Fonction HCPC: Error in res$call$t$res$eig[ax2, 2] : subscript out of bounds

55 views
Skip to first unread message

Elisabeth Henriet

unread,
Feb 17, 2021, 9:35:19 AM2/17/21
to FactoMineR users

Bonjour,

Lorsque je clique sur le graphique pour couper l'arbre suite au lancement de la fonction HCPC, l'erreur suivante m'est renvoyée:

Error in as.data.frame(data.clust[, -2]) : object 'data.clust' not found

J'ai essayé HCPC(as.data.frame(vari)) et cela provoque une autre erreur:

Error in res$call$t$res$eig[ax2, 2] : subscript out of bounds

Qqn aurait une solution?

Voici le code pour répliquer:

tea <- read.table("http://factominer.free.fr/bookV2/tea.csv",header=T,sep=";")
vari <- tea[,22]
res.hcpc <- HCPC(as.data.frame(vari))

Merci,

Elisabeth

J.C. Deroubaix

unread,
Feb 17, 2021, 10:30:30 AM2/17/21
to factomin...@googlegroups.com
Bonjour, 

avant d’appeler la fonction HCPC, il faut exécuter une analyse factorielle (AFC, ACP, ou autres), récupérer les résultats et utiliser ces résultats comme paramètre de HCPC. 

Cordialement
Jean-Claude Deroubaix


--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "FactoMineR users".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse factominer-use...@googlegroups.com.
Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/factominer-users/6898b63c-b713-450a-ac12-97041de9b01an%40googlegroups.com.

Womble

unread,
Feb 18, 2021, 5:21:09 AM2/18/21
to FactoMineR users
As Jean-Claude noted, you need to run HCPC on the results of another method such as Correspondence Analysis.  An additional problem is that your command vari<-tea[,22] means that you are only analysing a single variable.  You need to use a table of values, and choose a method appropriate to your data type.  In the case of the tea example, many (but not all) of the variables are "factors" or multistate variables and so for those, multiple CA is an appropriate method (omitting, or having as supplementary, variables such as "age").

Best wishes, Kris.

Francois Husson

unread,
Feb 18, 2021, 8:24:15 AM2/18/21
to factomin...@googlegroups.com
Bonjour,
En fait, dans votre jeu de données, il n'y a qu'une seule variable. Et donc les données sont unidimensionnelles.
La fonction HCPC permet de représenter l'arbre sur un plan en prenant les 2 premières dimensions de l'ACP, mais comme ici il n'y a qu'une seule dimension, cela génère une erreur.
Vous n'aurez donc pas le problème si vous lancez l'analyse avec un jeu de données ayant au moins 2 variables.

Et pour votre exemple, vous pouvez faire :
tea <- read.table("http://factominer.free.fr/bookV2/tea.csv",header=T,sep=";")
vari <- tea[,22]
res.hcpc <- HCPC(as.data.frame(vari),graph=FALSE)
plot(res.hcpc,choice="tree")

FH
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "FactoMineR users".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse factominer-use...@googlegroups.com.
Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/factominer-users/6898b63c-b713-450a-ac12-97041de9b01an%40googlegroups.com.

--
Francois Husson
Department Statistics & Computer science
L'Institut Agro - AGROCAMPUS OUEST
65 rue de St-Brieuc - 35042 RENNES
Tel: +33 2 23 48 58 86
https://husson.github.io

Elisabeth Henriet

unread,
Feb 18, 2021, 9:59:07 AM2/18/21
to FactoMineR users
Bonjour à tous,

Un grand merci pour vos réponses. Mon problème est résolu ! Dernière question: est-ce que dans le cas de variables quantitatives, il est impératif de réaliser une PCA au préalable? Je croyais que l'analyse factorielle préalable n'était nécessaire que dans le cas de données qualitatives.
@François Husson, pour info, j'ai en fait été induite en erreur en essayant de reproduire le '4.11 Dividing Quantitative Variables into Classes' de votre livre 'Exploratory Multivariate Analysis by Example Using R, second edition' (je parle du code en bas de la page 205) qui implique de faire tourner le modèle avec une seule variable.

Elisabeth

Francois Husson

unread,
Feb 18, 2021, 10:14:06 AM2/18/21
to factomin...@googlegroups.com
Non, il n'est pas impératif de réaliser une ACP avant une classification.
L'intérêt de faire une ACP est d'éliminer les dernières dimensions qui généralement ne contiennent que du bruit. Cela permet d'avoir des classification plus stables. Mais ce n'est pas indispensable de le faire (si on choisit de garder toutes les dimensions d'une ACP non réduite, cela revient à considérer les données de départ).

FH
Reply all
Reply to author
Forward
0 new messages