facto_summarize - Extraire et synth?tiser les r?sultats d'analyse factorielle - Logiciel R et analyse de donn?es


Description

Extraire et synth?tiser les r?sultats des fonctions, d?analyse en composante principale (ACP), d?analyse factorielle des correspondances simples (AFC) et d?analyse des correspondences multiples (ACM), issues de diff?rents packages R.

La fonction facto_summarize() [dans le package factoextra] est utilis?e.

Installer et charger factoextra

Le package devtools est requis pour l?installation de factoextra.

if(!require(devtools)) install.packages("devtools")
devtools::install_github("kassambara/factoextra")

Charger factoextra:

library("factoextra")

Utilisation

facto_summarize(X, element, result = c("coord", "cos2", "contrib"),
                axes = 1:2, select = NULL)

Arguments

Argument Description
X Un objet de classe PCA, CA et MCA [FactoMineR]; prcomp et princomp [stats]; dudi, pca, coa et acm [ade4]; ca et mjca [ca package].
element Valeurs possibles: ?row? et ?col? pour CA; ?var? et ?ind? pour PCA ou MCA.
result Le r?sultat ? extraire pour l??l?ment. Les valeurs possibles sont la combinaison de c(?cos2?, ?contrib?, ?coord?).
axes un vecteur num?rique pr?cisant les axes d?int?r?t. Les valeurs par d?faut sont 1:2 pour les axes 1 et 2.
select

une s?lection de variables. Les valeurs autoris?es sont NULL ou une liste contenant le nom des arguments, cos2 ou contrib. La valeur par d?faut est list(name = NULL, cos2 = NULL, contrib = NULL):

  • name: est un vecteur de caract?res contenant les noms des variables ? s?lectionner
  • cos2: si cos2 est dans [0, 1], ex: 0.6, alors les variables avec un cos2 > 0.6 sont s?lectionn?es. Si cos2 > 1, ex: 5, alors les top 5 variables avec le plus grand cos2 sont s?lectionn?es
  • contrib: si contrib > 1, ex: 5, alors les top 5 variables avec la plus grande contribution sont s?lectionn?es.

D?tails

Si length(axes) > 1, alors les colonnes contrib et cos2 correspondent au total des contributions et au total des cos2 des axes en question. Dans ce cas, la colonne coord est calcul?e comme suit x^2 + y^2 + ?+; x, y, ? sont les coordonn?es des points sur les axes sp?cifi?s.

Valeur

Une table de type data.frame contenant les valeurs (totales) coord, cos2 et contribution pour les axes.

Exemples

Analyse en composante principale

Une analyse en composantes principales (ACP) est effectu?e en utilisant la fonction int?gr?e de R prcomp() et le jeu de donn?es decathlon2 [dans factoextra]:

data(decathlon2)
decathlon2.active <- decathlon2[1:23, 1:10]
res.pca <- prcomp(decathlon2.active,  scale = TRUE)
# Synth?se de l'info des variables sur les axes 1:2
facto_summarize(res.pca, "var", axes = 1:2)[,-1]
                    Dim.1       Dim.2     coord      cos2  contrib
X100m        -0.850625692  0.17939806 0.7557477 0.7557477 75.57477
Long.jump     0.794180641 -0.28085695 0.7096035 0.7096035 70.96035
Shot.put      0.733912733 -0.08540412 0.5459218 0.5459218 54.59218
High.jump     0.610083985  0.46521415 0.5886267 0.5886267 58.86267
X400m        -0.701603377 -0.29017826 0.5764507 0.5764507 57.64507
X110m.hurdle -0.764125197  0.02474081 0.5844994 0.5844994 58.44994
Discus        0.743209016 -0.04966086 0.5548258 0.5548258 55.48258
Pole.vault   -0.217268042 -0.80745110 0.6991827 0.6991827 69.91827
Javeline      0.428226639 -0.38610928 0.3324584 0.3324584 33.24584
X1500m        0.004278487 -0.78448019 0.6154275 0.6154275 61.54275
# S?l?ctionner les top 5 variables qui contribuent le plus
facto_summarize(res.pca, "var", axes = 1:2,
           select = list(contrib = 5))[,-1]
                  Dim.1      Dim.2     coord      cos2  contrib
