Re: CCA problems

From: Daniel Chessel (chessel@biomserv.univ-lyon1.fr)
Date: Thu Oct 30 1997 - 10:13:49 MET


La question posée par Michele Scardi est importante

La première chose à faire avec un logiciel est de le tester sur des jeux de données standards.

Je suis donc retourner dans l'article d'origine de Ter Braak (Ter Braak, C.J.F. (1986) Canonical correspondence analysis : a new eigenvector technique for multivariate direct gradient analysis. Ecology : 69, 69-77) qui a défini l'analyse canonique des correspondances. Le tableau 3 (données de Van Der Aart, P.J.M. & Smeek-Enserik, N. (1975) Correlation between distribution of hunting spiders (Lycosidae, Ctenidae) and environmental characteristics in a dune area. Netherlands Journal of Zoology : 25, 1-45.) contient un tableau 12 espèces - 28 relevés et un tableau 6 variables - 28 relevés. Le tableau 1 donne les valeurs propres de la CCA et le tableau 2 les poids canoniques et les corrélations variables-facteurs. On peut donc espérer retrouver ces valeurs dans le module CCA.

Comme Michele Scardi, je n'y suis pas arrivé. Gasp !

J'ai relu les légendes

p. 1173 : Table 3 - Hunting spider abundance data, ... For this table, the range of each environmental variable was divided into 10 equal-sized classes (denoted by 0-9) after the data were transformed. ...
p. 1172 : Table 2 - ... canonical coefficients and the intraset correlations of environmental variables with the first two axes of canonical correspondence analysis (CCA). The environmental variables were standardized to unit variance after log-transformation....

On peut supposer que pour gagner de la place les données de milieu ont été éditées par numéro de classe mais que les calculs ont été exécutés sur des données plus précises. C'est pour cela qu'on ne peut récupérer qu'approximativement les résultats. C. Ter Braak ne pensait pas, sans doute, que ce tableau servirait à tester un autre programme de CCA 10 ans plus tard !

Mais il y a beaucoup plus derrière la question posée

Sylvain Dolédec, pour la même raison a implanté un autre jeu de données cité dans le même article (Fricke, G. & Steubing, L. (1984) Die Verbreitung von Makrophyten und Mikrophyten in Hartwasser-Zuflüsse des Ederstausees. Archiv für Hydrobiologie : 101, 371-372.)

25 stations et 34 espèces d'algues
3533422203032022000000000000000000
3220000030200300300000000000000000
5004242200000233400000000000000000
3000000340103320022000000000000000
0120002022023002022120000000000000
2032030432400341000200000000000000
2003420240002233320002300000000000
0002230230020003320003300000000000
0232131202222002000032330000000000
0000002242033022042500202200000000
0000000000024303200030200000000000
0000000002404520403545340000000000
0000000000002302300023230300000000
0000000000022020202022200333320000
0000000000013010300020233400200000
0000000002200222000200223303340000
0000000000320002000230002030430300
0000000000022020200020033430200000
0000000000002002400022030203433000
0000000000000212000000000232420330
0000000000000021200000002032333020
0000000000000000000000002020222033
0000000000000000000000002222223333
0000000000000000000000000030333300
0000000000000000000000000040203333

25 stations et 7 variables environnementales
11 1.4 0.02 0.2 85 17 410
10 1.6 0.02 0.2 90 17 490
11 1.5 0.03 0.1 75 17 480
10 1.7 0.05 0.2 95 18 540
10 2 0.1 0.4 65 14 430
10 1.1 0.03 0.5 90 18 420
9 1.8 0.08 0.2 110 21 520
11 2.1 0.1 0.5 55 12 290
8 2 0.05 0.1 85 17 410
8 2.4 0.2 0.7 95 18 580
10 2.7 0.4 1 80 16 500
9 2.8 0.3 1.8 95 20 550
8 2.8 0.5 1.6 60 14 410
9 3.3 0.3 0.8 65 14 420
8 5.8 0.4 2 85 17 780
7 4.8 3 4.8 90 17 590
9 4.1 6 0.9 85 18 600
5 4.3 0.2 1.8 85 17 670
8 6.4 3 1.4 75 17 480
7 8.8 3 2.8 60 16 420
5 1.2 0.5 3 80 15 830
4 11 8 9 85 19 750
5 12 13 8 85 13 760
8 18 24 1.5 75 15 870
6 27 45 2.5 80 16 1300

