1. Importer les données

credit <- read.table("https://r-stat-sc-donnees.github.io/credit.csv", sep = ";", header=TRUE)
summary(credit)
                    Marche          Apport          Impaye            Assurance  Endettement
 Mobilier / Ameublement:17   Apport    :35   Imp_0     :42   AID           :31   End_1:18   
 Moto                  : 8   pas_Apport:31   Imp_1_ou_2: 8   AID + Chomage :13   End_2:15   
 Renovation            :18                   Imp_3 et +:16   Sans Assurance:12   End_3:19   
 Scooter               : 5                                   Senior        :10   End_4:14   
 Side-car              : 1                                                                  
 Voiture               :17                                                                  
        Famille    Enfants                      Logement                 Profession Intitule 
 Celibataire:17   Enf_0:39   Accedant a la propriete: 6   Cadre moyen         :17   MLLE: 5  
 Divorce    : 5   Enf_1: 8   Locataire              :23   Cadre sup.          : 8   MME : 8  
 Marie      :25   Enf_2:11   Loge par l'employeur   : 3   Ouvrier non qualifie:11   MR  :53  
 Union libre:13   Enf_3: 6   Loge par la famille    : 6   Ouvrier qualifie    :18            
 Veuf       : 6   Enf_4: 2   Proprietaire           :28   Retraite            :12            
                                                                                             
      Age       
 Min.   :20.00  
 1st Qu.:30.00  
 Median :40.00  
 Mean   :39.39  
 3rd Qu.:50.00  
 Max.   :60.00  
credit[,"Age"] <- factor(credit[,"Age"])
for (i in 1:ncol(credit)){ # permet d’avoir les graphes un à un
  par(ask=TRUE) # cliquer sur la fenêtre graphique
  plot(credit[,i])  # pour voir le graphe
} 

levels(credit[,"Marche"])[5] <- "Moto"

2. Choisir les variables et les individus actifs

library(FactoMineR)
res.mca <- MCA(credit, quali.sup = 6:11, level.ventil = 0)

4. Choisir le nombre d’axes

barplot(res.mca$eig[,2],names  =paste("Dim", 1:nrow(res.mca$eig)))

4. Analyser les résultats

plot(res.mca, invisible = c("var","quali.sup"))

plot(res.mca, invisible = c("var","quali.sup"), habillage = "Marche")

plot(res.mca, invisible = c("var","quali.sup"), habillage = 1)

plot(res.mca, invisible ="ind",
  title="Graphe des modalités actives et illustratives")

summary(res.mca, nbelements = 2, ncp = 2, nb.dec = 2)

Call:
MCA(X = credit, quali.sup = 6:11, level.ventil = 0) 


Eigenvalues
                      Dim.1  Dim.2  Dim.3  Dim.4  Dim.5  Dim.6  Dim.7  Dim.8  Dim.9 Dim.10 Dim.11
Variance               0.40   0.32   0.29   0.27   0.24   0.22   0.18   0.16   0.15   0.11   0.10
% of var.             15.33  12.38  11.25  10.47   9.14   8.33   6.94   6.28   5.84   4.42   3.75
Cumulative % of var.  15.33  27.71  38.96  49.43  58.57  66.90  73.83  80.11  85.95  90.37  94.11
                     Dim.12 Dim.13
Variance               0.09   0.07
% of var.              3.32   2.57
Cumulative % of var.  97.43 100.00

Individuals (the 2 first)
                         Dim.1   ctr  cos2   Dim.2   ctr  cos2  
1                      | -0.41  0.63  0.10 |  0.10  0.04  0.01 |
2                      | -1.07  4.38  0.47 |  0.18  0.16  0.01 |

Categories (the 2 first)
                         Dim.1   ctr  cos2 v.test   Dim.2   ctr  cos2 v.test  
Mobilier / Ameublement | -0.37  1.73  0.05  -1.74 | -0.77  9.52  0.21  -3.66 |
Moto                   |  0.33  0.74  0.02   1.06 |  0.31  0.83  0.02   1.00 |

Categorical variables (eta2)
                         Dim.1 Dim.2  
Marche                 |  0.62  0.39 |
Apport                 |  0.24  0.10 |

Supplementary categories (the 2 first)
                         Dim.1  cos2 v.test   Dim.2  cos2 v.test  
Celibataire            | -0.09  0.00  -0.41 | -0.60  0.13  -2.87 |
Divorce                |  0.12  0.00   0.29 | -0.46  0.02  -1.07 |

Supplementary categorical variables (eta2)
                         Dim.1 Dim.2  
Famille                |  0.09  0.19 |
Enfants                |  0.24  0.11 |
plot(res.mca, choix="var")

5. Décrire de façon automatique les principales dimensions de variabilité

dimdesc(res.mca)
$`Dim 1`
$`Dim 1`$`quali`
                   R2      p.value
Marche      0.6223755 2.517577e-12
Endettement 0.5453943 1.158572e-10
Assurance   0.5014062 1.950659e-09
Age         0.5167274 3.909675e-09
Profession  0.4271263 5.858295e-07
Apport      0.2439718 2.501666e-05
Logement    0.2456969 1.564047e-03
Enfants     0.2420185 1.790248e-03

