L’Analyse Factorielle des Correspondances (AFC) est une méthode d’analyse des tables de contingence obtenues à partir des données de deux variables qualitatives \(X\) et \(Y\) sur \(n\) individus. Notons
les ensembles des modalités de \(X\) et \(Y\) respectivement.
Les données sont en général résumées dans une table de contingence :
\(b_1\)
\(\cdots\)
\(b_{l}\)
\(\cdots\)
\(b_L\)
Total
\(a_1\)
\(n_{1,1}\)
\(\cdots\)
\(n_{1,l}\)
\(\cdots\)
\(n_{1,L}\)
\(n_{1,+}\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
\(a_k\)
\(n_{k,1}\)
\(\cdots\)
\(n_{k,l}\)
\(\cdots\)
\(n_{k, L}\)
\(n_{k, +}\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
\(\vdots\)
\(a_K\)
\(n_{K, 1}\)
\(\cdots\)
\(n_{K,l}\)
\(\cdots\)
\(n_{K, L}\)
\(n_{K, +}\)
Total
\(n_{+,1}\)
\(\cdots\)
\(n_{+, l}\)
\(\cdots\)
\(n_{+,L}\)
\(n\)
\(n_{k,l}\) est l’effectif du couple \((a_k, b_l)\)
\(n_{k,+}=\sum_{l=1}^Ln_{k, l}\) est l’effectif marginal de \(a_k\)
\(n_{+, l}=\sum_{k=1}^Kn_{k,l}\) est l’effectif marginal de \(b_l\).
Objectif: Investiguer les correspondances entre les modalités des deux variables.
1 Quelques statistiques
1.1 Fréquences
Definition 1
Fréquence du couple \((a_k, b_l)\)
\[
f_{k,l}=\dfrac{n_{k,l}}{n}
\]
Fréquence marginale de \(a_k\)\[
f_{k,+}=\dfrac{n_{k,+}}{n}=\sum_{l=1}^Lf_{k,l}
\]
Fréquence marginale de \(b_l\)\[
f_{+,l}=\dfrac{n_{+,l}}{n}=\sum_{k=1}^Kf_{k,l}
\]
1.2 Test du chi carré d’indépendance
Il permet de tester \[
\mathcal{H}_0:\quad X \text{ et } Y \text{ sont indépendantes}
\] contre \[
\mathcal{H}_1:\quad X\text{ et }Y\text{ sont liées}.
\]Effectifs attendus sous \(\mathcal{H}_0\)
Proposition 2 (Les centres de gravités) Les centres de gravités des nuages \(\mathcal{N}_r\) et \(\mathcal{N}_c\) sont respectivement: \[
g_r=\left(f_{+,l}\right)_{l=1}^L\in\mathbb{R}^L
\] et \[
g_c=\left(f_{k,+}\right)_{k=1}^K\in\mathbb{R}^K.
\]
Proof 4 (En exercice.).
2 Espaces métriques des profils
2.1 Métrique sur l’espace des profils lignes
Sur l’espace des profiles lignes, on considère le produit scalaire défini par la métrics \[
M = nD_c^{-1}
\]
Exercise 1
Montrer que la distance associée à \(M\) est donnée par \[
d_M^2\left(L_{k}, L_{k'}\right)=\sum_{l=1}^L\dfrac{n}{n_{+,l}}\left(\dfrac{n_{k,l}}{n_{k,+}}-\dfrac{n_{k',l}}{n_{k',+}}\right)^2
\]
Definition 4 (Métrique de \(\chi^2\)) La métrique définie par \(M\) est encore appelée métrique du \(\chi^2\) et la distance associée notée \(d_{\chi^2}\).
2.2 Métrique sur l’espace des profils colonnes
Sur l’espace des profiles lignes, on considère le produit scalaire défini par la métrics \[
M = nD_r^{-1}
\]
Exercise 2
Montrer que la distance associée à \(M\) est donnée par \[
d_M^2\left(C_{l}, C_{l'}\right)=\sum_{k=1}^K\dfrac{n}{n_{k,+}}\left(\dfrac{n_{k,l}}{n_{+,l}}-\dfrac{k,l'}{n_{+,l'}}\right)^2
\]
2.3 Inertie
Definition 5 (Inertie du nuage des profils-lignes \(\mathcal{N}_r\))\[
I\left(\mathcal{N}_r\right)=\sum_{k=1}^Kf_{k,+}d_{\chi^2}^2\left(L_k, g_r\right)
\]
Definition 6 (Inertie du nuage des profils-colonnes \(\mathcal{N}_c\))\[
I\left(\mathcal{N}_c\right)=\sum_{l=1}^Lf_{+,l}d_{\chi^2}^2\left(C_l, g_c\right)
\]
L’AFC est une ACP sur l’un des nuages des profiles. En effet, les les sous-sections suivantes montrent que les ACP sur les deux nuages de profils sont équivalentes.
3.1 ACP sur les profils lignes
Matrice à décomposée
Reppelons que, pour les données \(X\), les poids \(D\) et la métrique \(M\), l’ACP est faite sur les données centrée \(Y=X-\mathbf{1}_n{}^tg\): on la note alors ACP\((Y, D, M)\). L’ACP\((Y, D, M)\) repose sur la décomposition spectrale de la matrice \(S^2M\), où \[
S^2={}^tYDY={}^tXDX-g{}^tg
\] est la matrice des variances-covariances.
Dans le cas des profiles lignes, on a: \[
\left(X, D, M\right) = \left(T_r, \dfrac{1}{n}D_r, nD_c^{-1}\right).
\]
Ainsi
\[
S^2M={}^tT_rT_c-ng_r{}^tg_rD_c^{-1}.
\]
Proposition 4 (ACP des profils lignes) Supposons que \(rg({}^tT_rT_c)=r\). Notons \(\mathcal{S}_{L-1}=\left\{\left(\pi_l\right)_{l=1}^L|\ \sum_{l=1}^L\pi_l=1\right\}\).
\(g_r\) est \(nD_c^{-1}\)-normé.
Pour tout \(x\in\mathcal{S}_{L-1}\), \((x-g_r)\perp_{nD_c^{-1}}g_r\).
Les matrices \({}^tT_rT_c\) et \(S^2M\) se diagonalisent dans la même base \(nD_c^{-1}\)-orthonormée.
\(g_r\) est un vecteur propre de \(S^2M\) associé à la valeur propre \(0\).
\(g_r\) est un vecteur propre de \({}^tT_rT_c\) associé à la valeur propre \(1\).
Les autres vecteurs propres de \(S^2M\) et \({}^tT_rT_c\) sont \(nD_c^{-1}\)-orthogonaux à \(g_r\), et sont associés aux mêmes \(r-1\) valeurs propres \(\lambda_1>\cdots>\lambda_r>0\). pour \(L\) et \(S^2M\).
Proof 4 (En exercice).
Vérifier que \(n{}^tg_rD_c^{-1}g_r=1\).
Montrer que pour tout \(x\in\mathcal{S}_{L-1}\), \(x-g_r\) est \(nD_c^{-1}\)-orthogonal à \(Og_r\).
Montrer \(ng_r{}^tg_rD_c^{-1}\) est la matrice de la projection \(nD_c^{-1}\)-orthogonale sur la droite \((Og_r)\).
Montrer que \(g_r\) est un vecteur propre de \(S^2M\) associé à la valeur propre \(0\).
Montrer que \(g_r\) est un vecteur propre de \({}^tT_rT_c\) associé à la valeur propre \(1\).
En déduire que tout vecteur propre de \(S^2M\) est aussi vecteur propre de \({}^tT_rT_c\) associé à la même valeur propre.
Note
Daprès Proposition 4, il est inutile de centrer le tableau des profils-lignes;
À la valeur propre \(1\) de \({}^tT_rT_c\) associée au vecteur propre \(g_r\), on fera correspondre la valeur propre \(0\) de \(S^2M\) pour se ramener à une étude centrée en \(g_r\).
Composantes principales
Notons \(\left(u^k\right)_{k=1}^{r}\) les vecteurs propres \(nD_c^{-1}\)-orthonormés de \(L\), autre que \(g_r\), rangés dans l’ordre décroissant des valeurs propres \(\lambda_1>\cdots>\lambda_{r}>0\). Posons \[
U=\begin{bmatrix}
u^1 & \cdots & u^r
\end{bmatrix}\in\mathbb{R}^{L\times r},
\]
et \[
\Lambda = diag\left(\lambda_k\right)_{k=1}^{r}\in\mathbb{R}^{r\times r)}.
\]
La matrice des composantes principale est \[
C = nT_rD_c^{-1}U.
\]
Proposition 5
Les CP sont centrées: \[\dfrac{1}{n}{}^tCD_r\mathbb{1}_K=0_K\]
Les CP sont décorrelées est de variances les \(\lambda_k\): \[\dfrac{1}{n}{}^tCD_rC=\Lambda.\]
3.2 ACP sur les profils colonnes
Exercise 3 (ACP des profils-colonnes) Les données de l’ACP des profils-colonnes sont dans la matrice \({}^tT_c\). Ainsi nous avons à faire à l’ACP\(\left({}^tT_c, \dfrac{1}{n}D_c, nD_r^{-1}\right)\).
Vérifier que \(S^2M=T_c{}^tT_r-ng_c{}^tg_cD_r^{-1}\).
Montrer que \(g_c\) est un vecteur propre de \(S^2M\) associé à la valeur propre \(0\).
Montrer que \(g_c\) est un vecteur propre de \(T_c{}^tT_r\) associé à la valeur propre \(1\).
En déduire que l’analyse peut être faite en diagonalisant \(T_c{}^tT_r\).
Soit \(c^k\) la \(k\)-ième composante principale de l’ACP des profils-lignes. Montrer que \(D_rc^k\) est un vecteur propre de \(T_c{}^tT_r\).
Montrer que \(\|D_rc^k\|_{\chi^2}^2=n^2\lambda_k\).
En déduire que les vecteurs propres de \(T_r{}^tT_c\) associés aux valeurs propres \(\lambda_k\) sont les \[v^k=\dfrac{1}{\sqrt{\lambda_k}}\dfrac{n_{k,+}}{n}c^k\]
Montrer que la \(k\)-ième composante principale est donnée par \[\tilde{c}^k=n{}^tT_cD_r^{-1}v^k\].
3.3 Relations de transition
Les composantes principales des profils-lignes et celles des profils-colonnes sont reliées par des formules simples dont l’intérêt est d’éviter deux diagonalisations.
Theorem 1 (Relations de transition) Posons \(r=rg\left({}^tT_rT_c\right)=rg\left(T_c{}^tT_r\right)\). Alors les vecteurs propres \(u^k\) et \(v^k\) de \({}^tT_rT_c\) et \(T_c{}^tT_r\) associés à la valeur propre commune \(\lambda_k\) sont liés par les relations: \[
\begin{aligned}
v^k&=\dfrac{1}{\sqrt{\lambda_k}}T_cu^k\\
u^k&=\dfrac{1}{\sqrt{\lambda_k}}{}^tT_rv^k\\
\end{aligned}
\]
Proof 4 (En exercice).
3.4 Récapitulatifs
Profils lignes
Éléments
Profils colonnes
\(T_r=D_{r}^{-1}N\)
Données
\({}^tT_c=D_c^{-1}{}^tN\)
\(\dfrac{1}{n}D_r\)
Poids
\(\dfrac{1}{n}D_c\)
\(nD_c^{-1}\)
Métrique
\(nD_r^{-1}\)
\({}^tT_rT_c\)
Matrice à diagonaliser
\(T_c{}^tT_r\)
\(\lambda_1>\cdots>\lambda_r>0\)
Valeurs propres \(> 0\)
\(\lambda_1>\cdots>\lambda_r>0\)
\({}^tT_rT_cu^k=\lambda_ku^k\)
Vecteurs propres
\(T_c{}^tT_rv^k=\lambda_kv^k\)
\(u^k=\dfrac{1}{\sqrt{\lambda_k}}{}^tT_rv^k\)
Transition
\(v^k=\dfrac{1}{\sqrt{\lambda_k}}T_cu^k\)
\(c^k=nT_rD_c^{-1}u^k\)
Composantes principales
\(\widetilde{c}^k=n{}^tT_cD_r^{-1}v^k\)
\(D_rc^k=n\sqrt{\lambda_k}v^k\)
\(D_c\widetilde{c}^k=n\sqrt{\lambda_k}u^k\)
Les éléments des ACP des profils-lignes et profils-colonnes sont reliées par des formules de transition dont l’intérêt est d’éviter deux diagonalisations.
3.5 Aide à l’interprétation
Analyse des Inerties
Inertie totale : Mesure de la variabilité totale dans les données, similaire à la variance en analyse quantitative.
Part de l’inertie expliquée en dimension \(q\) : \[\dfrac{\sum_{j=1}^q\lambda_j}{\sum_{j=1}^r\lambda_j}.\] En général, on prendra \(q=2\). Dans tous les cas, il est important d’accompagner chaque représentation de la part de l’inertie expliquée pour justifier la pertinence des conclusions qu’on peut en tirer.
Lecture des Graphiques de Points (Biplot)
Proximité entre catégories : Les catégories proches sur le graphique sont associées positivement, c’est-à-dire qu’elles tendent à co-occurrence fréquemment.
Opposition entre catégories : Les catégories à l’opposé du centre ont une association négative.
Qualité de représentation :
Les catégories éloignées du centre sont bien représentées sur le graphique et leur position est fiable.
Les points proches du centre ne sont pas bien représentés et leurs positions sont moins interprétables.
Contribution des Catégories
Les contributions des catégories aux les axes aident à identifier les catégories qui influencent le plus chaque axe.
Une contribution élevée signifie que la catégorie est une bonne représentante de cet axe.
Qualité de Représentation : Le \(\cos^2\) indique la qualité de représentation d’une catégorie sur un axe factoriel.
4 Exemple
4.1 Les données
Nous considérons les données constituées par les résultats du premier tour des élections régionales de 2004 pour la région Ile de France. Pour chacun des huit départements de l’Ile de France (en lignes), on a les effectifs de suffrages pour chacune des huit listes candidates ainsi que les effectifs d’abstentions (en colonnes). L’objectif est d’analyser la structure des votes ainsi que les liaisons entre listes et départements.
$coord
Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
HUCHON -0.04214027 -0.016535313 -0.102396641 0.015721728 0.002368643
COPE -0.13049978 -0.051259901 0.008879053 -0.032486081 0.010821521
SANTINI -0.23884829 0.095483559 0.082164165 0.022472233 -0.003454881
LEPEN 0.16280744 -0.114613034 0.088268958 0.017436021 0.001675579
BUFFET 0.25807846 0.225925318 -0.011737861 -0.017830144 0.025942898
LAGU 0.16554084 -0.008410599 0.006615745 0.021228706 -0.002023908
PELEG 0.03316719 -0.071358579 0.062486721 0.049921119 0.060126767
BAY 0.15137821 -0.119841097 0.121097705 0.016027486 0.035025115
ABSTEN 0.05383430 0.005755252 0.005947334 -0.005495228 -0.010009797
$contrib
Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
HUCHON 2.2344494 1.11737699 58.57474413 13.4717980 0.70324745
COPE 16.6285871 8.33278923 0.34176866 44.6354179 11.39057588
SANTINI 36.2177096 18.79892256 19.02850838 13.8873155 0.75487683
LEPEN 12.7942164 20.59360077 16.69722716 6.3563692 0.13499836
BUFFET 18.8972892 47.03540331 0.17355499 3.9071032 19.02243958
LAGU 4.3053856 0.03609563 0.03052969 3.0668880 0.06410865
PELEG 0.1086391 1.63327947 1.71201547 10.6607275 35.56624355
BAY 1.0635124 2.16484310 3.02169614 0.5164113 5.67163393
ABSTEN 7.7502112 0.28768894 0.41995538 3.4979693 26.69187576
$cos2
Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
HUCHON 0.1387783 0.021367394 0.819404108 0.019316449 4.384558e-04
COPE 0.8138642 0.125570588 0.003767608 0.050434421 5.596404e-03
SANTINI 0.7767555 0.124135860 0.091918928 0.006875947 1.625198e-04
LEPEN 0.5538943 0.274502601 0.162815010 0.006352917 5.866897e-05
BUFFET 0.5604991 0.429537608 0.001159443 0.002675353 5.663806e-03
LAGU 0.9361807 0.002416591 0.001495226 0.015395592 1.399365e-04
PELEG 0.0603966 0.279568109 0.214373313 0.136824501 1.984865e-01
BAY 0.4189633 0.262579525 0.268115011 0.004696563 2.242892e-02
ABSTEN 0.9250910 0.010572922 0.011290441 0.009639129 3.198282e-02
$inertia
[1] 0.0024349319 0.0030898764 0.0070513836 0.0034932081 0.0050987336
[6] 0.0006954887 0.0002720267 0.0003838877 0.0012669713
Représentation des profils
Code
plot.CA(regionalesCA, axes=c(1,2))
5 Exercices
Exercise 4 (TP avec prince sous Python) Le tableau \(10\times 8\) ci-dessous croise \(K=10\) catégories socioprofessionnelles avec \(L=8\) modes d’hébergements en vacances. Notons \(X\) et \(Y\) les variables en question.
X vs Y
hotel
locat
propri
parent
amis
tente
villag
divers
Total
Agriculteur
160
28
0
321
36
141
45
65
796
Salariés
35
34
1
178
8
0
4
0
260
Patrons
700
354
229
959
185
292
119
140
2978
Cadre sup
961
471
633
1580
305
360
162
148
4620
Cadre moy
572
537
279
1689
206
748
155
112
4298
Employés
441
404
166
1079
178
434
178
92
2972
Ouvriers
783
1114
387
4052
497
1464
525
387
9209
Personnels
65
43
21
294
79
57
18
6
580
Autres actif
77
189
189
839
53
124
28
53
1423
Non actifs
741
332
327
1789
311
236
102
102
3940
Total
4535
3377
2232
12780
1858
3856
1336
1105
31079
Déterminer le tableau des effectifs théoriques en cas d’indépendance.
Calculer la divergence du \(\chi^2\) entre le tableau réel et le tableau en cas d’indépendance.
Effectuer le test d’indépendance du \(\chi^2\).
Calculer la matrice \(X\) des profils-ligne et la matrice \(Y\) des profils-colonne. Discuter ces matrices.
On effectue une AFC à l’aide de la librairie prince de Python.
Exercise 5 (TP) We will use the MASS library for this assignment. Install and load it using:
Code
library(MASS)
The following R commands are used to perform the analysis:
Code
help(caith) # for function detailstab<-caith() # to create a variable containing the domain datamosaicplot(tab) # to display the representation of row and column structurechisq.test(tab) # to perform the chi-squared testacf<-corresp(tab, nf=2) # to perform the correspondence analysis with two dimensionsplot(acf) # to display the first two components of the analysis
Exercise 6 Discussion about the distribution of \(n=10,000\) students in terms of their type of studies and the socio-professional category of their parents.
Category
Expl. Agricole
Expl. Agro
Salariat
Patron
Liberal
Cadre Moyen
Employe
Ouvrier
Service
Autres
Secondaire Non Diploma
60
36
132
19
65
23
11
54
58
42
Baccalaureat
8
72
315
67
64
58
21
48
62
90
Diplome Superieur
56
34
194
96
205
120
1
1
29
7
Pluridisc, IUT
476
191
896
400
876
564
465
79
57
35
Autres
305
115
624
217
301
47
42
90
90
90
Code
library(FactoMineR)# Create a data.frame df with these dataca_results <-CA(df, graph =FALSE)summary(ca_results)plot(ca_results)
Exercise 7 Le tableau suivant représente le type d’études poursuivies (université, classes préparatoires, autres) en fonction du parcours suivi au lycée (Nomenclature des années 1970: A - Littéraire, B - Economie, C - Sciences (maths, physique), D - Sciences naturelles (biologie, chimie, …), E - Technologique “théorique”, Techn. - Technologique “appliqué”)
Univ
Classes prépa
Autres
A
13
2
5
BDD’
20
2
8
CE
10
5
5
Techn.
7
1
22
Déterminer le tableau des effectifs théoriques sous l’hypothèse d’indépendance.
Calculer la distance du \(\chi^2\) entre le tableau réel et le tableau en cas d’indépendance.
Effectuer le test d’indépendance du \(\chi^2\) au niveau \(\alpha=10\%\).
Calculer la matrice \(T_r\) des profils-ligne et la matrice \(T_c\) des profils-colonne. Discuter ces matrices.
Quelles est la matrice sur laquelle repose la décomposition spectrale pour l’ACP des profils-lignes?
On effectue une AFC. Les valeurs propres différentes de 1 de \(S^2 = {}^tT_r{}T_c\) sont les suivantes: