Bonjour,

Nous avons un jeu de données à analyser avec en colonnes des individus et en lignes des données spatiales et temporelles. Nous avons réalisé une AFC et diverses AFC inter intra (saison, années, spatiale, package Ade4) avec des résultats peu concluant dans le sens où rien ne se démarque. De plus, nous avons effectué une matrice de voisinage où nous obtenons 6 groupes différents ce qui correspond à ce que nous attendions. Nous voudrions donc effectuer des afc inter intra classes d'année, spatiale voire même de saison mais avec la pondération par la matrice de voisinage. Cependant, avec le package Ade4, la pondération s'effectue avec la fonction multispati(). Cette fonction retourne un objet de classe multispati ce qui ne fonctionne pas avec les fonctions bca() et wca() des AFC inter intra qui fonctionnent uniquement avec des objets de classe dudi. Nous souhaiterions donc savoir s'il est possible d'effectuer ces AFC inter intra avec la pondération par la matrice de voisinage et si oui, de quelle façon cela est possible. Ci-dessous les lignes de codes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#matrice
dau.dn <- dnearneigh(as.matrix(ori.xy), 0, 20000)
dau.listw <- nb2listw(dau.dn)
 
#AFC pondérée
afc <- dudi.coa(mil3)
dau.ms.afc <- multispati(afc, ori.listw, scannf = F, nfposi = 4,nfnega = 0) 
 
#intersite
spatial<-plan3$rectangle
spa<-as.factor(spatial)
intrarec<-wca(afc,spatial)
ori.ms.intrarec <- multispati(intrarec, ori.listw, scannf = F, nfposi = 4,nfnega = 0)
 
#message d'erreur 
Error in covar$vectors[, agarder] : indice hors limites
De plus : Warning message:
In multispati(intrarec, ori.listw, scannf = F, nfposi = 4, nfnega = 0) :
  There are only 0 positive factors.
 
interrec<-bca(afc,rec)
dau.ms.afc <- multispati(interrec, ori.listw, scannf = F, nfposi = 4,nfnega = 0)
#message d'erreur 
Error in spdep::lag.listw(listw, x, TRUE) : object lengths differ
Merci d'avance.