Analyse factorielles de correspondances binaires (AFC) avec R et FactoMineR sur les données brutes (effectifs) des élections présidentielles américaines en 2016 (nombre de voies) (Sources : https://en.wikipedia.org/wiki/2016_United_States_presidential_election#Results_by_state)
Pour aller plus loin :
Avec mes fichiers exemples, préférez les paramètres nord-américains (“.” séparateur de décimales, “,” séparateur de miliers).
Salle C210, identifiant => “geographie2” !
### setwd("D:/Users/geographie2/vgodard/ADD/presidUSA16ation/R")
### respecter ce cheminement si "geographie2"
### getwd()
# Remove all objects
rm(list = ls() )
presidUSA16 <- read.csv("presidUSA16.csv",
sep = ";",
dec =".",### Si param. régio. non US, remplacer le "." par une ","
stringsAsFactors = FALSE) # si stringsAsFactors = FALSE on perd les modalités si qualitative
head(presidUSA16)
## STATE CLINTON TRUMP JOHNSON STEIN OTHERS MCMULLIN PRES_12
## 1 Alabama 729547 1318255 44467 9391 21712 0 R
## 2 Alaska 116454 163387 18725 5735 14307 0 R
## 3 Arizona 1161167 1252401 106327 34345 32968 17449 R
## 4 Arkansas 380494 684872 29949 9473 12712 13176 R
## 5 California 8753788 4483810 478500 278657 147244 39596 D
## 6 Colorado 1338870 1202484 144121 38437 27418 28917 D
Installer et exécuter préalablement la librairie “gplots”
### Avec la librairie gplots
## install.packages("gplots") ## si pas déjà installé !
library("gplots")
Quand la table de contingence ne contient pas trop de variables ou d’individus, il est possible de représenter les relations entre eux. Ici, ce n’est pas le cas.
# 1. Convertion des données en table
#dt <- as.table(as.matrix(presidUSA16))
# 2. Graphe
#balloonplot(t(dt), main ="presidUSA16", xlab ="", ylab="",
# label = FALSE, show.margins = FALSE)
Pour une petite table de contingence, il est possible de tester la significativité du lien de dépendance à l’aide d’un test du khi-deux.
# Calcul de la statistique du Chi-square (Khi-deux)
chisq <- chisq.test(presidUSA16[,2:7])
chisq
##
## Pearson's Chi-squared test
##
## data: presidUSA16[, 2:7]
## X-squared = 17400472, df = 250, p-value < 2.2e-16
# Calcul de la valeur du Khi-deux
chisq$statistic
## X-squared
## 17400472
# Calcul du degrés de liberté (Degree of freedom)
df <- (nrow(presidUSA16[, 2:7]) - 1) * (ncol(presidUSA16[, 2:7]) - 1)
df
## [1] 250
# Calcul de la P-value
pval <- pchisq(chisq$statistic, df = df, lower.tail = FALSE)
pval
## X-squared
## 0
# ou
chisq$p.value
## [1] 0
Au risque 5% (communément admis), on rejette l’hypothèse nulle d’indépendance entre les lignes et les colonnes.
Sur les grosses tables, il est pratiquement toujours significatif (p-value < 0.05)
Installer et exécuter préalablement les librairies “FactoMineR”, “factoextra”, puis les charger
### Avec la librairie FactoMineR et factoextra
## install.packages(c("FactoMineR", "factoextra")) ## si pas déjà installés !
library("FactoMineR")
library("factoextra")
L’AFC avec tous les éléments actifs (51 lignes et 7 variables)
- CA est le nom de l’AFC dans Factominer
- CA fonctionne a minima avec :
x : le data frame (la table de contingence) ;
ncp : nb de dimensions gardé dans le résultat final ;
graph : le graphe par défaut (pour ne pas afficher le graphe graph = FALSE) ;
- Si le nom des stations est en première colonne :
le tableau “utile” va de la deuxième colonne à la 8ème [,2:8] ;
il n’y a pas de variables quantitatives supplémentaires ;
la variable qualitative (supplémentaire) est la dernière et exprime, pour l’élection présidentielle de 2012, quel est le parti vainqueur.
res.presidUSA16.ca <- CA(presidUSA16[,2:8],
col.sup = NULL,
row.sup = NULL,
quali.sup=7,
axes = 1:2,
ncp = 6,
graph = TRUE)
Le graphique avec la fonction Biplot (cf. infra) apporte un net gain de lisibilité.
McMullin est un candidat indépendant résidant dans l’Utah (n°51). Faut-il traiter cet état ou ce candidat en “supplémentaire” (car ayant un comportement d’outlier) ? Si oui (cf. infra), les mettre en fin de tableaux pour faciliter leur désignation comme colonne ou ligne supplémentaire.
res.presidUSA16.ca <- CA(presidUSA16[,2:8],
col.sup = 6,
row.sup = NULL,
quali.sup=7,
axes = 1:2,
ncp = 5,
graph = TRUE)
La suite du tutoriel se fera avec McMullin en variable illustrative (col.sup). Si vous ne le souhaitez pas, à des fins de comparaisons par exemple, relancez l’exécution en mettant en commantaires la section 4.2.
Si ce n’est déjà fait, installer le package “factoextra”, puis le charger.
## install.packages("factoextra")
library("factoextra")
Si on veut connaître tous les résultats de la fonction CA dans Factominer et/ou factoextra :
### Listage des résultats
print(res.presidUSA16.ca)
## **Results of the Correspondence Analysis (CA)**
## The row variable has 51 categories; the column variable has 5 categories
## The chi square of independence between the two variables is equal to 7018356 (p-value = 0 ).
## *The results are available in the following objects:
##
## name description
## 1 "$eig" "eigenvalues"
## 2 "$col" "results for the columns"
## 3 "$col$coord" "coord. for the columns"
## 4 "$col$cos2" "cos2 for the columns"
## 5 "$col$contrib" "contributions of the columns"
## 6 "$row" "results for the rows"
## 7 "$row$coord" "coord. for the rows"
## 8 "$row$cos2" "cos2 for the rows"
## 9 "$row$contrib" "contributions of the rows"
## 10 "$col.sup$coord" "coord. for supplementary columns"
## 11 "$col.sup$cos2" "cos2 for supplementary columns"
## 12 "$quali.sup$coord" "coord. for supplementary categorical var."
## 13 "$quali.sup$cos2" "cos2 for supplementary categorical var."
## 14 "$call" "summary called parameters"
## 15 "$call$marge.col" "weights of the columns"
## 16 "$call$marge.row" "weights of the rows"
La somme des eigenvalues égale le nombre d’axes (ici 5).
Contrairement à l’ACP eigenvalue n’est jamais supérieure à 1.
eig.val <- get_eigenvalue(res.presidUSA16.ca)
eig.val
## eigenvalue variance.percent cumulative.variance.percent
## Dim.1 0.037699616 73.036783 73.03678
## Dim.2 0.009748608 18.886319 91.92310
## Dim.3 0.003110416 6.025918 97.94902
## Dim.4 0.001058660 2.050980 100.00000
Il est aussi possible d’apprécier les ruptures dans la succession des eigenvalues.
# Visualisation des eigenvalues
fviz_eig(res.presidUSA16.ca, addlabels = TRUE, ylim = c(0, 40)) # calibrer le ylim avec la lecture du tableau précédent
Il n’y a pas de règles pour choisir le nombre d’axes. Eventuellement, retenir les axes qui ont une eigenvalues d’une valeur supérieure à :
1/(nrow(presidUSA16)-1 = 1/51 soit environ 1.9%) ou
1/(ncol(presidUSA16[, 2:7])-1 = 1/4 soit environ 25%) Sources : http://www.sthda.com/english/articles/31-principal-component-methods-in-r-practical-guide/113-ca-correspondence-analysis-in-r-essentials/#r-code-to-compute-ca (According to M. T. Bendixen 1995)
# Visualisation des eigenvalues
sp <- fviz_eig(res.presidUSA16.ca,addlabels = TRUE, ylim = c(0, 62)) # calibrer le ylim avec la lecture du tableau précédent
sp + geom_hline (yintercept = 25, linetype = 2, color = "red") # tracer le yintercept avec la valeur de la *eigenvalues* moyenne
Cel laisse supposer qu’on pourrait presque se passer de l’axe 2 !
Les paramètres les plus utiles :
get_ca_row(res.presidUSA16.ca)
## Correspondence Analysis - Results for rows
## ===================================================
## Name Description
## 1 "$coord" "Coordinates for the rows"
## 2 "$cos2" "Cos2 for the rows"
## 3 "$contrib" "contributions of the rows"
## 4 "$inertia" "Inertia of the rows"
Interprétation des coordonnées des variables sur les axes factoriels (les colonnes : col).
res.presidUSA16.ca$col$coord ### [toutes les lignes ; colonnes 1 à 4, cf résultats *eigenvalue*]
## Dim 1 Dim 2 Dim 3 Dim 4
## CLINTON 0.181385328 -0.03423862 -0.009987601 -0.006482418
## TRUMP -0.204308474 0.00330614 -0.008524917 0.005351149
## JOHNSON -0.002025339 0.15676959 0.264693615 -0.067003794
## STEIN 0.370422416 0.13429959 0.175354745 0.285384957
## OTHERS 0.331693239 0.96861765 -0.210419142 -0.021294244
Valeur des coordonnées des variables quantitatives supplémentaires (les cols.).
res.presidUSA16.ca$col.sup$coord ## coord. for the supplementary columns
## Dim 1 Dim 2 Dim 3 Dim 4
## MCMULLIN -0.615083 0.5359832 0.4070686 0.3414092
Valeur des coordonnées des variables qualitatives.
res.presidUSA16.ca$quali.sup$coord ## "coord. for supplementary categorical var."
## Dim 1 Dim 2 Dim 3 Dim 4
## PRES_12.D 0.1014612 0.0001277029 -0.001204224 -0.0002999752
## PRES_12.R -0.1961930 -0.0002469361 0.002328580 0.0005800550
Interprétation des coordonnées des individus sur les axes factoriels
res.presidUSA16.ca$row$coord ### [ligne 1 à 51 ; colonnes 1 à 5, mais 4 dimensions !]
## Dim 1 Dim 2 Dim 3 Dim 4
## 1 -0.306613423 0.0412235166 -0.0817086860 0.0226261615
## 2 -0.087716266 0.4487503642 0.0222646913 0.0189826274
## 3 -0.043427370 0.0688930738 0.0343447270 0.0136590474
## 4 -0.291477674 0.0681286759 -0.0437246262 0.0446750956
## 5 0.299657734 -0.0213653057 0.0239418715 0.0251566941
## 6 0.037839316 0.0458230035 0.1009847085 -0.0169302674
## 7 0.105944416 -0.1067511718 0.0226902970 0.0192736621
## 8 0.088872808 -0.0651704284 0.0293597415 0.0127602419
## 9 0.867714076 -0.0636211097 -0.1305584926 -0.1005544096
## 10 -0.051592836 -0.0784244111 -0.0450746828 -0.0017432972
## 11 -0.104274363 -0.0866741350 -0.0105063051 -0.0542200424
## 12 0.339399920 -0.0031590426 0.0728958132 0.1024161673
## 13 -0.346929852 0.1308037272 0.0527865699 0.0626333085
## 14 0.140511507 -0.0989545928 0.0630930804 -0.0039607689
## 15 -0.239610108 -0.0205092543 0.0831119825 -0.0580078146
## 16 -0.104574726 0.1208986857 -0.0189591999 -0.0246199009
## 17 -0.221830774 0.0030827690 0.1309616986 0.0991100216
## 18 -0.341419264 -0.0289704898 -0.0024879594 0.0434776676
## 19 -0.231872125 -0.0280531986 -0.0653542282 0.0380759360
## 20 0.011343721 -0.0394567908 0.1460411630 0.0404994368
## 21 0.253579398 -0.0108132999 -0.0312126831 -0.0183459750
## 22 0.268442576 0.0375090759 0.0271169172 -0.0353267255
## 23 -0.031321853 -0.0374643079 0.0316982069 0.0015160849
## 24 0.014637656 0.1041334827 0.0043097651 0.0011712292
## 25 -0.221623244 -0.0531907195 -0.1107329265 0.0149568498
## 26 -0.216757651 0.0001444391 0.0202533692 0.0223747387
## 27 -0.221618865 0.0437784781 0.1545337503 0.0433435142
## 28 -0.251530104 0.1767186304 0.0297475651 0.0132034713
## 29 0.024199681 0.2215894131 -0.1206849306 -0.1103762478
## 30 -0.008485205 0.0842851961 0.0098164381 -0.0357762050
## 31 0.107323623 -0.1010793519 -0.0562971182 0.0022226925
## 32 0.059308461 0.0505184668 0.3217885805 -0.1174865302
## 33 0.204955921 -0.0725024064 -0.0338983524 0.0137084308
## 34 -0.071317418 0.0016585049 -0.0582810730 -0.0507054942
## 35 -0.345174731 0.2852542645 0.0907754565 0.0010631141
## 36 -0.112802549 -0.0220016237 0.0009304836 0.0033625645
## 37 -0.417681632 0.0127713872 0.1210223645 -0.0685255825
## 38 0.165537404 0.3040436991 0.0157387600 0.0629758451
## 39 -0.030364770 0.0040494157 -0.0601923355 -0.0001971201
## 40 0.159679196 0.0959180999 -0.0420046349 -0.0058402322
## 41 -0.181041652 -0.0353876449 -0.0428816515 0.0128242115
## 42 -0.332797566 0.1077247448 0.0750607992 -0.0852378279
## 43 -0.293244190 0.0159492688 -0.0259546151 0.0247646012
## 44 -0.129768019 -0.0619637128 0.0141498207 0.0040266333
## 45 0.380557925 0.6312288427 -0.2121528444 0.0100197254
## 46 0.025014456 -0.0181646964 -0.0265638240 -0.0323105564
## 47 0.204960921 0.3252257067 -0.0163981491 -0.0157985388
## 48 -0.443621730 0.0538381287 0.0148330487 0.0892404990
## 49 -0.021196474 0.0537096547 -0.0015298725 -0.0056721666
## 50 -0.430290781 0.4130031193 -0.0083775473 0.0231086359
## 51 -0.239354346 0.1246861541 0.0394492841 0.0176715790
Interprétation des contributions des variables sur les axes factoriels.
res.presidUSA16.ca$col$contrib ### [toutes les lignes ; colonnes toutes, cf résultats *eigenvalue*] pour rechercher les plus contributives dans un tableur.
## Dim 1 Dim 2 Dim 3 Dim 4
## CLINTON 4.226747e+01 5.82409892 1.553255 1.9224551
## TRUMP 5.128988e+01 0.05193925 1.082325 1.2529487
## JOHNSON 3.592535e-04 8.32383594 74.372244 14.0018241
## STEIN 3.900690e+00 1.98285325 10.594985 82.4497461
## OTHERS 2.541603e+00 83.81727264 12.397192 0.3730261
Interprétation des contributions des individus sur les axes factoriels.
res.presidUSA16.ca$row$contrib ### [ligne toutes ; colonnes toutes] pour rechercher les plus contributifs dans un tableur.
## Dim 1 Dim 2 Dim 3 Dim 4
## 1 3.894317798 2.722284e-01 3.351999115 0.7551810583
## 2 0.047823343 4.840426e+00 0.037344907 0.0797576887
## 3 0.095187820 9.264026e-01 0.721593877 0.3353323142
## 4 1.852171072 3.913134e-01 0.505174125 1.5494649246
## 5 24.773351274 4.870195e-01 1.916762692 6.2175770598
## 6 0.076851476 4.358400e-01 6.634302539 0.5478649947
## 7 0.359721987 1.412376e+00 0.199990600 0.4239548285
## 8 0.068276362 1.419803e-01 0.090314068 0.0501222599
## 9 4.572047532 9.505046e-02 1.254544543 2.1864520219
## 10 0.489163982 4.370917e+00 4.525425446 0.0198883515
## 11 0.870048666 2.324673e+00 0.107054975 8.3769982144
## 12 0.963917705 3.229399e-04 0.538939526 3.1256027774
## 13 1.511621724 8.309872e-01 0.424155445 1.7544893972
## 14 2.127947361 4.081345e+00 5.200186783 0.0602110732
## 15 3.063260332 8.678960e-02 4.467034439 6.3933268079
## 16 0.331462063 1.713238e+00 0.132050105 0.6542341634
## 17 1.130754563 8.445027e-04 4.776741504 8.0378549135
## 18 4.323798324 1.203914e-01 0.002782879 2.4969055864
## 19 2.119218280 1.199603e-01 2.040536499 2.0349795220
## 20 0.001872820 8.762397e-02 3.762305305 0.8500868854
## 21 3.477084987 2.445109e-02 0.638510377 0.6481107566
## 22 4.670551296 3.526407e-01 0.577649449 2.8803971882
## 23 0.091696708 5.073277e-01 1.138273479 0.0076504352
## 24 0.012087176 2.365685e+00 0.012700106 0.0027557882
## 25 1.158799003 2.581330e-01 3.506302928 0.1879481359
## 26 2.567838745 4.409431e-06 0.271726387 0.9743501952
## 27 0.474143719 7.155042e-02 2.794226579 0.6458401651
## 28 1.041986652 1.989029e+00 0.176645851 0.1022442104
## 29 0.012857110 4.168851e+00 3.875685857 9.5247944271
## 30 0.001043932 3.983312e-01 0.016934549 0.6608702107
## 31 0.870519294 2.986118e+00 2.903210046 0.0132961765
## 32 0.054381636 1.525856e-01 19.403433872 7.5993312245
## 33 6.319156702 3.057999e+00 2.095143364 1.0066857839
## 34 0.470474207 9.839486e-04 3.808185112 8.4690538103
## 35 0.800412140 2.113948e+00 0.670951208 0.0002703807
## 36 1.361292199 2.002706e-01 0.001122663 0.0430759683
## 37 4.945121364 1.787955e-02 5.031944554 4.7399300256
## 38 1.069880482 1.395755e+01 0.117220182 5.5140570003
## 39 0.110783119 7.619257e-03 5.276359430 0.0001662553
## 40 0.230615933 3.218015e-01 0.193421809 0.0109858364
## 41 1.331260370 1.966997e-01 0.905247599 0.2378743409
## 42 0.799639299 3.240105e-01 0.493035959 1.8680085321
## 43 4.187286284 4.790156e-02 0.397577124 1.0634492246
## 44 2.932628474 2.585776e+00 0.422612126 0.1005509353
## 45 0.888353323 9.451749e+00 3.346264664 0.0219298717
## 46 0.047980129 9.784303e-02 0.655811237 2.8506796606
## 47 2.718398142 2.646884e+01 0.210901163 0.5751551800
## 48 2.738623883 1.559843e-01 0.037109576 3.9464900123
## 49 0.025981944 6.451243e-01 0.001640489 0.0662556046
## 50 0.924125136 3.292363e+00 0.004245793 0.0949151587
## 51 0.992182128 1.041213e+00 0.326667100 0.1925926622
Interprétation des COS2 des variables sur les axes factoriels.
res.presidUSA16.ca$col$cos2 ### [toutes les lignes ; colonnes toutes, cf résultats *eigenvalue*] pour rechercher les mieux représentées dans un tableur.
## Dim 1 Dim 2 Dim 3 Dim 4
## CLINTON 9.615938e-01 0.0342625616 0.002915478 0.0012281781
## TRUMP 9.973183e-01 0.0002611581 0.001736366 0.0006841560
## JOHNSON 4.137873e-05 0.2479164127 0.706754491 0.0452877174
## STEIN 5.130542e-01 0.0674400858 0.114975101 0.3045305804
## OTHERS 1.006619e-01 0.8584132824 0.040509993 0.0004148739
Interprétation des COS2 des variables quantitatives supplémentaires sur les axes factoriels.
res.presidUSA16.ca$col.sup$cos2 ### [toutes les lignes ; colonnes toutes, cf résultats *eigenvalue*] pour rechercher les mieux représentées dans un tableur.
## Dim 1 Dim 2 Dim 3 Dim 4
## MCMULLIN 0.02130322 0.01617633 0.00933067 0.00656339
Interprétation des COS2 des variables qualitatives supplémentaires sur les axes factoriels.
res.presidUSA16.ca$quali.sup$cos2 ### [toutes les lignes ; colonnes toutes, cf résultats *eigenvalue*] pour rechercher les mieux représentées dans un tableur.
## Dim 1 Dim 2 Dim 3 Dim 4
## PRES_12.D 0.9998488 1.583931e-06 0.0001408476 8.739882e-06
## PRES_12.R 0.9998488 1.583931e-06 0.0001408476 8.739882e-06
Interprétation des qualités de représentation des individus sur les axes factoriels.
res.presidUSA16.ca$row$cos2 ### [ligne toutes ; colonnes toutes] pour rechercher les mieux représentées dans un tableur.
## Dim 1 Dim 2 Dim 3 Dim 4
## 1 0.913627981 1.651495e-02 6.488189e-02 4.975180e-03
## 2 0.036651503 9.592706e-01 2.361375e-03 1.716501e-03
## 3 0.235791518 5.934064e-01 1.474760e-01 2.332609e-02
## 4 0.908572724 4.963740e-02 2.044567e-02 2.134421e-02
## 5 0.981821586 4.991141e-03 6.267550e-03 6.919723e-03
## 6 0.102154888 1.498096e-01 7.275852e-01 2.045033e-02
## 7 0.477497211 4.847971e-01 2.190257e-02 1.580313e-02
## 8 0.599707575 3.224801e-01 6.544948e-02 1.236288e-02
## 9 0.960205231 5.161944e-03 2.173807e-02 1.289475e-02
## 10 0.245397511 5.670141e-01 1.873082e-01 2.801781e-04
## 11 0.507243546 3.504616e-01 5.149457e-03 1.371454e-01
## 12 0.879295969 7.617678e-05 4.056176e-02 8.006610e-02
## 13 0.834796189 1.186690e-01 1.932609e-02 2.720870e-02
## 14 0.588796700 2.920206e-01 1.187149e-01 4.678435e-04
## 15 0.842993048 6.176088e-03 1.014241e-01 4.940680e-02
## 16 0.412395027 5.511923e-01 1.355501e-02 2.285770e-02
## 17 0.645852449 1.247302e-04 2.251015e-01 1.289214e-01
## 18 0.977068564 7.034944e-03 5.188425e-05 1.584461e-02
## 19 0.892025029 1.305704e-02 7.086427e-02 2.405366e-02
## 20 0.005219491 6.314815e-02 8.651027e-01 6.652963e-02
## 21 0.978278891 1.778899e-03 1.482166e-02 5.120547e-03
## 22 0.955067445 1.864679e-02 9.745674e-03 1.654010e-02
## 23 0.289252075 4.138253e-01 2.962450e-01 6.776862e-04
## 24 0.019341144 9.788584e-01 1.676665e-03 1.238291e-04
## 25 0.762310105 4.391095e-02 1.903069e-01 3.472013e-03
## 26 0.980982275 4.355937e-07 8.564595e-03 1.045269e-02
## 27 0.639593683 2.495813e-02 3.109835e-01 2.446465e-02
## 28 0.662096738 3.268182e-01 9.260711e-03 1.824390e-03
## 29 0.007661707 6.423981e-01 1.905515e-01 1.593887e-01
## 30 0.008418645 8.306538e-01 1.126744e-02 1.496601e-01
## 31 0.462404584 4.101629e-01 1.272342e-01 1.983308e-04
## 32 0.028500056 2.067820e-02 8.389840e-01 1.118378e-01
## 33 0.864330371 1.081593e-01 2.364373e-02 3.866645e-03
## 34 0.460010190 2.487767e-04 3.072071e-01 2.325339e-01
## 35 0.570738465 3.897835e-01 3.947263e-02 5.414009e-06
## 36 0.962464497 3.661477e-02 6.548840e-05 8.552403e-04
## 37 0.899438274 8.409240e-04 7.551129e-02 2.420951e-02
## 38 0.220884105 7.451508e-01 1.996702e-03 3.196835e-02
## 39 0.202127472 3.594762e-03 7.942692e-01 8.518183e-06
## 40 0.698632408 2.520886e-01 4.834443e-02 9.345710e-04
## 41 0.909646636 3.475514e-02 5.103389e-02 4.564330e-03
## 42 0.818834008 8.579590e-02 4.165450e-02 5.371559e-02
## 43 0.982391800 2.906079e-03 7.695823e-03 7.006297e-03
## 44 0.805896025 1.837463e-01 9.581766e-03 7.759394e-04
## 45 0.246139391 6.771942e-01 7.649575e-02 1.706284e-04
## 46 0.231296264 1.219671e-01 2.608361e-01 3.859005e-01
## 47 0.283271724 7.132320e-01 1.813221e-03 1.683042e-03
## 48 0.946689014 1.394317e-02 1.058382e-03 3.830943e-02
## 49 0.133378746 8.563753e-01 6.948161e-04 9.551187e-03
## 50 0.519608996 4.786954e-01 1.969638e-04 1.498653e-03
## 51 0.766882921 2.081052e-01 2.083170e-02 4.180201e-03
fviz_ca_col(res.presidUSA16.ca,
col.col = "contrib",
axes = 1:2,
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"))
fviz_ca_row(res.presidUSA16.ca,
col.row = "contrib",
axes = 1:2,
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"))
fviz_ca_col(res.presidUSA16.ca,
col.col = "cos2",
axes = 1:2,
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"))
– en fonction du Cos2
## Lignes avec un cos2 > 0.8
fviz_ca_row(res.presidUSA16.ca,
select.row = list(cos2 = 0.8),
col.row = "cos2",
axes = 1:2,
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"))
– en fonction des contributions
## Top 5 des contributions lignes et colonnes
fviz_ca_biplot(res.presidUSA16.ca,
select.row = list(contrib = 5),
#select.col = list(contrib = 5), # si on veut toutes les variables
arrow = c (TRUE, TRUE), # pour mieux voir la proximité avec les axes
axes = 1:2,
repel = TRUE, # pour éviter les chevauchements dans biplot
)
Il est possible de faire des Biplots asymétriques, où les coordonnées sont pondérées par le poids de la valeur propre (en fait la racine carrée de la valeur propre eigenvalue). - Voir : Biplot asymétrique in : http://www.sthda.com/french/articles/38-methodes-des-composantes-principales-dans-r-guide-pratique/74-afc-analyse-factorielle-des-correspondances-avec-r-l-essentiel/#r-code-to-comput-ca
Identification des variables les plus remarquables (moins efficace que dans PCA car pas significatives en l’absence de test) par composante. Simple tri ds coordonnées.
### fonction dimdesc() [in FactoMineR]
res.desc <- dimdesc(res.presidUSA16.ca, axes = c(1,2))
– Pour les lignes (pour nous, les individus)
### Description de la dimension 1 pour 4 lignes
head(res.desc[[1]]$row, 4)
## coord
## 48 -0.4436217
## 50 -0.4302908
## 37 -0.4176816
## 13 -0.3469299
– Pour les colonnes (pour nous, les variables)
### Description de la dimension 1 pour 4 colonnes
head(res.desc[[1]]$col, 6)
## coord
## MCMULLIN -0.615083026
## TRUMP -0.204308474
## JOHNSON -0.002025339
## CLINTON 0.181385328
## OTHERS 0.331693239
## STEIN 0.370422416
– Pour les lignes (pour nous, les individus)
### Description de la dimension 2 pour toutes les lignes
res.desc[[2]]$row
## coord
## 7 -0.1067511718
## 31 -0.1010793519
## 14 -0.0989545928
## 11 -0.0866741350
## 10 -0.0784244111
## 33 -0.0725024064
## 8 -0.0651704284
## 9 -0.0636211097
## 44 -0.0619637128
## 25 -0.0531907195
## 20 -0.0394567908
## 23 -0.0374643079
## 41 -0.0353876449
## 18 -0.0289704898
## 19 -0.0280531986
## 36 -0.0220016237
## 5 -0.0213653057
## 15 -0.0205092543
## 46 -0.0181646964
## 21 -0.0108132999
## 12 -0.0031590426
## 26 0.0001444391
## 34 0.0016585049
## 17 0.0030827690
## 39 0.0040494157
## 37 0.0127713872
## 43 0.0159492688
## 22 0.0375090759
## 1 0.0412235166
## 27 0.0437784781
## 6 0.0458230035
## 32 0.0505184668
## 49 0.0537096547
## 48 0.0538381287
## 4 0.0681286759
## 3 0.0688930738
## 30 0.0842851961
## 40 0.0959180999
## 24 0.1041334827
## 42 0.1077247448
## 16 0.1208986857
## 51 0.1246861541
## 13 0.1308037272
## 28 0.1767186304
## 29 0.2215894131
## 35 0.2852542645
## 38 0.3040436991
## 47 0.3252257067
## 50 0.4130031193
## 2 0.4487503642
## 45 0.6312288427
– Pour les colonnes (pour nous, les variables)
### Description de la dimension 2 pour toutes les colonnes
res.desc[[2]]$col
## coord
## CLINTON -0.03423862
## TRUMP 0.00330614
## STEIN 0.13429959
## JOHNSON 0.15676959
## MCMULLIN 0.53598318
## OTHERS 0.96861765
– En premier, création des graphes
# Scree plot
scree.plot <- fviz_eig(res.presidUSA16.ca)
# Biplot of row and column variables
biplot.ca <- fviz_ca_biplot(res.presidUSA16.ca)
– En second, export des graphes
library(ggpubr)
## Export d'un pdf (un graphe par page)
ggexport(plotlist = list(scree.plot, biplot.ca),
filename = "res.presidUSA16.ca.pdf")
## Export d'un png par graphe
ggexport(plotlist = list(scree.plot, biplot.ca),
filename = "res.presidUSA16.ca.png")
## [1] "res.presidUSA16.ca%03d.png"
A l’aide de write.table() [package FactoMineR], write.infile semble inaccessible à la date de rédaction !
# Export into a TXT file de la qualité de représentation des variables
write.table(res.presidUSA16.ca$col$cos2, "res.presidUSA16.ca$col$cos2.txt", sep = "\t")
# Export into a CSV file des contributions des individus
write.table(res.presidUSA16.ca$row$contrib, file="res.presidUSA16.ca$row$contrib.csv", col.names=TRUE, sep = ";")
# Export into a CSV file des coordonnées des individus
write.table(res.presidUSA16.ca$row$coord, file="res.presidUSA16.ca$row$coord.csv", col.names=TRUE, sep = ";")
Le package FactoInvestigate décrit et interprète automatiquement les résultats de votre analyse factorielle (ACP, AFC ou ACM) en choisissant les graphes les plus appropriés pour le rapport (sources : http://factominer.free.fr/reporting/index_fr.html, mais ce package semble inaccessible à la date de rédaction !)
# install.packages("FactoInvestigate")
# library("FactoInvestigate")
# Investigate(res.presidUSA16.ca)