# SVD et analyse des correspondances

```{r}
set.seed(1123)
```

## Profils lignes et profils colonnes

Soit une matrice de données $\mathbf{N} \in \mathbb{R}^{I \times J}$. Elle peut par exemple représenter $I$ individus décrits par $J$ variables ($n_{i,j}$ est alors la valeur, considérée ici positive, 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}$ peut être le décompte du nombre de personnes ayant des yeux de la $i$-ème couleur et des cheveux de la $j$-ème couleur). Notons :
$$n \triangleq \sum_{i=1}^{I} \sum_{j=1}^{J} n_{i,j}$$

Pour fixer les idées, nous considérons un exemple jouet en R.

```{r}
N <- matrix( c(1,2,1,3,2,5,1,7,3,6,2,8),
             nrow = 4, ncol = 3,
             dimnames = list( c("i1", "i2", "i3", "i4"),
                              c("v1", "v2", "v3")) )
n <- sum(sum(N))
print(N)
print(n)
```

Soit une matrice, dite de probabilités, $\mathbf{P} \triangleq \frac{1}{n} \mathbf{N}$.

```{r}
P <- (1/n) * N
print(P)
```

Notons $\mathbf{r} \triangleq \mathbf{P} \mathbf{1}$ les sommes des éléments de chaque ligne de $\mathbf{P}$ et $\mathbf{c} \triangleq \mathbf{P}^T \mathbf{1}$ les sommes des éléments de chaque colonne de $\mathbf{P}$.