X100m      -0.850625692  0.1793981 0.7557477 0.7557477 75.57477
Long.jump   0.794180641 -0.2808570 0.7096035 0.7096035 70.96035
Pole.vault -0.217268042 -0.8074511 0.6991827 0.6991827 69.91827
X1500m      0.004278487 -0.7844802 0.6154275 0.6154275 61.54275
High.jump   0.610083985  0.4652142 0.5886267 0.5886267 58.86267
# S?lectionner les variables avec >= 0.6
facto_summarize(res.pca, "var", axes = 1:2,
           select = list(cos2 = 0.6))[,-1]
                  Dim.1      Dim.2     coord      cos2  contrib
X100m      -0.850625692  0.1793981 0.7557477 0.7557477 75.57477
Long.jump   0.794180641 -0.2808570 0.7096035 0.7096035 70.96035
Pole.vault -0.217268042 -0.8074511 0.6991827 0.6991827 69.91827
X1500m      0.004278487 -0.7844802 0.6154275 0.6154275 61.54275
# S?lectionner par le nom
facto_summarize(res.pca, "var", axes = 1:2,
     select = list(name = c("X100m", "Discus", "Javeline")))[,-1]
              Dim.1       Dim.2     coord      cos2  contrib
X100m    -0.8506257  0.17939806 0.7557477 0.7557477 75.57477
Discus    0.7432090 -0.04966086 0.5548258 0.5548258 55.48258
Javeline  0.4282266 -0.38610928 0.3324584 0.3324584 33.24584
# Synth?se de l'info des individus sur les axes1:2
facto_summarize(res.pca, "ind", axes = 1:2)[,-1]
                 Dim.1      Dim.2      coord      cos2   contrib
SEBRLE       0.1912074 -1.5541282  2.4518746 0.5050034 10.660324
CLAY         0.7901217 -2.4204156  6.4827039 0.5057178 28.185669
BERNARD     -1.3292592 -1.6118687  4.3650507 0.4871654 18.978481
YURKOV      -0.8694134  0.4328779  0.9432630 0.1199355  4.101143
ZSIVOCZKY   -0.1057450  2.0233632  4.1051806 0.5779938 17.848611
McMULLEN     0.1185550  0.9916237  0.9973729 0.1543704  4.336404
MARTINEAU   -2.3923532  1.2849234  7.3743818 0.5205607 32.062530
HERNU       -1.8910497 -1.1784614  4.9648401 0.5543447 21.586261
BARRAS      -1.7744575  0.4125321  3.3188820 0.6495490 14.429922
NOOL        -2.7770058  1.5726757 10.1850700 0.6469840 44.282913
BOURGUIGNON -4.4137335 -1.2635770 21.0776704 0.9301572 91.642045
Sebrle       3.4514485 -1.2169193 13.3933893 0.7593400 58.232127
Clay         3.3162243 -1.6232908 13.6324164 0.8523470 59.271375
Karpov       4.0703560  0.7983510 17.2051623 0.8138146 74.805053
Macey        1.8484623  2.0638828  7.6764252 0.8165181 33.375762
Warners      1.3873514 -0.2819083  2.0042163 0.2662078  8.713984
Zsivoczky    0.4715533  0.9267436  1.0812163 0.2190667  4.700940
Hernu        0.2763118  1.1657260  1.4352654 0.4666709  6.240284
Bernard      1.3672590  1.4780354  4.0539857 0.6274807 17.626025
Schwarzl    -0.7102777 -0.6584251  0.9380181 0.2170229  4.078340
Pogorelov   -0.2143524 -0.8610557  0.7873639 0.1337231  3.423321
Schoenbeck  -0.4953166 -1.3000530  1.9354762 0.5291161  8.415114
Barras      -0.3158867  0.8193681  0.7711485 0.1466237  3.352820

Analyse factorielle des correspondences

La fonction CA() dans le package FactoMineR est utilis?e:

library("FactoMineR")
data("housetasks")
res.ca <- CA(housetasks, graph = FALSE)
# Synth?se de l'info des "variables lignes" sur les axes 1:2
facto_summarize(res.ca, "row", axes = 1:2)[,-1]
                Dim.1      Dim.2     coord      cos2   contrib