code des variables
O2 mg/l
BOD (mg/l)
NH4 (mg/l)
PO4 (mg/l)
Ca (mg/l)
Dureté
Cond (µS)

code des espèces
Fragilaria virescens
Batrachospermum moniliforme
Audionella violacea
Diatoma hiemale mesodon
Meridion circulare
Caloneis silicula
Microspora quadrata
Fragilaria construens
Navicula radiosa
Ulotrix zonata
Cymbella prostata
Phormidium inundatum
Cladophora glomerata
Diatoma vulgare
Amphora ovalis
Synedra ulna
Stauroneis anceps
Gyrosigma attenuatum
Scenedesmus quadricauda
Melosira varians
Rhoicophenia curvata
Nitzschia sigmoidea
Pinnularia viridis
Closterium moniliferum
Cladophora fracta
Cymatopleura solea
Nitzschia palea
Closterium leibneinii
Navicula cryptocephala
Oscillatoria limosa
Hantzshia amphioxis
Stigeoclonium tenue
Phormidium foveolarum
Zooglea ramigera

On peut penser que C. Ter Braak a utilisé les données publiées
Il y a en effet une faute de frappe manifeste pour la variable BSB5 mg/l dans la colonne 20 p. 364. On voit 1,2 alors que le domaine de variation dans cette classe de stations est affichée 4-10. On prend les données publiées exactement.

La procédure dans ADE-4 affiche :

|---|----------|----------|----------|
|Num| Variance | R2 | Eig. Val.|
|---|----------|----------|----------|
| 1| 0.7017| 0.9591| 0.673|
| 2| 0.269| 0.5198| 0.1398|
| 3| 0.1198| 0.7933| 0.095|
|---|----------|----------|----------|

et dans l'article on a (Table 6 p. 1175) :
CCA Eigenvalues 0.67 0.14 0.10
CCA Correlation coefficients 0.98 0.72 0.89
ce qui correspond avec la même précision au carrés de 0.96 0.52 et 0.79

Le module CCA reproduit donc les valeurs propres et les corrélations espèces-environnement de la CCA de Ter Braak.

Mais les facteurs de ADE-4 (fichier .ivfa) sont :
  0.3439 0.4500 0.4302
 -0.0258 -0.4829 -1.0752
 -0.5676 -0.0488 2.3167
  0.0357 1.5509 -0.7029
  0.2207 0.0578 -0.1516
 -0.0067 0.4882 0.1226
 -0.2155 -0.4339 -0.4281

alors que l'article donne :

(Table 7 p. 1177)
-0.47 0.20
0.06 -0.11
0.80 -0.07
-0.04 0.64
-0.25 0.28
-0.07 -0.10
0.28 -0.27

On sait qu'on peut changer tous les signes sans changer la signification. Pour le premier on observera qu'à une constante près c'est la même chose mais que ce n'est plus vrai sur le second axe.

Moralité : le module CCA de ADE-4 n'est pas EXACTEMENT le programme CANOCO. Ce n'est pas une erreur de programmation !

En effet, si on calcule les corrélations entre les scores de .ivl1 et les variables environnementales par MatAlg on trouve :

  0.8134 -0.0467
 -0.8786 -0.0757
 -0.9434 0.1048
 -0.8303 0.5098
  0.1881 0.1636
  0.2747 0.3004
 -0.7058 -0.0988

et dans l'article (même tableau) on a :
-0.81 -0.06
-0.88 -.08
0.94 0.09
0.83 0.51
-0.19 0.19
-0.44 0.05
0.71 -0.09

Pour l'axe 1, il y a un désaccord pour la variable 6. Pour l'axe 2, il y a aussi un désaccord pour la variable 6 mais plusieurs valeurs inégales. Il est difficile de savoir ce qui se passe pour la variable 6 car C. Ter Braak dit "seven environmental variables, six of wich (all but D°) were transformed by taking logarithms in our analysis because of skewed distributions". J'ai passé en log les variables 1à5 et 7 et peut-être il manque une information pour retrouver le chiffre de la variable 6.

La question est donc : c'est quoi exactement la CCA.

Il y a des réponses mathématiques et des réponses logicielles et des relations complexes entre les deux.

