Re: ACC sous SAS/S-PLUS

From: Daniel Chessel (chessel@biomserv.univ-lyon1.fr)
Date: Tue Jan 18 2000 - 18:24:40 MET


Merci à Jean-Luc Dupouey de son message :

>J'ai lu avec intérêt la fiche thématique "Quand l'ACC est-elle une
>analyse canonique ?" (Chessel et Gimaret, 1998). Je ne suis pas un
>spécialiste du domaine, mais il me semble que ce papier répond bien à
>la question introductive de Mark Easter, qui est aussi la mienne,
>"Peut-on faire de l'ACC sous SAS ?".
>
>Si j'ai bien compris, une analyse discriminante avec chaque occurence
>d'espèce comme ligne-individu est une ACC. On peut donc relativement
>facilement faire de l'ACC avec SAS. Pourriez-vous me confirmer ces
>deux dernières assertions, avant que je ne les mette en oeuvre ?
>Connaissez-vous des personnes qui pratiquent l'ACC de cette façon ?
>Merci d'avance, et surtout merci pour ce papier !

La question est fort pertinente.

La réponse théorique est oui, on peut faire une ACC avec un programme
d'analyse canonique
Pour le prouver, on peut le faire sous S-PLUS
C'est assez instructif

Prenons la carte Doubs de la pile de données (données de J. Verneaux)
Le tableau de milieu DouMil (30-11) et le tableau de faune DouPoi (30-27)
donne une CCA avec les valeurs propres :

Num. Eigenval. R.Iner. R.Sum |Num. Eigenval. R.Iner. R.Sum |
01 +5.3452E-01 +0.6387 +0.6387 |02 +1.2184E-01 +0.1456 +0.7843 |
03 +6.8703E-02 +0.0821 +0.8664 |04 +4.9168E-02 +0.0588 +0.9252 |
05 +2.7090E-02 +0.0324 +0.9575 |06 +1.2941E-02 +0.0155 +0.9730 |
07 +9.8670E-03 +0.0118 +0.9848 |08 +5.4252E-03 +0.0065 +0.9913 |
09 +3.5336E-03 +0.0042 +0.9955 |10 +2.1655E-03 +0.0026 +0.9981 |
11 +1.6117E-03 +0.0019 +1.0000

Ces tableaux sont importés dans S-PLUS sous les noms mil et poi
> dim(poi)
[1] 30 27
> dim(mil)
[1] 30 11

-------------------------------------------------
numli_rep(as.vector(row(poi)[poi>0]),poi[poi>0])
-------------------------------------------------
ça fait très mal :
        poi[poi>0] est le vecteur des notes d'abondances du tableau faunistique (375)
        row(poi)[poi>0] est le numéro de ligne de chacune de ces notes
        rep(as.vector(row(poi)[poi>0]),poi[poi>0]) répéte ce numéro de ligne
autant de fois qu'indiqué par la note d'abondance (1004). Une note
d'abondance de 3 donne 3 lignes.
On peut dire 3 éléments de correspondance.

-------------------------------------------------
ligmil_function(i,tmil) {
        w0_tmil[i,]
        return(unlist(w0))
}
x_apply(matrix(numli,ncol=1),1,ligmil,tmil=mil)
-------------------------------------------------

Ce tableau de 1004 lignes contient les variables de milieu de la ligne du
tableau d'où vient l'élément de correspondance.

-------------------------------------------------
numco_rep(as.vector(col(poi)[poi>0]),poi[poi>0])
-------------------------------------------------
ligpoi_function(j,tpoi) {
        w0_rep(0,ncol(tpoi))
        w0[j]_1
        return(w0)
}
y_apply(matrix(numco,ncol=1),1,ligpoi,tpoi=poi)
-------------------------------------------------
Ce tableau de 1004 lignes contient les indicatrices des espèces avec 1 dans
la colonne de l'espèce concernant l'élément de correspondance.

-------------------------------------------------
cc0_cancor(t(x),t(y))
cc0$cor*cc0$cor
 [1] 0.534524357 0.121838565 0.068703183 0.049167872 0.027089749 0.012940921
 [7] 0.009866962 0.005425199 0.003533575 0.002165512 0.001611664
-------------------------------------------------
L'analyse canonique de x et y a pour carrés de corrélation canonique les
valeurs propres de l'ACC

Dans S-PLUS on a donc l'essentiel d'un programme d'ACC avec 10 lignes de
programmes
Il faut cependant que les données du tableau sites-espèces contiennent des
valeurs entières car la procédure cancor de S-PLUS utilise la métrique
canonique. Avec des poids quelconques, il faudrait raffiner.
A comparer avec SAS qui contient peut-être une analyse canonique avec poids
quelconque comme ADE-4.

C'est cependant un point de vue assez théorique. Les scores des éléments de
correpondance doivent redonner les scores des correspondances qui doivent
redonner les scores des espèces, des relevés et des variables. Une bonne
connaissance du système est indispensable.
Dans l'équipe ADE, Stéphane Dray s'occupe de ces problèmes et proposera une
ACC dépouillée comme une analyse canonique et des AFC sous doubles
contraintes comme dans Lavorel, S., Rochette, C. & Lebreton, J.D. (1999)
Functional groups for response to disturbance in Mediterranean old fields.
Oïkos : 480-498. Il y aura bientôt des nouveautés disponibles.

Cordialement
Daniel Chessel
Universite Lyon 1 - Biométrie et Biologie Evolutive - Bât 741
69622 Villeurbanne CEDEX
Tel : 04 72 44 82 77 - (33) 4 72 44 82 77



This archive was generated by hypermail 2b30 : Mon Feb 12 2001 - 09:24:53 MET