Re: ACP ADE4-SAS

From: Monique Simier (Monique.Simier@mpl.ird.fr)
Date: Mon Jun 07 1999 - 12:41:29 MET DST


En complement a la reponse de Daniel Chessel, voici
l'ACP du fichier voiture par SAS.

Le programme suivant :
/*-----------------------------------------------*/
 data v;
     infile 'c:\monique\voiture\v.txt' dlm='/';
     input v1 v2 v3 v4 v5 v6;
 run;

 proc princomp data=v out=coord vardef=n;
 run;

 proc print data=coord;
     var prin1--prin6;
 run;
/*-----------------------------------------------*/

...fournira les resultats suivants en coherence avec les
resultats obtenus par ADE4 sur le meme jeu de donnees.

NB : La coherence est parfaite grace a l'option "vardef=n",
qui remplace l'option par defaut "vardef=DF".
En effet cette option specifie le diviseur utilise dans
les calculs de variance. Pour SAS, si on ne lui precise rien,
ce diviseur est toujours DF, c'est a dire Degrees of Freedom,
c'est a dire N-1 ! Or dans ADE4 le diviseur est N, c'est a dire
le nombre d'individus. Cette difference a des consequences sur
les valeurs de variance bien sur, mais aussi sur les coordonnees
des individus. Et c'est certainement a ce niveau que se situe la
divergence notee par Cecile Rebourg.

----------------------------------------------------------------------------

                                 The SAS System 10:39 Monday, June 7, 1999

                          Principal Component Analysis

      24 Observations
       6 Variables

                               Simple Statistics

                               V1 V2 V3

           Mean 1906.125000 113.6666667 183.0833333
           StD 516.793585 37.9678226 24.6845374

                               V4 V5 V6

           Mean 1110.833333 421.5833333 168.8333333
           StD 225.442466 40.4700678 7.4925889

===== Les moyennes et ecarts-types sont fournis d'abord. En elevant
      StD au carre, on verifie que l'on retrouve les valeurs de variances
      fournies par ADE4. Si on laissait vardef=DF, option par defaut,
      les valeurs seraient legerement differentes ===========================

                               Correlation Matrix

               V1 V2 V3 V4 V5 V6

   V1 1.0000 0.8610 0.6933 0.9049 0.8642 0.7091
   V2 0.8610 1.0000 0.8940 0.7461 0.6885 0.5523
   V3 0.6933 0.8940 1.0000 0.4914 0.5319 0.3632
   V4 0.9049 0.7461 0.4914 1.0000 0.9171 0.7909
   V5 0.8642 0.6885 0.5319 0.9171 1.0000 0.8638
   V6 0.7091 0.5523 0.3632 0.7909 0.8638 1.0000

====== Les correlations entre variables sont les memes, et ce quelle que
       soit l'option choisie pour Vardef ====================================

                     Eigenvalues of the Correlation Matrix

                Eigenvalue Difference Proportion Cumulative

     PRIN1 4.65602 3.74080 0.776004 0.77600
     PRIN2 0.91522 0.67479 0.152537 0.92854
     PRIN3 0.24043 0.13772 0.040072 0.96861
     PRIN4 0.10271 0.03805 0.017118 0.98573
     PRIN5 0.06466 0.04370 0.010776 0.99651
     PRIN6 0.02096 . 0.003493 1.00000

======= Il en va de meme pour les valeurs propres ===========================

                                  Eigenvectors

          PRIN1 PRIN2 PRIN3 PRIN4 PRIN5
PRIN6

V1 0.444202 0.033964 -.401432 -.050025 -.798600
-.010863
V2 0.414490 0.421222 -.039561 -.489717 0.306665
-.561550
V3 0.343540 0.663436 0.369935 0.319909 0.007185
0.450097
V4 0.430321 -.255169 -.484461 -.123152 0.472589
0.525836
V5 0.430209 -.295584 0.043984 0.711849 0.165972
-.437425
V6 0.377633 -.478319 0.681027 -.365291 -.131360
0.118797

====== Les vecteurs propres sont ici les "loadings" de Splus et les "scores
       normalises des colonnes" d'ADE4... =====================================

====== FIN DES RESULTATS FOURNIS DIRECTEMENT PAR PROC PRINCOMP. Il faut
       maintenant sauvegarder les coordonnees des individus dans un fichier
       par "outstat=..." et visualiser ce fichier qui contient entre autres,
      les coordonnees des individus sur les axes : ============================

  OBS PRIN1 PRIN2 PRIN3 PRIN4 PRIN5 PRIN6

    1 -2.02290 0.31994 0.53062 -0.40738 -0.11826 0.11018
    2 -0.77851 -0.13290 0.44155 0.21316 -0.22545 0.00177
    3 -1.28979 -0.43421 0.46900 -0.18998 -0.17224 0.19920
    4 -0.27382 -0.46470 0.18639 0.61123 0.02782 0.02836
    5 0.18051 -0.63715 -0.06456 0.63482 -0.32801 0.13095
    6 -0.50465 -0.20761 0.15106 0.41540 -0.06161 0.17526
    7 3.94563 0.83539 -0.51558 -0.13900 -0.12044 0.14432
    8 3.19390 0.77144 -0.01415 0.00759 -0.04612 -0.06517
    9 3.43962 0.60924 0.62811 -0.19317 0.08078 -0.04084
   10 1.49957 -0.77568 0.51198 0.40075 0.29725 -0.08906
   11 0.58653 0.14316 0.34883 0.19112 0.14911 -0.10106
   12 0.73933 -0.43460 0.10953 0.31902 0.10816 -0.06969
   13 1.70618 1.36274 -0.97748 -0.15795 0.08589 -0.15400
   14 1.41354 1.08933 0.14628 0.03314 0.54479 -0.05437
   15 2.79506 -0.12173 -0.38552 -0.04485 -0.74105 -0.07077
   16 0.92000 -0.88854 0.25987 -0.39792 0.15117 0.12679
   17 -0.02474 -1.82044 -1.24862 -0.09590 0.42761 0.27206
   18 1.22199 -2.38485 0.30092 -0.67059 -0.01907 -0.25555
   19 -3.49886 -0.90433 -0.07090 -0.11783 -0.02707 -0.18181
   20 -3.75769 -0.01492 -0.50799 0.14321 0.07313 -0.22308
   21 -2.61879 0.41507 -0.79900 -0.00187 -0.24542 -0.11869
   22 -2.28877 1.47879 0.10085 0.11017 0.21629 -0.06491
   23 -1.93307 0.90142 -0.04755 -0.35467 0.08438 0.24906
   24 -2.65026 1.29510 0.44636 -0.30852 -0.14162 0.05105

====== A ce niveau, conserver la valeur par defaut de vardef aurait conduit
       a des resultats legerement differents ==================================

Bien sur on notera aussi parfois des differences de signe, cf commentaire
de Daniel Chessel ...

Et voila, bilan du comparatif ACP :

A condition de bien specifier le diviseur utilise pour le calcul des variances,
l'ACP normee par SAS est la meme que celle d'ADE4, et par transitivite que
celle de Splus ! Francis Laloe propose de continuer le comparatif avec Genstat
si qqn est encore sceptique !

Bonne journee,
Monique

---------------------------------------------------
Monique SIMIER IRD (ex ORSTOM) / HEA
BP 5045 - 34 032 Montpellier Cedex 1 - FRANCE
Tel : 04.67.63.69.80 Fax : 04.67.63.87.78
---------------------------------------------------



This archive was generated by hypermail 2b30 : Sat Feb 10 2001 - 10:35:59 MET