$`Dim 1`$category
                   Estimate      p.value
End_4             0.6490289 3.348217e-06
AID               0.5302478 6.062708e-06
Apport            0.3124138 2.501666e-05
Scooter           0.8708506 5.847984e-05
20                0.6839112 1.465987e-04
Voiture           0.2666230 6.046787e-04
Locataire         0.1850891 4.462960e-03
Cadre sup.        0.4935416 1.724105e-02
Ouvrier qualifie  0.2793048 2.590897e-02
Enf_3             0.2626803 2.643160e-02
30                0.2368038 4.770509e-02
Imp_0            -0.2533889 3.813572e-02
Veuf             -0.4703765 3.573320e-02
Sans Assurance   -0.2116033 1.775794e-02
Enf_0            -0.5327472 5.408518e-05
Proprietaire     -0.4724738 3.198708e-05
pas_Apport       -0.3124138 2.501666e-05
Senior           -0.6672298 7.380627e-07
Renovation       -0.7662537 4.588116e-07
60               -0.7960377 8.760415e-08
Retraite         -0.8100583 8.760415e-08
End_2            -0.7087918 7.366689e-08


$`Dim 2`
$`Dim 2`$`quali`
                   R2      p.value
Impaye      0.4679498 2.330816e-09
Assurance   0.4620452 1.979222e-08
Marche      0.3895658 3.732164e-06
Profession  0.2440563 1.661355e-03
Endettement 0.1865282 4.857269e-03
Apport      0.1033137 8.498296e-03
Famille     0.1945394 9.447136e-03
Age         0.1781788 1.618904e-02
Logement    0.1734846 1.883183e-02
Intitule    0.1101503 2.532061e-02

$`Dim 2`$category
                          Estimate      p.value
Renovation              0.31270937 3.846425e-04
Imp_1_ou_2              0.59970776 3.923948e-04
End_3                   0.35505333 1.301175e-03
60                      0.45569950 1.365229e-03
Retraite                0.44776850 1.365229e-03
Senior                  0.51499350 2.390329e-03
Proprietaire            0.34322511 3.146222e-03
Apport                  0.18269451 8.498296e-03
Marie                   0.21469109 2.246058e-02
Imp_0                   0.06374578 3.531316e-02
Scooter                 0.40316183 4.833244e-02
Enf_0                  -0.29904573 3.719994e-02
Loge par la famille    -0.41561195 1.776378e-02
pas_Apport             -0.18269451 8.498296e-03
End_1                  -0.29113765 7.930101e-03
MLLE                   -0.48240681 6.593279e-03
Ouvrier non qualifie   -0.46052021 4.002427e-03
Celibataire            -0.33221991 3.339597e-03
Mobilier / Ameublement -0.51790848 1.276042e-04
Imp_3 et +             -0.66345355 4.172443e-08
AID + Chomage          -0.69851569 1.610889e-08


$`Dim 3`
$`Dim 3`$`quali`
                   R2      p.value
Impaye      0.5358722 3.155620e-11
Endettement 0.5132206 9.377477e-10
Assurance   0.2422502 6.034465e-04
Age         0.1649224 2.471698e-02
Marche      0.1518092 3.711724e-02

$`Dim 3`$category
                         Estimate      p.value
Imp_3 et +              0.1873515 5.249643e-05
End_4                   0.4364345 9.069521e-05
Imp_1_ou_2              0.3772195 1.937432e-04
End_2                   0.3332393 1.628844e-03
Senior                  0.3854726 5.513380e-03
Renovation              0.2709310 1.403508e-02
60                      0.2828459 3.317176e-02
Retraite                0.2728955 3.317176e-02
Enf_3                   0.3140764 3.709024e-02
50                     -0.3151674 2.724952e-02
End_3                  -0.2944259 1.734971e-02
Mobilier / Ameublement -0.2724059 1.364152e-02
Sans Assurance         -0.4407407 4.781466e-03
End_1                  -0.4752480 3.517051e-05
Imp_0                  -0.5645710 5.734520e-12

Factoshiny