Pour les logiciels, il y a CANOCO, ADE-4 et BIOMECO (ou les versions ultérieurs commerciales). ADE-4 est exactement le même que BIOMECO (Lebreton, J.D., Sabatier, R., Banco, G. & Bacou, A.M. (1991) Principal component and correspondence analyses with respect to instrumental variables : an overview of their role in studies of structure-activity and species- environment relationships. In : Applied Multivariate Analysis in SAR and Environmental Studies. Devillers, J. & Karcher, W. (Eds.) Kluwer Academic Publishers. 85-114). La comparaison des sorties est faite dans la fiche Thema 3.6 p.18. Le CCA d'ADE-4 n'est pas exactement le même que CANOCO pour plusieurs raisons théoriques assez complexes de maths.

Les points importants sont :

1- les scores des relevés de CANOCO sont exactement ce qu'on trouve dans les fichiers .ivl1 (scores de variance unité combinaison des variables de milieu) optimisant la variance des moyennes des espèces pour le premier axe. Ensuite Ter Braak a ajouté "The standardization of site scores in S6 (p. 1169) is convenient in the algorithm, but it has more meaning ecologically to rescale the solution according to Eq. A8 of the appendix, as proposed by Hill (1979)" qui n'est pas conservé dans ADE-4.
2- les scores des espèces de CANOCO sont exactement ce qu'on trouve dans les fichiers .ivco (moyenne des espèces) pour le premier axe mais le rescaling a de l'influence ensuite.
3- les valeurs propres et les corrélations sont identiques mais les calculs sont très différents (diagonalisation globale dans ADE-4 et Biomeco et diagonalisation par boucle sur les premiers axes dans CANOCO).
4- les poids canoniques ne sont pas les mêmes. Il sont identiques à une constante près sur le premier axe et ensuite à cause d'une conception très différente sur le fond sont différents. Dans ADE-4, il n'y a pas de .ivfa si les variables environnementales sont liées (ce qui est toujours vrai pour les modalités des variables qualitatives) et dans CANOCO ils ne peuvent exister d'après la formule (5) p. 1169 si la matrice des corrélations intra-variables n'est pas inversible. Cela vient du fait que le score cherché existe toujours mais que l'unicité de sa décomposition à partir des variables initiales n'est pas forcément unique (problème de rang, d'inverse généralisé ...)
5- La boucle scores des sites -> moyenne des espèces -> moyenne des sites -> régression -> standardisation de Ter Braak permet le detrending qui est exclu dans la version ADE-4.
6- ADE-4 ne contient aucun rescaling et a une définition algébrique qui exclue tout savoir faire numérique (Chessel, D., Lebreton, J.D. & Yoccoz, N. (1987) Propriétés de l'analyse canonique des correspondances. Une utilisation en hydrobiologie. Revue de Statistique Appliquée : 35, 4, 55-72)
7- CANOCO contient la CCA et l'ACP sur variables instrumentales de Rao (Rao, C.R. (1964) The use and interpretation of principal component analysis in applied research. Sankhya, A : 26, 329-359) explicitée p. 144 dans Jongman, R.H., ter Braak, C.J.F. & van Tongeren, O.F.R. (1987) Data analysis in community and landscape ecology. Pudoc, Wageningen. 1-298 sous le terme redundancy analysis. Dans ADE-4 les deux sont des cas particuliers du module Projectors.

Donc le module CCA n'est pas une version de CANOCO et la question posée par Michele Scardi est loin d'être épuisée

>I recently tested the ADE-4 CCA procedure using both the documentation
>examples and
>and the small data set in tab. 3 of Ter Braak (1986, Ecology 67(5):
>1167-1179).
>With ADE-4 example data I obtained the same outputs that are reported in
>the docs, but when I used Ter Braak's data I got a quite different
>ordination of the environmental variables. Do you know why that
>happened? If someone is interested in the problem, I can post the data
>files for that example.

Daniel Chessel
----------------------------------------------------------------
Universite Lyon 1 - Bat 401C - 69622 Villeurbanne CEDEX - France
Tel : 04 72 44 82 77 Fax : 04 72 43 11 41
----------------------------------------------------------------
ADE-4 sur Internet ---> http://biomserv.univ-lyon1.fr/ADE-4.html
----------------------------------------------------------------



This archive was generated by hypermail 2b30 : Sat Feb 10 2001 - 10:21:38 MET