Init of the correspondence analysis chapter

This commit is contained in:
Pierre-Edouard Portier 2022-10-10 09:14:52 +02:00
parent 37687a4090
commit a70502cd06
2 changed files with 78 additions and 0 deletions

77
05_c_svd_ca.Rmd Normal file
View File

@ -0,0 +1,77 @@
# 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}$ (par exemple $I$ individus décrits par $J$ variables). Notons :
$$n \triangleq \sum_{i=1}^{I} \sum_{j=1}^{J} n_{i,j}$$
Pour fixer les idées, nous considérerons 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$). $\mathbf{r_j^i}$ représente la part relative de la variable $j$ dans la description de l'individu $i$. De même, $\mathbf{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))
```
## Métrique du $\chi^2$ et 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 pas 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).

View File

@ -8,6 +8,7 @@ rmd_files: ["index.Rmd",
"04_validation_croisee.Rmd",
"05_presentation_svd.Rmd",
"05_b_svd_pca.Rmd",
"05_c_svd_ca.Rmd",
"06_matrice_definie_non_negative.Rmd",
"07_multiplicateurs_de_lagrange.Rmd",
"08_derivation_svd.Rmd",