```{r}
r <- rowSums(P)
c <- colSums(P)
print(r)
print(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}$.

```{r}
Dr <- diag(r)
Dc <- diag(c)
print(Dr)
print(Dc)
```

Notons $\mathbf{R} \triangleq \mathbf{D_r^{-1}} \mathbf{P}$ la matrice des \emph{profils lignes} et $\mathbf{C} \triangleq \mathbf{D_c^{-1}} \mathbf{P}^T$ la matrice des \emph{profils colonnes}.

```{r}
# Pour construire R ou C, il n'est pas nécessaire de construire Dr ou Dc.
# L'utilisation de la fonction sweep est plus efficace.
R <- sweep(P, MARGIN = 1, 1/r, '*')
C <- sweep(t(P), MARGIN = 1, 1/c, '*')
print(R)
print(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$.

```{r}
# On vérifie que la somme des éléments d'une ligne de R ou C est égale à 1.
print(rowSums(R))
print(rowSums(C))
```

## Principe d'équivalence distributionnelle

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$ :
$$d^2(\mathbf{r^{i_1}}, \mathbf{r^{i_2}}) = \sum_{j=1}^J \frac{\left( r^{i_1}_j - r^{i_2}_j \right)^2}{c_j}$$

Nous considèrerions de façon symétrique le nuage des profils colonnes.

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 également inchangées. Nous allons maintenant prouver que les distances entre profils colonnes sont également inchangées.
$$
d^2(\mathbf{c^{j_1}}, \mathbf{c^{j_2}}) = \sum_{i=1}^{I} \frac{\left(c^{j_1}_{i} - c^{j_2}_{i}\right)^2}{r_i} = \dots + \frac{1}{r_{i_1}} \left(\frac{P_{i_1,j_1}}{c_{j_1}} - \frac{P_{i_1,j_2}}{c_{j_2}}\right)^2 + \frac{1}{r_{i_2}} \left(\frac{P_{i_2,j_1}}{c_{j_1}} - \frac{P_{i_2,j_2}}{c_{j_2}}\right)^2 + \dots
$$

Nous nous concentrons d'abord sur le terme concernant la ligne $i_1$ pour trouver une ré-écriture en fonction de $i_0$.
\begin{align*}
 & \frac{1}{r_{i_1}} \left(\frac{P_{i_1,j_1}}{c_{j_1}} - \frac{P_{i_1,j_2}}{c_{j_2}}\right)^2 \\
= \{& \text{Un peu d'arithmétique pour, une étape après, faire apparaître $\mathbf{r^{i_1}}$...} \} \\
 & r_{i_1} \left(\frac{P_{i_1,j_1}}{r_{i_1} c_{j_1}} - \frac{P_{i_1,j_2}}{r_{i_1} c_{j_2}}\right)^2 \\
= \{& \text{Définition de $\mathbf{r^{i_1}}$} \} \\
 & r_{i_1} \left(\frac{r^{i_1}_{j_1}}{c_{j_1}} - \frac{r^{i_1}_{j_1}}{c_{j_2}}\right)^2 \\
= \{& \mathbf{r^{i_1}} = \mathbf{r^{i_0}} \} \\
 & r_{i_1} \left(\frac{r^{i_0}_{j_1}}{c_{j_1}} - \frac{r^{i_0}_{j_1}}{c_{j_2}}\right)^2 \\
= \{& \text{Définition de $\mathbf{r^{i_0}}$} \} \\
 & r_{i_1} \left(\frac{P_{i_0,j_1}}{r_{i_0} c_{j_1}} - \frac{P_{i_0,j_2}}{r_{i_0} c_{j_2}}\right)^2 \\
= \{& \text{Arithmétique} \} \\
 & \frac{r_{i_1}}{r_{i_0}^2} \left(\frac{P_{i_0,j_1}}{c_{j_1}} - \frac{P_{i_0,j_2}}{c_{j_2}}\right)^2 \\
\end{align*}

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$.
\begin{align*}
 & \frac{1}{r_{i_1}} \left(\frac{P_{i_1,j_1}}{c_{j_1}} - \frac{P_{i_1,j_2}}{c_{j_2}}\right)^2 + \frac{1}{r_{i_2}} \left(\frac{P_{i_2,j_1}}{c_{j_1}} - \frac{P_{i_2,j_2}}{c_{j_2}}\right)^2 \\
= \{& \text{Voir dérivation ci-dessus.} \} \\
 & \frac{r_{i_1}}{r_{i_0}^2} \left(\frac{P_{i_0,j_1}}{c_{j_1}} - \frac{P_{i_0,j_2}}{c_{j_2}}\right)^2 + \frac{r_{i_2}}{r_{i_0}^2} \left(\frac{P_{i_0,j_1}}{c_{j_1}} - \frac{P_{i_0,j_2}}{c_{j_2}}\right)^2 \\
= \{& r_{i_1} + r_{i_2} = r_{i_0} \; \text{ ; définitions de $\mathbf{c^{j_1}}$ et $\mathbf{c^{j_2}}$ } \} \\
 & \frac{\left(c^{j_1}_{i_0} - c^{j_2}_{i_0}\right)^2}{r_{i_0}}
\end{align*}

## Centre de masse

Calculons le centre de masse des profils lignes.
\begin{align*}
 & \frac{\sum_i r_i (P_{i,j} / r_i)}{\sum_i r_i} \\
= \{& \sum_i r_i = 1 \} \\
 & \sum_i P_{i,j} \\
= \phantom{\{}& \\
 & c_j \\
\end{align*}

## Inertie des écarts à l'indépendance

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 :
$$
\sum_i r_i \sum_j \frac{\left(r^i_j - c_j\right)^2}{c_j} = \sum_i r_i \sum_j \frac{\left(\frac{P_{i,j}}{r_i} - c_j\right)^2}{c_j} = \sum_i \sum_j \frac{\left(P_{i,j} - r_ic_j\right)^2}{r_i c_j}
$$

$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 devons ainsi calculer le SVD :
$$\mathbf{P} - \mathbf{r}\mathbf{c}^T = \mathbf{A}\boldsymbol{\Delta}\mathbf{B}^T \; \text{avec } \; \mathbf{A}^T\mathbf{D_r^{-1}}\mathbf{A} = \mathbf{B}^T\mathbf{D_c^{-1}}\mathbf{B} = \mathbf{I}$$

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 :
$$
\sum_j c_i \sum_i \frac{\left(c^j_i - r_i\right)^2}{r_i} = \sum_j c_j \sum_i \frac{\left(\frac{P_{i,j}}{c_j} - r_i\right)^2}{r_i} = \sum_i \sum_j \frac{\left(P_{i,j} - r_ic_j\right)^2}{r_i c_j}
$$

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 :
$$\sum_i \sum_j \frac{\left(P_{i,j} - r_ic_j\right)^2}{r_i c_j} \; = \; \sum_i \sum_j \left(\frac{P_{i,j} - r_ic_j}{\sqrt{r_i}\sqrt{c_j}}\right)^2$$

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) :
$$\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$$

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}$.
\begin{align*}
 & \tilde{\mathbf{Z}} = \mathbf{D_r^{-1/2}} \mathbf{Z} \mathbf{D_c^{-1/2}} \\
= \{& \text{ $\mathbf{D_r}$ et $\mathbf{D_c}$ sont diagonales donc inversibles } \} \\
 & \mathbf{Z} = \mathbf{D_r^{1/2}} \tilde{\mathbf{Z}} \mathbf{D_c^{1/2}} \\
= \{& \text{Définition du SVD de $\tilde{\mathbf{Z}}$} \} \\
 & \mathbf{Z} = \mathbf{D_r^{1/2}} \tilde{\mathbf{A}} \tilde{\boldsymbol{\Delta}} \tilde{\mathbf{B}}^T \mathbf{D_c^{1/2}} \\
= \{& \text{$\mathbf{A} \triangleq \mathbf{D_r^{1/2}} \tilde{\mathbf{A}}$ ; $\boldsymbol{\Delta} \triangleq \tilde{\boldsymbol{\Delta}}$ ; $\mathbf{B} \triangleq \mathbf{D_c^{1/2}} \tilde{\mathbf{B}}$} \} \\
 & \mathbf{Z} = \mathbf{A}\boldsymbol{\Delta}\mathbf{B}^T \\
\end{align*}

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.
\begin{align*}
 & \mathbf{A}^T\mathbf{D_r^{-1}}\mathbf{A} \\
= \{& \mathbf{A} \triangleq \mathbf{D_r^{1/2}} \tilde{\mathbf{A}} \} \\
 & \tilde{\mathbf{A}}^T \mathbf{D_r^{1/2}} \mathbf{D_r^{-1}} \mathbf{D_r^{1/2}} \tilde{\mathbf{A}} \\
= \{& \} \\
 & \tilde{\mathbf{A}}^T \tilde{\mathbf{A}} \\
= \{& \text{Définition du SVD de $\tilde{\mathbf{Z}}$} \} \\
 & \mathbf{I} \\
\end{align*}

De même pour montrer $\mathbf{B}^T\mathbf{D_c^{-1}}\mathbf{B} = \mathbf{I}$.

## Décomposition de l'inertie des profils

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 devions calculer le SVD :
$$\mathbf{P} - \mathbf{r}\mathbf{c}^T = \mathbf{A}\boldsymbol{\Delta}\mathbf{B}^T \; \text{avec } \; \mathbf{A}^T\mathbf{D_r^{-1}}\mathbf{A} = \mathbf{B}^T\mathbf{D_c^{-1}}\mathbf{B} = \mathbf{I}$$

Montrons que cette décomposition correspond bien à celle des profils lignes centrés.
\begin{align*}
 & \mathbf{D_r^{-1}}\mathbf{P} - \mathbf{1}\mathbf{c}^T = \boldsymbol\alpha \boldsymbol\Delta \boldsymbol\beta^T \; \text{avec} \; \boldsymbol\alpha^T\mathbf{D_r^{-1}}\boldsymbol\alpha = \boldsymbol\beta^T\mathbf{D_c^{-1}}\boldsymbol\beta = \mathbf{I} \\
= \{& \times \mathbf{D_r} \} \\
 & \mathbf{P} - \mathbf{r}\mathbf{c}^T = \left(\mathbf{D_r}\boldsymbol\alpha\right) \boldsymbol\Delta \boldsymbol\beta^T \; \text{avec} \; \left(\mathbf{D_r}\boldsymbol\alpha\right)^T\mathbf{D_r^{-1}}\left(\mathbf{D_r}\boldsymbol\alpha\right) = \boldsymbol\beta^T\mathbf{D_c^{-1}}\boldsymbol\beta = \mathbf{I} \\
\end{align*}

## Axes principaux et coordonnées principales des profils

Ainsi, les colonnes de $\mathbf{B}$ sont les 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 axes principaux, $\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 axes principaux) des profils lignes centrés (respectivement, des profils colonnes centrés).
\begin{align*}
 & \mathbf{F} \\
= \{& \text{Par définition de $\mathbf{F}$} \} \\
 & \left(\mathbf{D_r^{-1}}\mathbf{P} - \mathbf{1}\mathbf{c}^T\right) \mathbf{D_c^{-1}} \mathbf{B} \\
= \{& \mathbf{1} = \mathbf{D_r^{-1}} \mathbf{r} \} \\
 & \mathbf{D_r^{-1}} \left(\mathbf{P} - \mathbf{r}\mathbf{c}^T\right) \mathbf{D_c^{-1}} \mathbf{B} \\
= \{& \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{D_r^{-1}}\mathbf{A}\boldsymbol\Delta
\end{align*}
\begin{align*}
 & \mathbf{G} \\
= \{& \text{Par définition de $\mathbf{G}$} \} \\
 & \left(\mathbf{D_c^{-1}}\mathbf{P}^T - \mathbf{1}\mathbf{r}^T\right) \mathbf{D_r^{-1}} \mathbf{A} \\
= \{& \mathbf{1} = \mathbf{D_c^{-1}} \mathbf{c} \} \\
 & \mathbf{D_c^{-1}} \left(\mathbf{P}^T - \mathbf{c}\mathbf{r}^T\right) \mathbf{D_r^{-1}} \mathbf{A} \\
= \{& \text{Algèbre linéaire, propriétés de la transposée et du produit} \} \\
 & \mathbf{D_c^{-1}} \left(\mathbf{P} - \mathbf{r}\mathbf{c}^T\right)^T \mathbf{D_r^{-1}} \mathbf{A} \\
= \{& \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}\} \\
 & \mathbf{D_c^{-1}} \mathbf{B}\boldsymbol\Delta \\
\end{align*}

## Formules de transition
\begin{align*}
 & \mathbf{P} - \mathbf{r}\mathbf{c}^T = \mathbf{A}\boldsymbol\Delta\mathbf{B}^T \\
= \{& \} \\
 & \mathbf{P} = \mathbf{A}\boldsymbol\Delta\mathbf{B}^T + \mathbf{r}\mathbf{c}^T \\
= \{& \} \\
 & \mathbf{P}^T = \mathbf{B}\boldsymbol\Delta\mathbf{A}^T + \mathbf{c}\mathbf{r}^T \\
\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}$.} \} \\
 & \mathbf{P}^T\mathbf{F} = \mathbf{B}\boldsymbol\Delta^2 \\
