---
title: "Analyse des Correspondances Multiples (ACM) avec FactoMineR"
author: "Fran�ois Husson"
output:
  pdf_document:
    fig_height: 6
    keep_tex: yes
  html_document: default
  word_document: default
---

Script et sorties R de la vid�o du didacticiel sur les donn�es de consommation du th�.
Le jeu de donn�es ```the.csv``` est disponible sur le site Web : <http://factominer.free.fr/livre>.


# Importation du jeu de donn�es depuis le site
```{r eval=FALSE}
the <- read.table("http://factominer.free.fr/livre/the.csv", 
                  header=TRUE, sep=";", fileEncoding="latin1")
```

```header=TRUE``` : pr�cise que le nom des variables est pr�sent

```sep=";"``` : pr�cise que le s�parateur de colonnes est le point-virgule (fr�quent dans les fichiers csv, pour une tabulation il faudrait �crire ```sep="\t"```)

```{r echo=FALSE}
the <- read.table("C:/Users/husson/Documents/home/huss/Enseign/cours/Films/Mooc_anado/Donnees/AnaDo_JeuDonnees_The.csv",header=TRUE,sep=";", fileEncoding="latin1")
summary(the)
```

# Chargement de FactoMineR
```{r}
library(FactoMineR)
```

# L'ACM et les graphes par d�faut
```{r}
res <- MCA(the, quanti.sup=22, quali.sup=c(19:21,23:36))
```

# R�sum� des principaux r�sultats
Pour �viter de surcharger les sorties, on a pr�cis� dans la fonction ```summary.MCA```, appel�e par ```summary```, que l'on veut les r�sultats sur les 8 (```nbelements=8```) premiers �l�ments (individus et modalit�s), et uniquement sur les 2 premi�res dimensions (```ncp=2```)

```{r}
summary(res, ncp=2, nbelements=8)    ## fonction summary.MCA
```

La fonction ```summary.MCA``` permet de pr�cider le nombre de composantes avec ```ncp``` pour lequel les r�sultats sont fournis, et l'argument ```nbelements=Inf``` permet de pr�ciser qu'on veut les r�sultats sur tous les individus.

```{r eval=FALSE}
summary(res, ncp=3, nbelements=Inf)
```

\newpage

# Description des dimensions
On peut d�crire les dimensions de l'ACM avec la commande suivante. Par d�faut, les 3 premi�res dimensions sont d�crites.
```{r eval=FALSE}
dimdesc(res)
```

Pour �viter d'avoir trop de modalit�s, on ne d�crit que les axes 1 et 2 et on conserve uniquement les modalit�s qui ont une probabilit� critique inf�rieure � $10^{-5}$ au lieu de 0.05 par d�faut.

```{r}
dimdesc(res, axes=c(1,2), proba=1e-05)
```

\newpage

# Graphes en �crivant certains libell�s et pas d'autres
```{r}
plot(res, label=c("var","quali.sup"), cex=0.7)
```

\newpage

# Graphes en rendant invisible certains �l�ments
Graphe avec les modalit�s actives et suppl�mentaires invisibles, et donc avec uniquement les individus :

```{r}
plot(res, invisible=c("var","quali.sup"), cex=0.7)
```

\newpage

Graphe avec les individus et les modalit�s suppl�mentaires invisibles, et donc avec uniquement les modalit�s actives :
```{r}
plot(res, invisible=c("ind","quali.sup"), autoLab="y", cex=0.7,
     title="Modalit�s actives")
```

\newpage

Graphe avec les individus et les modalit�s actives invisibles, et donc avec uniquement les modalit�s suppl�mentaires :
```{r}
plot(res, invisible=c("ind","var"), autoLab="y", cex=0.7,
     title="Modalit�s suppl�mentaires")
```

\newpage

# S�lection de certaines modalites
Les modalit�s peuvent �tre s�lectionn�es avec l'argument ```selectMod```.

```selectMod="cos2 0.7"``` : s�lectionne les modalit�s actives et suppl�mentaires qui ont, sur le plan trac�, une qualit� de projection sup�rieure � 0.7

```selectMod="cos2 5"``` : s�lectionne les 5 modalit�s, 5 actives et 5 suppl�mentaires, qui ont la meilleure qualit� de projection sur le plan trac�

```selectMod="contrib 5"``` : s�lectionne les 5 modalit�s (n�cessairement actives) qui ont le plus contribu� � la construction du plan trac�

```selectMod="dist 5"``` : s�lectionne les 5 modalit�s, 5 actives et ( suppl�mentaires) les plus loin de l'origine des axes


```{r}
plot(res, invisible="ind",autoLab="y",cex=0.7,selectMod="cos2 10")
plot(res, invisible="ind",autoLab="y",cex=0.7,selectMod="contrib 20")
```

\newpage

# S�lection des individus
Pour les individus, on utilise l'argument ```select``` au lieu de ```selectMod``` exactement de la m�me fa�on que pour les modalit�s.
```{r}
plot(res, invisible=c("var","quali.sup"),autoLab="y",cex=0.7,select="cos2 20")
```

\newpage

# S�lection des individus et des modalit�s
On peut construire un graphe simultan�e et s�lectionner � la fois des individus avec ```select``` et des modalit�s avec ```selectMod```.
```{r}
plot(res, autoLab="y",cex=0.7, select="cos2 20", selectMod="cos2 10")
```

\newpage

# Graphes des variables
On peut construire le graphe des liaisons. Pour les variables qualitatives, la corrodnn�e sur un axe est le rapport de corr�lation au carr� entre la variable qualitative et la dimension; pour les variables quantitatives suppl�mentaire, on calcule le coeeficient de corr�lation au carr� entre la dimension et la variable quantitative.

On zoome ici sur les graphes en pr�cisant les intervalles sur x et y avec ```xlim``` et ```ylim```.
```{r}
plot(res, choix="var",xlim=c(0,0.6),ylim=c(0,0.6))
plot(res, choix="var",xlim=c(0,0.6),ylim=c(0,0.6),invisible=c("quali.sup","quanti.sup"))
```

\newpage

# Graphes sur les axes 3 et 4
```{r}
plot(res,invisible=c("var","quali.sup"),cex=0.7,select="contrib 20",axes=3:4)
plot(res, invisible="ind",autoLab="y",cex=0.7,selectMod="cos2 20",axes=3:4)
```

\newpage

# Ellipses de confiance autour de modalit�s

On peut construire des ellipses de confiance autour des modalit�s de chaque variable. Par d�faut un graphe est construit par variable. On pr�cise ici avec ```keepvar``` les variables pour lesquelles nous voulons un graphe.

```{r}
plotellipses(res,keepvar=c(14:17))
```