Soit une matrice de données $\mathbf{N} \in \mathbb{R}^{I \times J}$. Elle peut représenter $I$ individus décrits par $J$ variables ($n_{i,j}$ est alors la valeur (qui doit être positive pour que les analyses à venir fassent sens) de la variable $j$ pour l'individu $i$) ou le croisement d'une première variable avec $I$ modalités et d'une seconde variable avec $J$ modalités (par exemple, couleurs des yeux et couleurs des cheveux d'un groupe de personnes, alors $n_{i,j}$ est le décompte du nombre de personnes ayant des yeux de la $i$-ème couleur et des cheveux de la $j$-ème couleur). Dans ce dernier cas, nous parlons de \emph{matrice de contingence}. Ce chapitre se concentre sur l'analyse des correspondances d'une matrice de contingence. Dans le chapitre suivant, nous montrerons comment analyser un jeu de données tabulaire multivarié (i.e. croisant individus et variables). Notons :
Pour fixer les idées, nous considérons un exemple développé par Jean-Paul Benzécri [@benzecri1985phosphates] dans un article qui introduit à l'analyse des correspondances sur la base de données du commerce mondial des phosphates (voir Table \@ref(tab:mat-N)). A l'intersection de la ligne $i$ et de la colonne $j$ du tableau de données, nous lisons, en milliers de tonnes de $P_2O_5$, la quantité importée par le pays $i$ depuis le pays $j$ durant 8 années, de 1973 à 1980. Les labels des pays importateurs et exportateurs sont donnés dans les Tables \@ref(tab:lblI) et \@ref(tab:lblJ).
Notons $\mathbf{r} \triangleq \mathbf{P} \mathbf{1}$ les sommes des éléments de chaque ligne de $\mathbf{P}$ (voir Table \@ref(tab:vec-r)) et $\mathbf{c} \triangleq \mathbf{P}^T \mathbf{1}$ les sommes des éléments de chaque colonne de $\mathbf{P}$ (voir Table \@ref(tab:vec-c)).
Notons $\mathbf{D_r} \triangleq diag(\mathbf{r})$ une matrice avec sur sa diagonale les éléments de $\mathbf{r}$ et $\mathbf{D_c} \triangleq diag(\mathbf{c})$ une matrice avec sur sa diagonale les éléments de $\mathbf{c}$.
Notons $\mathbf{r^i}$ la $i$-ème ligne de $\mathbf{R}$, c'est-à-dire le profil du $i$-ème individu si $\mathbf{N}$ est une matrice qui croise individus et variables. Notons $\mathbf{c^j}$ la $j$-ème ligne de $\mathbf{C}$, c'est-à-dire le profil de la $j$-ème variable si $\mathbf{N}$ est une matrice qui croise individus et variables.
$\mathbf{r^i}$ (resp. $\mathbf{c^j}$) est un vecteur dont la somme des éléments est égale à $1$ : $\sum_{j=1}^{J} r_j^i = 1$ (resp. $\sum_{i=1}^{I} c_i^j = 1$). $r_j^i$ représente la part relative de la variable $j$ dans la description de l'individu $i$. De même, $c_i^j$ représente la part relative de l'individu $i$ dans la description de la variable $j$.
Nous considérons le nuage des profils lignes $\left\{ \mathbf{r^i} \right\}_{i=1}^I$ avec leurs masses associées $\left\{ r_i \right\}_{i=1}^I$. Nous plongeons ce nuage dans un espace avec une métrique euclidienne pondérée, dite métrique du $\chi^2$ :
Montrons que ce choix de métrique assure le principe dit d'équivalence distributionnelle : si deux profils lignes sont identiques, leur remplacement par un unique profil ligne avec une masse égale à la somme des masses des deux profils initiaux n'impacte ni la géométrie des profils lignes ni celle des profils colonnes. C'est un principe essentiel sur lequel repose le bien fondé d'un regroupement des individus aux profils similaires (ou des variables aux profils similaires).
Considérons deux profils lignes pondérés $(r_{i_1}, \mathbf{r^{i_1}})$ et $(r_{i_2}, \mathbf{r^{i_2}})$ qui ont même profils : $\mathbf{r^{i_1}} = \mathbf{r^{i_2}}$. Considérons également un profil pondéré $(r_{i_0}, \mathbf{r^{i_0}})$ tel que $\mathbf{r^{i_1}} = \mathbf{r^{i_2}} = \mathbf{r^{i_0}}$ et $r_{i_0} = r_{i_1} + r_{i_2}$.
En remplaçant $(r_{i_1}, \mathbf{r^{i_1}})$ et $(r_{i_2}, \mathbf{r^{i_2}})$ par $(r_{i_0}, \mathbf{r^{i_0}})$, les valeurs $c_j$ sont inchangées et donc les distances $d^2(\mathbf{r^{i}}, \mathbf{r^{i'}})$ sont inchangées. Nous allons maintenant prouver que les distances entre profils colonnes sont inchangées.
Ainsi, nous pouvons montrer que les deux termes de $d^2(\mathbf{c^{j_1}}, \mathbf{c^{j_2}})$ qui concernent les lignes $i_1$ et $i_2$ peuvent être remplacés par le terme pour la nouvelle ligne $i_0$.
Donc, $\mathbf{c}$ est le centre de masse du nuage des profils lignes $\left\{ \mathbf{r^i} \right\}_{i=1}^I$ avec leurs masses associées $\left\{ r_i \right\}_{i=1}^I$. Par symétrie, $\mathbf{r}$ est le centre de masse du nuage des profils colonnes $\left\{ \mathbf{c^j} \right\}_{j=1}^J$ avec leurs masses associées $\left\{ c_j \right\}_{j=1}^J$.
Dans l'espace $\mathbb{R}^J$ muni de la métrique $\mathbf{D_c^{-1}}$, calculons l'inertie du nuage des profils lignes par rapport à leur centre de masse :
$P_{i,j} - r_ic_j$ est le terme général de la matrice $\mathbf{P} - \mathbf{r}\mathbf{c}^T$ qui représente les écarts au modèle d'indépendance. En effet, $\mathbf{r}\mathbf{c}^T$ est une matrice, dite de probabilité (car la somme de ses éléments vaut 1), de rang 1, dont les profils lignes sont tous égaux à $\mathbf{c}$ et dont les profils colonnes sont tous égaux à $\mathbf{r}$.
Ainsi, l'inertie du nuage des profils lignes par rapport à son centre de masse est aussi égale à l'inertie des écarts à l'indépendance quand l'espace des colonnes dans $\mathbb{R}^J$ est associé à la métrique $\mathbf{D_c^{-1}}$ et l'espace des lignes dans $\mathbb{R}^I$ est associé à la métrique $\mathbf{D_r^{-1}}$ qui correspond aux masses associées à chaque ligne.
## GSVD des profils lignes et des profils colonnes
Nous souhaitons représenter les profils lignes dans un repère dont les axes orthonormaux sont orientés selon les direction d'inertie maximale. Nous nommerons ces axes les \emph{axes principaux} ou encore les \emph{facteurs}. Nous devons ainsi calculer le SVD :
C'est une forme généralisée de la décomposition en valeurs singulières (GSVD) puisque $\mathbf{A}$ et $\mathbf{B}$ sont des matrices orthogonales dans des espaces euclidiens associés aux métriques respectives $\mathbf{D_r^{-1}}$ (pour prendre en compte les masses associées à chaque profil ligne) et $\mathbf{D_c^{-1}}$ (pour prendre en compte les échelles différentes de chaque colonne).
Dans l'espace $\mathbb{R}^I$ muni de la métrique $\mathbf{D_r^{-1}}$, calculons l'inertie du nuage des profils colonnes par rapport à leur centre de masse :
Nous retrouvons la même inertie des écarts à l'indépendance que celle découverte en considérant l'inertie du nuage des profils lignes. Nous pouvons donc représenter les profils lignes et les profils colonnes dans un même espace obtenu par le GSVD de $\mathbf{P} - \mathbf{r}\mathbf{c}^T$.
## Calcul du GSVD
Par ailleurs, remarquons que l'inertie des écarts à l'indépendance, avec l'espace des colonnes $\mathbb{R}^J$ associé à la métrique $\mathbf{D_c^{-1}}$ et l'espace des lignes $\mathbb{R}^I$ associé à la métrique $\mathbf{D_r^{-1}}$, est aussi l'inertie des écarts à l'indépendance standardisés, avec les espaces des colonnes et des lignes associés à la métrique identité usuelle :
Donc, nous pouvons découvrir un sous-espace de projection optimal (au sens de la préservation de l'inertie), pour les profils lignes et pour les profils colonnes, en calculant le SVD (classique) :
Détaillons cette égalité entre, d'une part le GSVD de $\mathbf{Z} = \mathbf{P} - \mathbf{r}\mathbf{c}^T = \mathbf{A}\boldsymbol{\Delta}\mathbf{B}^T$ sous la contrainte $\mathbf{A}^T\mathbf{D_r^{-1}}\mathbf{A} = \mathbf{B}^T\mathbf{D_c^{-1}}\mathbf{B} = \mathbf{I}$ et, d'autre part le SVD de $\tilde{\mathbf{Z}} = \mathbf{D_r^{-1/2}} \left(\mathbf{P} - \mathbf{r}\mathbf{c}^T\right) \mathbf{D_c^{-1/2}} \; = \; \tilde{\mathbf{A}} \tilde{\boldsymbol{\Delta}} \tilde{\mathbf{B}}^T$ sous la contrainte $\tilde{\mathbf{A}}^T \tilde{\mathbf{A}} = \tilde{\mathbf{B}}^T \tilde{\mathbf{B}} = \mathbf{I}$.
Vérifions qu'avec ces définitions de $\mathbf{A}$ et $\mathbf{B}$ en fonction de $\tilde{\mathbf{A}}$ et $\tilde{\mathbf{B}}$, la matrice $\mathbf{A}$ est bien $\mathbf{D_r^{-1}}$-orthogonale et la matrice $\mathbf{B}$ est bien $\mathbf{D_c^{-1}}$-orthogonale.
Nous avons montré plus haut que pour représenter les profils lignes dans un repère dont les axes orthonormaux sont orientés selon les direction d'inertie maximale (nous appelons ces axes les \emph{facteurs}), il faut calculer le SVD :
Ainsi, les colonnes de $\mathbf{B}$ sont les facteurs (ou \emph{axes principaux}), $\mathbf{D_c^{-1}}$-orthogonaux, pour le nuage centré des profils lignes. Nous montrerions de même que les colonnes de $\mathbf{A}$ sont les facteurs, $\mathbf{D_r^{-1}}$-orthogonaux, pour le nuage centré des profils colonnes.
Notons $\mathbf{F}$ (respectivement, $\mathbf{G}$) une matrice dont les lignes sont les coordonnées principales (i.e., les coordonnées selon les facteurs) des profils lignes centrés (respectivement, des profils colonnes centrés).
= \{& \mathbf{P} - \mathbf{r}\mathbf{c}^T = \mathbf{A}\boldsymbol\Delta\mathbf{B}^T \text{ et les colonnes de $\mathbf{B}$ sont $\mathbf{D_c^{-1}}$-orthogonales}\} \\
= \{& \mathbf{P} - \mathbf{r}\mathbf{c}^T = \mathbf{A}\boldsymbol\Delta\mathbf{B}^T \text{ et les colonnes de $\mathbf{A}$ sont $\mathbf{D_r^{-1}}$-orthogonales}\} \\
\Rightarrow \{& \text{Multiplication à droite par $\mathbf{F}$ ; $\mathbf{F} = \mathbf{D_r^{-1}}\mathbf{A}\boldsymbol\Delta$ ; $\mathbf{A}^T\mathbf{D_r^{-1}}\mathbf{A} = \mathbf{I}$ ;} \\
\phantom{\Rightarrow}\phantom{\{}& \text{Les lignes de $\mathbf{F}$ sont les coordonnées principales des profils lignes centrés. Donc $\mathbf{r}^T \mathbf{F} = \mathbf{0}$.} \} \\
Vérifions maintenant que la décomposition de l'inertie du nuage des profils lignes (ou du nuage des profils colonnes) selon les facteurs se représente par une matrice diagonale.
Les lignes de $\boldsymbol\Phi \triangleq \mathbf{F}\boldsymbol\Delta^{-1}$ sont appelées les coordonnées standard des profils lignes. Selon ces dernières, les profils lignes centrés ont une inertie unité selon les facteurs ($\boldsymbol\Phi^T\mathbf{D_r}\boldsymbol\Phi = \mathbf{I}$).
Les lignes de $\boldsymbol\Gamma \triangleq \mathbf{G}\boldsymbol\Delta^{-1}$ sont appelées les coordonnées standard des profils colonnes. Selon ces dernières, les profils colonnes centrés ont une inertie unité selon les facteurs ($\boldsymbol\Gamma^T\mathbf{D_c}\boldsymbol\Gamma = \mathbf{I}$).
En observant l'égalité $\mathbf{G} = \mathbf{C}\mathbf{F}\boldsymbol\Delta^{-1}$, nous remarquons que la $j$-ème ligne de $\mathbf{G}$ (i.e., les coordonnées principales du $j$-ème profil colonne) est une combinaison linéaire (viz., un barycentre) des lignes de $\mathbf{F}$ (i.e., c'est à dire de l'ensemble des profils lignes exprimés dans leurs coordonnées principales) suivi par un changement d'échelle $1/\delta_k$ selon chacun des $K$ facteurs (d'où l'expression de quasi-barycentre). Nous ferions une observation symétrique à partir de l'égalité $\mathbf{F} = \mathbf{R}\mathbf{G}\boldsymbol\Delta^{-1}$.
Comme $\mathbf{G} = \mathbf{C}\boldsymbol\Phi$, et que la somme des éléments d'une ligne de $\mathbf{C}$ (viz. un profil colonne), est égale à 1, un profil colonne exprimé dans ses coordonnées principales (viz. une ligne de $\mathbf{G}$) est un barycentre des profils lignes exprimés dans leurs coordonnées standard (viz. les lignes de $\boldsymbol\Phi$). Symétriquement, comme $\mathbf{F} = \mathbf{R}\boldsymbol\Gamma$, un profil ligne exprimé dans ses coordonnées principales est un barycentre des profils colonnes exprimés dans leurs coordonnées standard.
## Cartes pour représenter les profils
Récapitulons les résultats des dérivations ci-dessus :
Représentons sur une carte les coordonnées principales des dimensions n°1 et n°2 des profils lignes et des profils colonnes (voir Figure \@ref(fig:05-c-map-1-2)).
```{r 05-c-map-1-2, fig.width = 6, fig.cap = "Carte selon les facteurs 1 (x) et 2 (y)"}
Les contributions ont des valeurs entre $0$ et $1$. La somme des contributions des profils (ligne ou colonne) à un axe est égale à $1$.
Une heuristique utile : la contribution d'un profil ligne (resp. colonne) peut être considéré important quand sa valeur dépasse $1/I$ (resp. $1/J$).
```{r}
temp <- sweep(F^2, 1, r, FUN = "*")
CTRI <- sweep(temp, 2, dec$d^2, FUN = "/")
temp <- sweep(G^2, 1, c, FUN = "*")
CTRJ <- sweep(temp, 2, dec$d^2, FUN = "/")
```
Nous pouvons également mesurer la corrélation des axes principaux à un profil donné, c'est-à-dire la proportion de variance d'un profil qui peut être attribuée à un axe principal :
## Éléments d'interprétation des cartes des profils améliorées
Nous calculons les parts de l'inertie du plan factoriel 1-2 expliquées par chaque profil ligne et chaque profil colonne. Nous utilisons ces valeurs pour fixer la taille de la police des labels des profils. Nous empruntons cette technique à [@greenacre2010biplots] (pp.181-182).
```{r}
# Parts de l'inertie du plan factoriel 1-2 expliquée par chaque profil ligne
rowcon <- r * (F[,1]^2 + F[,2]^2) / sum(dec$d[1:2]^2)
rnames <- rownames(P)
rnames[rowcon < 0.01] <- "."
rsize <- log(1 + exp(1) * rowcon^0.3)
rsize[rowcon < 0.01] <- 1
# Parts de l'inertie du plan factoriel 1-2 expliquée par chaque profil colonne
colcon <- c * (G[,1]^2 + G[,2]^2) / sum(dec$d[1:2]^2)
cnames <- colnames(P)
cnames[colcon < 0.01] <- "."
csize <- log(1 + exp(1) * colcon^0.3)
csize[colcon < 0.01] <- 1
```
Nous générons la Figure \@ref(fig:05-c-map-1-2-better) qui est une carte améliorée du plan factoriel 1-2.
```{r 05-c-map-1-2-better, fig.width = 6, fig.cap = "Carte améliorée selon les facteurs 1 (x) et 2 (y)"}
plot(c(F[,1], G[,1]), c(F[,2], G[,2]), type = "n",
* Les plus gros pays exportateurs (resp. Maroc, URSS et USA) forment trois pôles d'attraction distincts.
* $eCC$ (URSS en tant qu'exportateur) et $iEE$ (autres pays d'Europe de l'Est en tant qu'importateurs) sont isolés à une extrémité du premier facteur et contribuent de façon majeure à l'inertie de ce dernier.
* Les USA et l'URSS s'opposent sur le premier axe factoriel.
* Les USA et le Maroc s'opposent sur le second axe factoriel.
* Sur le plan factoriel 1-2, autour des USA gravitent les importateurs : d'abord le Canada (presque entièrement expliqué par le plan factoriel 1-2), mais aussi le Japon, le Brésil et l'Inde (le Japon et le Brésil sont très bien expliqués par le plan factoriel 1-2, trandis que l'inertie de l'Inde est fortement expliquée par l'axe factoriel n°4 sur lequel elle s'oppose en particulier à l'Espagne, voir Table \@ref(tab:05-c-synth-row)).
On poursuivrait l'analyse en explorant par exemple la carte du plan factoriel 2-3 (voir Figure \@ref(fig:05-c-map-2-3)).
```{r}
# Parts de l'inertie du plan factoriel 2-3 expliquée par chaque profil ligne
rowcon <- r * (F[,2]^2 + F[,3]^2) / sum(dec$d[2:3]^2)
rnames <- rownames(P)
rnames[rowcon < 0.01] <- "."
rsize <- log(1 + exp(1) * rowcon^0.3)
rsize[rowcon < 0.01] <- 1
# Parts de l'inertie du plan factoriel 2-3 expliquée par chaque profil colonne
colcon <- c * (G[,2]^2 + G[,3]^2) / sum(dec$d[2:3]^2)
cnames <- colnames(P)
cnames[colcon < 0.01] <- "."
csize <- log(1 + exp(1) * colcon^0.3)
csize[colcon < 0.01] <- 1
```
```{r 05-c-map-2-3, fig.width = 6, fig.cap = "Carte des facteurs 2 (x) et 3 (y)"}
plot(c(F[,2], G[,2]), c(F[,3], G[,3]), type = "n",