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