Analyse factorielle des correspondances avec R

Plusieurs packages fournissent des outils permettant de réaliser une analyse factorielle des correspondances. On peut citer :

- dans le package MASS : corresp

- dans le package ade4 : dudi.coa

- dans le package FactoMineR (cf. http://factominer.free.fr) : CA

Les résultats les plus complets semblent être ceux fournis par la procédure CA.

Exemple :

Reprenons l'exemple "Régionales 2004 en Ile de France" déjà décrit dans les exemples traités sous Statistica.

Présentation des données :

Réf.  Examen de Statistiques de mai 2004, Module MULT, Maîtrise de Psychologie, Université René Descartes. Site Web : http://piaget.psycho.univ-paris5.fr/Statistiques/

 Les données qui suivent sont constituées par les résultats du premier tour des élections régionales de 2004 pour la région Ile de France. Pour chacun des huit départements de l’Ile de France (en lignes), on a les effectifs de suffrages pour chacune des huit listes candidates ainsi que les effectifs d’abstentions (en colonnes). L’objectif est d’analyser la structure des votes ainsi que les liaisons entre listes et départements.  Voici les codes de désignation des départements et des listes :

Départements

Code

 

Listes

Tête de liste

Code

Paris (75)

PARI

 

PS-Verts-MRG-MRC

Huchon

HUCH

Seine et Marne (77)

SMAR

 

UMP

Copé

COPE

Yvelines (78)

YVEL

 

UDF

Santini

SANT

Essonne (91)

ESSO

 

FN

Le Pen

LEPE

Hauts de Seine (92)

HTSS

 

PC-AGR-AC

Buffet

BUFF

Seine Saint-Denis (93)

STDE

 

LO-LCR

Laguiller

LAGU

Val de Marne (94)

VDMA

 

GE-Les Bleus

Pelegrin

PELE

Val d’Oise (95)

VDOI

 

MNR

Bay

BAY

 

 

 

Abstentions

 

ABST

Données : résultats du premier tour des régionales 2004 en Ile de France

 

HUCHON

COPE

SANTINI

LEPEN

BUFFET

LAGU

PELEG

BAY

ABSTEN

TOTAL

PARI

258495

184419

114222

57183

39052

22479

13277

5006

434078

1128211

SMAR

128715

114003

48782

71897

25732

19738

11980

7085

301478

729410

YVEL

150141

140634

96746

61676

23292

15998

13939

6486

329626

838538

ESSO

144581

95451

59967

54309

26732

17545

12108

5346

270414

686453

HTSS

143444

136677

122610

47279

32987

16438

11322

4690

314964

830411

STDE

107327

61507

40081

54412

49535

19619

8393

5176

287618

633668

VDMA

126569

93049

60234

47074

41897

17308

10969

4557

286913

688570

VDOI

111176

82524

47903

55165

24693

17018

9876

4825

262458

615638

TOTAL

1170448

908264

590545

448995

263920

146143

91864

43171

2487549

6150899

 Ce tableau peut être téléchargé au format .csv ou au format .Rdata (variable regionales.data).

Chargement des données :

A partir du fichier enregistré au format .csv

regionales.data <- read.csv2(file.choose(), row.names=1) # Choisir le fichier Regionales-2004-IDF.csv

A partir du fichier enregistré au format .Rdata

load(file.choose()) # Choisir le fichier Regionales-2004-IDF.Rdata

Produire les principaux résultats de l'AFC :

Réaliser l'AFC en extrayant 3 facteurs :

library(FactoMineR)
regionales.CA <- CA(regionales.data, ncp=3)
summary(regionales.CA)
     Length Class      Mode
eig  3      data.frame list
call 4      -none-     list
row  3      -none-     list
col  3      -none-     list
svd  3      -none-     list

Les valeurs propres

regionales.CA$eig
     eigenvalue inertia cumulative inertia
dim 1  1.512e-02 63.5780              63.58
dim 2  4.656e-03 19.5753              83.15
...
dim 7  2.436e-05  0.1024             100.00 

Les paramètres d'appel

regionales.CA$call$X
     HUCHON   COPE SANTINI LEPEN BUFFET  LAGU PELEG  BAY ABSTEN
PARI 258495 184419  114222 57183  39052 22479 13277 5006 434078
SMAR 128715 114003   48782 71897  25732 19738 11980 7085 301478
...
VDOI 111176  82524   47903 55165  24693 17018  9876 4825 262458

$marge.col
  HUCHON     COPE  SANTINI    LEPEN   BUFFET     LAGU    PELEG      BAY   ABSTEN
0.190289 0.147664 0.096010 0.072997 0.042908 0.023760 0.014935 0.007019 0.404420

$marge.row
  PARI   SMAR   YVEL   ESSO   HTSS   STDE   VDMA   VDOI
0.1834 0.1186 0.1363 0.1116 0.1350 0.1030 0.1119 0.1001

$ncp
[1] 3 

Les résultats relatifs aux lignes : coordonnées, contributions et qualités de représentation

regionales.CA$row
$coord
        Dim 1     Dim 2     Dim 3
PARI -0.10498  0.002721 -0.101621
SMAR  0.08206 -0.118056  0.033233
...
VDOI  0.08536 -0.051274  0.020569

$contrib
      Dim 1    Dim 2     Dim 3
PARI 13.3674  0.02916 55.609198
SMAR  5.2799 35.49506  3.845097
...
VDOI  4.8224  5.65131  1.243139 

$cos2
       Dim 1    Dim 2     Dim 3
PARI 0.51217 0.000344 4.799e-01
SMAR 0.29926 0.619429 4.909e-02
...
VDOI 0.65290 0.235580 3.791e-02 

Les résultats relatifs aux colonnes : coordonnées, contributions et qualités de représentation

regionales.CA$col
$coord
           Dim 1     Dim 2     Dim 3
HUCHON  -0.04214 -0.016535 -0.102397
COPE    -0.13050 -0.051260  0.008879
...
ABSTEN   0.05383  0.005755  0.005947 

$contrib
          Dim 1    Dim 2    Dim 3
HUCHON   2.2344  1.11738 58.57474
COPE    16.6286  8.33279  0.34177
...
ABSTEN   7.7502  0.28769  0.41996

$cos2
        Dim 1    Dim 2    Dim 3
HUCHON  0.1388 0.021367 0.819404
COPE    0.8139 0.125571 0.003768
...
ABSTEN  0.9251 0.010573 0.011290

 Valeurs singulières et vecteurs propres

regionales.CA$svd
$vs
[1] 0.122976 0.068237 0.058363 0.018685 0.012321 0.008701 0.004936

 $U
       [,1]     [,2]     [,3]     [,4]     [,5]    [,6]     [,7]
[1,] -0.8537  0.03987 -1.74120 -0.57025 -0.55232  0.1941 -0.14789
[2,]  0.6673 -1.73008  0.56943 -1.23665  0.62178  1.3220 -0.07956
...
[8,]  0.6941 -0.75142  0.35242  0.71844 -1.87108 -0.5778  1.86268 

$V
         [,1]     [,2]    [,3]    [,4]    [,5]    [,6]     [,7]
 [1,] -0.3427 -0.24232 -1.7545  0.8414  0.1922  0.2593 -0.39525
 [2,] -1.0612 -0.75120  0.1521 -1.7386  0.8783  0.4341  0.27047
...
 [9,]  0.4378  0.08434  0.1019 -0.2941 -0.8124 -0.6859  0.08478

 Graphique : représentation conjointe lignes et colonnes dans le plan (CP1, CP2), pour une installation de R où le device graphique "png" est disponible :

png("AFC-avec-R-Gra1.png")
plot.CA(regionales.CA, axes=c(1,2))
dev.off()

De même : représentation graphique conjointe lignes et colonnes dans le plan (CP2, CP3) :

png("AFC-avec-R-Gra2.png")
plot.CA(regionales.CA, axes=c(2,3))
> dev.off()

Une autre représentation graphique intéressante peut être obtenue à l'aide de la fonction table.value du package ade4 :

library(ade4)
png("/Users/carpenti/Desktop/AFC-avec-R-Gra3.png")
table.value(regionales.data, grid=T)
dev.off()

La commande dudi.coa du package ade4 ne permet pas d'obtenir facilement les contributions à l'inertie ni les qualités de représentation des individus. En revanche, elle donne également les taux de liaison :

library(ade4)
regionales.coa <- dudi.coa(regionales.data)
Select the number of axes:
3
options(digits=3)
regionales.coa$tab
     HUCHON  COPE    SANTINI LEPEN   BUFFET  LAGU    PELEG   BAY     ABSTEN
PARI  0.2041  0.1070  0.0545 -0.3057 -0.1933 -0.1614 -0.2120 -0.3678 -0.0486
SMAR -0.0726  0.0585 -0.3034  0.3503 -0.1778  0.1389  0.0997  0.3839  0.0220
YVEL -0.0591  0.1358  0.2017  0.0076 -0.3526 -0.1970  0.1130  0.1020 -0.0280
ESSO  0.1068 -0.0583 -0.0901  0.0838 -0.0924  0.0757  0.1810  0.1096 -0.0259
HTSS -0.0922  0.1146  0.5379 -0.2200 -0.0742 -0.1669 -0.0871 -0.1953 -0.0621
STDE -0.1099 -0.3427 -0.3412  0.1763  0.8219  0.3031 -0.1132  0.1638  0.1223
VDMA -0.0340 -0.0849 -0.0889 -0.0635  0.4181  0.0579  0.0666 -0.0571  0.0303
VDOI -0.0510 -0.0922 -0.1896  0.2275 -0.0652  0.1634  0.0741  0.1167  0.0541

Page rédigée le 26 mai 2007