library(Factoshiny)
res.shiny <- MCAshiny(credit)
LS0tDQp0aXRsZTogIkFuYWx5c2UgZGVzIENvcnJlc3BvbmRhbmNlcyBNdWx0aXBsZXMiDQphdXRob3I6ICJIdXNzb24gZXQgYWwuIg0KZGF0ZTogIjA1LzA5LzIwMTgiDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6IDMNCiAgICB0b2NfZmxvYXQ6IHllcw0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiAnMycNCiAgICB0b2NfZmxvYXQ6IHllcw0KLS0tDQoNCiMgMS4gSW1wb3J0ZXIgbGVzIGRvbm7DqWVzDQoNCmBgYHtyfQ0KY3JlZGl0IDwtIHJlYWQudGFibGUoImh0dHBzOi8vci1zdGF0LXNjLWRvbm5lZXMuZ2l0aHViLmlvL2NyZWRpdC5jc3YiLCBzZXAgPSAiOyIsIGhlYWRlcj1UUlVFKQ0Kc3VtbWFyeShjcmVkaXQpDQpgYGANCg0KYGBge3J9DQpjcmVkaXRbLCJBZ2UiXSA8LSBmYWN0b3IoY3JlZGl0WywiQWdlIl0pDQpgYGANCg0KYGBge3IsIGV2YWwgPSBGQUxTRX0NCmZvciAoaSBpbiAxOm5jb2woY3JlZGl0KSl7ICMgcGVybWV0IGTigJlhdm9pciBsZXMgZ3JhcGhlcyB1biDDoCB1bg0KICBwYXIoYXNrPVRSVUUpICMgY2xpcXVlciBzdXIgbGEgZmVuw6p0cmUgZ3JhcGhpcXVlDQogIHBsb3QoY3JlZGl0WyxpXSkgICMgcG91ciB2b2lyIGxlIGdyYXBoZQ0KfSANCmBgYA0KDQpgYGB7ciwgZWNobyA9IEZBTFNFfQ0KcGxvdChjcmVkaXRbLCJNYXJjaGUiXSkNCmBgYA0KDQpgYGB7cn0NCmxldmVscyhjcmVkaXRbLCJNYXJjaGUiXSlbNV0gPC0gIk1vdG8iDQpgYGANCg0KIyAyLiBDaG9pc2lyIGxlcyB2YXJpYWJsZXMgZXQgbGVzIGluZGl2aWR1cyBhY3RpZnMNCg0KYGBge3IsbWVzc2FnZT1GQUxTRSx3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShGYWN0b01pbmVSKQ0KcmVzLm1jYSA8LSBNQ0EoY3JlZGl0LCBxdWFsaS5zdXAgPSA2OjExLCBsZXZlbC52ZW50aWwgPSAwKQ0KYGBgDQoNCiMgNC4gQ2hvaXNpciBsZSBub21icmUgZOKAmWF4ZXMNCg0KYGBge3IsZmlnLndpZHRoPTYsZmlnLmhlaWdodD01fQ0KYmFycGxvdChyZXMubWNhJGVpZ1ssMl0sbmFtZXMgID1wYXN0ZSgiRGltIiwgMTpucm93KHJlcy5tY2EkZWlnKSkpDQpgYGANCg0KIyA0LiBBbmFseXNlciBsZXMgcsOpc3VsdGF0cw0KDQpgYGB7cixtZXNzYWdlPUZBTFNFLHdhcm5pbmc9RkFMU0V9DQpwbG90KHJlcy5tY2EsIGludmlzaWJsZSA9IGMoInZhciIsInF1YWxpLnN1cCIpKQ0KYGBgDQoNCmBgYHtyLG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRX0NCnBsb3QocmVzLm1jYSwgaW52aXNpYmxlID0gYygidmFyIiwicXVhbGkuc3VwIiksIGhhYmlsbGFnZSA9ICJNYXJjaGUiKQ0KcGxvdChyZXMubWNhLCBpbnZpc2libGUgPSBjKCJ2YXIiLCJxdWFsaS5zdXAiKSwgaGFiaWxsYWdlID0gMSkNCmBgYA0KDQoNCmBgYHtyLG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRX0NCnBsb3QocmVzLm1jYSwgaW52aXNpYmxlID0iaW5kIiwNCiAgdGl0bGU9IkdyYXBoZSBkZXMgbW9kYWxpdMOpcyBhY3RpdmVzIGV0IGlsbHVzdHJhdGl2ZXMiKQ0KYGBgDQoNCmBgYHtyLG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRX0NCnN1bW1hcnkocmVzLm1jYSwgbmJlbGVtZW50cyA9IDIsIG5jcCA9IDIsIG5iLmRlYyA9IDIpDQpgYGANCg0KYGBge3IsbWVzc2FnZT1GQUxTRSx3YXJuaW5nPUZBTFNFfQ0KcGxvdChyZXMubWNhLCBjaG9peD0idmFyIikNCmBgYA0KDQojIDUuIETDqWNyaXJlIGRlIGZhw6dvbiBhdXRvbWF0aXF1ZSBsZXMgcHJpbmNpcGFsZXMgZGltZW5zaW9ucyBkZSB2YXJpYWJpbGl0w6kNCg0KYGBge3IsbWVzc2FnZT1GQUxTRSx3YXJuaW5nPUZBTFNFfQ0KZGltZGVzYyhyZXMubWNhKQ0KYGBgDQojIEZhY3Rvc2hpbnkNCg0KYGBge3IsbWVzc2FnZT1GQUxTRSx3YXJuaW5nPUZBTFNFLCBldmFsID0gRkFMU0V9DQpsaWJyYXJ5KEZhY3Rvc2hpbnkpDQpyZXMuc2hpbnkgPC0gTUNBc2hpbnkoY3JlZGl0KQ0KYGBgDQoNCg0KDQo=