Laundry    -0.9918368  0.4953220 1.2290841 0.9245395 12.403601
Main_meal  -0.8755855  0.4901092 1.0068569 0.9739621  8.833091
Dinner     -0.6925740  0.3081043 0.5745869 0.9303433  3.558222
Breakfeast -0.5086002  0.4528038 0.4637054 0.9051733  3.722406
Tidying    -0.3938084 -0.4343444 0.3437401 0.9748275  2.404604
Dishes     -0.1889641 -0.4419662 0.2310416 0.7642703  1.497001
Shopping   -0.1176813 -0.4033171 0.1765136 0.8113088  1.214543
Official    0.2266324  0.2536132 0.1156819 0.1194711  0.636781
Driving     0.7417696  0.6534143 0.9771724 0.7672477  7.788243
Finances    0.2707669 -0.6178684 0.4550760 0.9973464  2.948600
Insurance   0.6470759 -0.4737832 0.6431778 0.8848140  5.126245
Repairs     1.5287787  0.8642647 3.0841176 0.9326072 29.178865
Holidays    0.2524863 -1.4350066 2.1229933 0.9921522 19.477003
# Synth?se de l'info des "variables colonnes" sur les axes 1:2
facto_summarize(res.ca, "col", axes = 1:2)[,-1]
                  Dim.1      Dim.2      coord      cos2  contrib
Wife        -0.83762154  0.3652207 0.83499601 0.9543242 28.72693
Alternating -0.06218462  0.2915938 0.08889388 0.1098815  1.29467
Husband      1.16091847  0.6019199 1.71003929 0.9795683 37.35808
Jointly      0.14942609 -1.0265791 1.07619274 0.9979998 31.40952

Analyse des correspondances multiples

La fonction MCA() dans le package FactoMineR est utilis?e:

library(FactoMineR)
data(poison)
res.mca <- MCA(poison, quanti.sup = 1:2,
              quali.sup = 3:4, graph=FALSE)
# Synth?se de l'info des variables sur les axes 1:2
res <- facto_summarize(res.mca, "var", axes = 1:2)
head(res)
             name      Dim.1       Dim.2      coord      cos2   contrib
Nausea_n Nausea_n  0.2673909  0.12139029 0.08623348 0.3090033 0.6128991
Nausea_y Nausea_y -0.9581506 -0.43498187 1.10726185 0.3090033 2.1962218
Vomit_n   Vomit_n  0.4790279 -0.40919465 0.39690803 0.5953620 2.1649529
Vomit_y   Vomit_y -0.7185419  0.61379197 0.89304306 0.5953620 3.2474293
Abdo_n     Abdo_n  1.3180221 -0.03574501 1.73845988 0.8457372 5.1722773
Abdo_y     Abdo_y -0.6411999  0.01738946 0.41143974 0.8457372 2.5162430
# Synth?se de l'info des individus sur les axes 1:2
res <- facto_summarize(res.mca, "ind", axes = 1:2)
head(res)
  name      Dim.1       Dim.2     coord       cos2   contrib
1    1 -0.4525811 -0.26415072 0.2746052 0.46457063 0.4992822
2    2  0.8361700 -0.03193457 0.7002000 0.55670644 1.2730909
3    3 -0.4481892  0.13538726 0.2192032 0.59815656 0.3985513
4    4  0.8803694 -0.08536230 0.7823370 0.75476958 1.4224310
5    5 -0.4481892  0.13538726 0.2192032 0.59815656 0.3985513
6    6 -0.3594324 -0.43604390 0.3193260 0.06143111 0.5805927

Infos

Cette analyse a ?t? r?alis?e en utilisant le logiciel R (ver. 3.2.1) et factoextra (ver. 1.0.3)


Enjoyed this article? I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Twitter, Facebook or Linked In.

Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
Avez vous aimé cet article? Je vous serais très reconnaissant si vous aidiez à sa diffusion en l'envoyant par courriel à un ami ou en le partageant sur Twitter, Facebook ou Linked In.

Montrez-moi un peu d'amour avec les like ci-dessous ... Merci et n'oubliez pas, s'il vous plaît, de partager et de commenter ci-dessous!





Cette page a été vue 1444 fois
Licence - Pas d?Utilisation Commerciale - Partage dans les M?mes Conditions
Licence Creative Commons