= \{& \} \\
 & \mathbf{P}^T\mathbf{F}\boldsymbol\Delta^{-1} = \mathbf{B}\boldsymbol\Delta \\
\end{align*}

Nous montrerions de même :
\begin{align*}
& \mathbf{P}\mathbf{G} = \mathbf{A}\boldsymbol\Delta^2 \\
= \{& \} \\
 & \mathbf{P}\mathbf{F}\boldsymbol\Delta^{-1} = \mathbf{A}\boldsymbol\Delta \\
\end{align*}

Nous découvrons ainsi des formules de transition entre les coordonnées principales des profils lignes et celles des profils colonnes.
\begin{align*}
 & \mathbf{G} \\
= \{& \text{Voir précédente dérivation} \} \\
 & \mathbf{D_c^{-1}} \mathbf{B}\boldsymbol\Delta \\
= \{& \text{Nous avons montré ci-dessus : } \mathbf{B}\boldsymbol\Delta = \mathbf{P}^T\mathbf{F}\boldsymbol\Delta^{-1} \} \\
 & \mathbf{D_c^{-1}}\mathbf{P}^T\mathbf{F}\boldsymbol\Delta^{-1} \\
= \{& \text{Déf des coordonnées des profils colonnes dans l'espace euclidien original,} \\
\phantom{=}\phantom{\{}& \text{muni de la métrique $\mathbf{D_r^{-1}}$ : } \mathbf{C} \triangleq \mathbf{D_c^{-1}} \mathbf{P}^T \} \\
 & \mathbf{C}\mathbf{F}\boldsymbol\Delta^{-1}
\end{align*}
\begin{align*}
 & \mathbf{F} \\
= \{& \text{Voir précédente dérivation} \} \\
 & \mathbf{D_r^{-1}} \mathbf{A}\boldsymbol\Delta \\
= \{& \text{Nous avons montré ci-dessus : } \mathbf{B}\boldsymbol\Delta = \mathbf{P}^T\mathbf{F}\boldsymbol\Delta^{-1} \} \\
 & \mathbf{D_r^{-1}}\mathbf{P}\mathbf{G}\boldsymbol\Delta^{-1} \\
= \{& \text{Déf des coordonnées des profils lignes dans l'espace euclidien original,} \\
\phantom{=}\phantom{\{}& \text{muni de la métrique $\mathbf{D_c^{-1}}$ : } \mathbf{R} \triangleq \mathbf{D_r^{-1}} \mathbf{P} \} \\
 & \mathbf{R}\mathbf{G}\boldsymbol\Delta^{-1}
\end{align*}

## Inertie des profils selon les axes principaux

Vérifions maintenant que la décomposition de l'inertie du nuage des profils lignes (ou du nuage des profils colonnes) selon les axes principaux se représente par une matrice diagonale.
$$\mathbf{F}^T\mathbf{D_r}\mathbf{F} = \left(\mathbf{D_r^{-1}} \mathbf{A}\boldsymbol\Delta\right)^T\mathbf{D_r}\mathbf{D_r^{-1}} \mathbf{A}\boldsymbol\Delta = \boldsymbol\Delta^2$$
Ainsi, l'inertie du nuage centré des profils lignes est : $\sum_i r_i \sum_k f_{ik}^2 = \sum_k \delta_k^2$ (où $\delta_k \triangleq \boldsymbol\Delta_{k,k}$).
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 axes principaux ($\boldsymbol\Phi^T\mathbf{D_r}\boldsymbol\Phi = \mathbf{I}$).
$$\mathbf{G}^T\mathbf{D_c}\mathbf{G} = \left(\mathbf{D_c^{-1}} \mathbf{B}\boldsymbol\Delta\right)^T\mathbf{D_c}\mathbf{D_c^{-1}} \mathbf{B}\boldsymbol\Delta = \boldsymbol\Delta^2$$
Ainsi, l'inertie du nuage centré des profils colonnes est : $\sum_j c_j \sum_k g_{jk}^2 = \sum_k \delta_k^2$.
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 axes principaux ($\boldsymbol\Gamma^T\mathbf{D_c}\boldsymbol\Gamma = \mathbf{I}$).

## Relations barycentriques

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$ axes principaux. Nous ferions une observation symétrique à partir de l'égalité $\mathbf{F} = \mathbf{R}\mathbf{G}\boldsymbol\Delta^{-1}$.

```{r}
S <- sweep(P - r %*% t(c), 1, -r/2, FUN = "*")
S <- sweep(S, 2, -c/2, FUN = "*")
dec <- svd(S)
Phi <- sweep(dec$u, 1, -r/2, FUN="*")
F <- sweep(Phi, 2, dec$d, FUN="*")
Gam <- sweep(dec$v, 1, -c/2, FUN="*")
G <- sweep(Gam, 2, dec$d, FUN="*")
plot(c(F[,1], G[,1]), c(F[,2], G[,2]), xlab = "d1", ylab = "d2", type = "n",
     asp = 1, xaxt = "n", yaxt = "n")
text(c(F[,1], G[,1]), c(F[,2], G[,2]), c(rownames(P), colnames(P)))
points(0, 0, pch = 3)
```