L’Analyse canonique des corrélations

add

\bullet Présentation:

L’Analyse canonique des corrélations, élaborée par Harold Hotelling en 1936, est une approche multivariée visant à comparer les interactions de deux matrices \mathbf{A} = (X ^1, \cdots, X ^{p'}) et \mathbf{B} = (X ^{p' +1}, \cdots, X ^P) continues. Les deux blocs peuvent être appariés ou non appariés, l’outil étant efficace dans les deux cas.

L’Analyse canonique des corrélations, comme son titre l’indique, se base sur les corrélations, autrement dit sur la présence ou l’absence d’une relation linéaire entre les variables des deux différents blocs.

L’outil appartient à la famille de l’analyse exploratoire et permet, par exemple, de comparer de champs thématiques de variables en élaborant une carte des variables et des observations afin d’avoir une représentation visuelle des interactions entre les deux blocs de données.

\bullet L’analyse canonique des corrélations:

Hypothèse préliminaire: \mathbf{A}, \mathbf{B} continues.

L’Analyse canonique des corrélations se déroule en quatre étapes qui sont les suivantes,

– Étape 1: calcul des matrices de covariances intra et inter groupes,

cov(\mathbf{A}), cov(\mathbf{B}), cov(\mathbf{A}, \mathbf{B})

– Étape 2: calcul des valeurs propres \lambda et vecteurs propres associés \mathbf{U}, \mathbf{V} sous contrainte de maximisation de,

max_{\mathbf{U}, \mathbf{V}} \frac{trace(\mathbf{U} ^t cov(\mathbf{A}, \mathbf{B}) \mathbf{U})}{\sqrt{trace(\mathbf{U} ^t cov(\mathbf{A}) \mathbf{U}) trace(\mathbf{V} ^t cov(\mathbf{B}) \mathbf{V})}}

– Étape 3: Calcul des axes factorielles après standardisation de \mathbf{A}, \mathbf{A},

\mathbf{C_A} = \mathbf{A}_{std} \mathbf{U}, \mathbf{C_B} = \mathbf{B}_{std} \mathbf{V}

– Étape 4: Projection des variables dans le plan factoriel,

Coord_{\mathbf{A}} = cor(\mathbf{A}, \mathbf{C_A}), Coord_{\mathbf{B}} = cor(\mathbf{B}, \mathbf{C_B})

La projection des observations est obtenue lors du calcul des matrices \mathbf{C_A}, \mathbf{C_B}.

Le choix du nombre d’axes se fait comme pour les autres méthodes de l’analyse exploratoire, à partir des valeurs propres \lambda et en fonction de leur distribution.

En termes d’interprétation, la lecture se fait à l’instar d’une Analyse en Composantes Principales (ACP),

– Plus une variable de l’un des deux blocs est proche du cercle de corrélation et plus elle interagit avec les variables de l’autre bloc.

– Plus les variables de différents blocs sont proches entre elles et plus leur corrélation est forte, soit que les variables de l’un des deux blocs peuvent s’écrire comme combinaison linéaire à partir des variables de l’autre bloc. Autrement dit, à partir des variables de l’un des deux blocs, nous pouvons prédire les valeurs des variables de l’autre bloc.

– Un angle de 180° entre deux blocs de variables impliquent une anti-corrélation entre eux.

– Un angle de 90° entre deux blocs de variables impliquent l’absence de corrélation entre eux.

\bullet Annexe théorique:

Nous présentons ici une esquisse de la démarche méthodologique de l’analyse canonique des corrélations.

Soit R ^n muni de la métrique D. L’idée est alors de chercher un couple de vecteurs normés (\epsilon_1, \eta_1) sous contrainte d’obtenir l’angle le plus petit et ensuite le couple (\epsilon_2, \eta_2) D-orthogonal, respectivement, à \epsilon_1, \eta_1. sous cette même contrainte. Nous en faisons de même pour les autres couples (\epsilon_p, \eta_p), p \in [3, P].

Les opérateurs utilisés sont alors de la forme,

O_1 = \mathbf{A} (\mathbf{A} ^t D \mathbf{A}) ^{-1} \mathbf{A} ^t D, O_2 = \mathbf{B} (\mathbf{B} ^t D \mathbf{B}) ^{-1} \mathbf{B} ^t D

, dont l’une des propriétés les plus intéressantes est que la restriction de O_2 O_1 est diagonalisable, de valeurs propres D-orthogonaux et de vecteurs propres \lambda réels positifs.

Cette propriété se démontre facilement par le fait que,

<\mathbf{A}, O_2 O_1 \mathbf{B}> = <O_2 \mathbf{A}, O_1 \mathbf{B}>

= <\mathbf{A}, O_1 \mathbf{B}>

= <O_1 \mathbf{A}, \mathbf{B}>

= <O_1 \mathbf{A}, O_2 \mathbf{B}>

= <O_2 O_1 \mathbf{A}, \mathbf{B}>

, étant donné que O_1, O_2 sont D-symétriques.

Dés lors, les vecteurs propres \epsilon_p, \eta_p, p \in [1, P], D-normés de O_1 O_2, O_2 O_1 sont associés aux mêmes valeurs propres. De plus, ils s’expriment comme combinaisons linéaires de \mathbf{A}, \mathbf{B},

\epsilon_p = \mathbf{A} a_p, \eta_p = \mathbf{B} b_p, \forall p \in [1,P]

, avec a_p, b_p nos facteurs canoniques obtenus par,

O_1 O_2 \epsilon_p = \lambda_p \epsilon_p, \forall p \in [1,P]

\Longleftrightarrow O_1 O_2 \mathbf{A} a_1 = \lambda_p \mathbf{A} a_p, \forall p \in [1,P]

\Longleftrightarrow \mathbf{A} (\mathbf{A} ^t D \mathbf{A}) ^{-1} \mathbf{A} ^t D \mathbf{B} (\mathbf{B} ^t D \mathbf{B}) ^{-1} \mathbf{B} ^t D \mathbf{A} a_p = \lambda_p \mathbf{A} a_p, \forall p \in [1,P]

En passant par la formule des matrices de covariance, nous en déduisons que les équations des facteurs canoniques sont de forme,

\mathbf{V_{1,1}} ^{-1} \mathbf{V_{1,2}} \mathbf{V_{2,2}} ^{-1} \mathbf{V_{2,1}} a_p = \lambda_p a_p, \forall p \in [1,P]

\mathbf{V_{2,2}} ^{-1} \mathbf{V_{2,1}} \mathbf{V_{1,1}} ^{-1} \mathbf{V_{1,2}} b_p = \lambda_p b_p, \forall p \in [1,P]

\bullet Exemple:

Soit le jeu de données suivant,

add

Nous avons donc \mathbf{A} = (X ^1, X ^2, X ^3, X ^4) et \mathbf{B} = (X ^5, X ^6, X ^7, X ^8), nos deux matrices ou blocs de données à comparer.

Dans un premier temps, déterminons les matrices de covariances intra et inter groupes. Nous avons,

Cov(\mathbf{X} ^1) = \begin{pmatrix} 9.0705355 & 0.7555145 & 1.5600932 & 10.4175026 \\ 0.7555145 & 11.9613546 & 1.7490082 & -1.9441531 \\ 1.5600932 & 1.7490082 & 2.1295090 & 0.4300301 \\ 10.4175026 & -1.9441531 & 0.4300301 & 13.7338166 \\ \end{pmatrix}

Cov(\mathbf{X} ^2) = \begin{pmatrix} 9.088271 & 2.6069842 & 5.0946792 & -10.1751933 \\ 2.606984 & 10.9457223 & 0.3020457 & 1.1275066 \\ 5.094679 & 0.3020457 & 15.7377368 & 0.6925294 \\ -10.175193 & 1.1275066 & 0.6925294 & 19.1206608 \\ \end{pmatrix}

Cov(\mathbf{X} ^1, \mathbf{X} ^2) = \begin{pmatrix} 9.0690971 & 2.8200495 & 5.393049 & -9.926482 \\ 0.7331316 & 30.687814 & 4.098546 & 1.701438 \\ 1.4270587 & 0.9324708 & 5.439073 & 1.117790 \\ 10.5149496 & 0.8331533 & 3.361065 & -14.197508 \\ \end{pmatrix}

Pour le calcul des valeurs propres et vecteurs propres associés utiles à la suite des calculs, nous procédons à une analyse généralisée des valeurs propres en cherchant les matrices de vecteurs propres \mathbf{U}, \mathbf{V} maximisant,

\frac{trace(\mathbf{U} ^t Cov(\mathbf{X} ^1, \mathbf{X} ^2) \mathbf{V}}{\sqrt{trace(\mathbf{U} ^t Cov(\mathbf{X} ^1) \mathbf{U}) trace(\mathbf{V} ^t Cov(\mathbf{X} ^2) \mathbf{V})}}

, nous obtenons ainsi,

\lambda = (0.9998629, 0.9601233, 0.7838923, 0.1796847)

, et,

\mathbf{U} = \begin{pmatrix} -0.367335712 & 0.107257361 & 1.6836411 & -0.46348891 \\ -0.002049065 & -0.006283649 & -0.1220621 & 0.35582619 \\ 0.018911484 & -0.715591159 & -0.8823932 & -0.04856284 \\ 0.028178637 & 0.015844425 & -1.3322262 & 0.38089724 \\ \end{pmatrix}

\mathbf{V} = \begin{pmatrix} -0.312924231 & 0.198063333 & 0.02560371 & -0.9986287 \\ -0.017179811 & -0.075302950 & 0.27342204 & 0.3231552 \\ -0.012493456 & -0.280402012 & -0.07303302 & 0.3362131 \\ 0.005666279 & 0.005595241 & 0.06737516 & -0.6371241 \\ \end{pmatrix}

Maintenant, calculons les projections après avoir centré-réduit les matrices \mathbf{A}, \mathbf{B},

\mathbf{C_{A}} = \mathbf{A}_{std} \times \mathbf{U} = \begin{pmatrix} -4.59656 & 1.90864 & -1.88593 & -4.83459 \\ -3.39866 & 2.81934 & -0.89523 & -4.24669 \\ -2.46286 & -4.96866 & -0.20843 & -3.65529 \\ \cdots & \cdots & \cdots & \cdots \\ 2.49024 & -0.76976 & -1.98593 & 4.45721 \\ 3.49184 & 3.33654 & 0.95347 & 2.82211 \\ 4.45324 & 3.41034 & 1.87687 & 3.67941 \\ \end{pmatrix} \times \begin{pmatrix} -0.367335712 & 0.107257361 & 1.6836411 & -0.46348891 \\ -0.002049065 & -0.006283649 & -0.1220621 & 0.35582619 \\ 0.018911484 & -0.715591159 & -0.8823932 & -0.04856284 \\ 0.028178637 & 0.015844425 & -1.3322262 & 0.38089724 \\ \end{pmatrix}

= \begin{pmatrix} 1.5126718 & 0.7679454 & 0.1329695 & 1.0597074 \\ 1.1060761 & 0.1910853 & 0.3812384 & 1.0043620 \\ 0.8079347 & -0.1417038 & 1.5135031 & -2.0086365 \\ -0.8251356 & 1.7636694 & 0.1009881 & 0.3660795 \\ -1.1919596 & -0.2840201 & 0.8707159 & 0.5974264 \\ -1.5036469 & -0.8285601 & 0.5234408 & 0.459787\\ \end{pmatrix}

, et,

\mathbf{C_{B}} = \mathbf{B}_{std} \times \mathbf{V} = \begin{pmatrix} -4.31367 & -5.02602 & -4.44019 & 2.20902 \\ -3.56947 & 3.10378 & -3.54319 & 2.62262 \\ -2.53027 & 2.96958 & -2.54469 & 4.18262 \\ \cdots & \cdots & \cdots & \cdots \\ 2.67113 & 2.55528 & -4.47639 & -4.04638 \\ 3.49323 & 1.31998 & 3.53491 & -3.08198 \\ 4.41173 & 2.99278 & 4.55261 & -4.71448\\ \end{pmatrix} \times \begin{pmatrix} -0.312924231 & 0.198063333 & 0.02560371 & -0.9986287 \\ -0.017179811 & -0.075302950 & 0.27342204 & 0.3231552 \\ -0.012493456 & -0.280402012 & -0.07303302 & 0.3362131 \\ 0.005666279 & 0.005595241 & 0.06737516 & -0.6371241 \\ \end{pmatrix}

= \begin{pmatrix} 1.5041882 & 0.78149248 & -1.01155701 & -0.21669955 \\ 1.1227785 & 0.06748688 & 1.19271948 & 1.70537668 \\ 0.7962578 & 0.01216711 & 1.21481539 & -0.03397062 \\ \cdots & \cdots & \dots & \cdots \\ -0.8467629 & 1.56918108 & 0.82135948 & -0.76868958 \\ -1.1774199 & -0.41595791 & -0.01546278 & 0.09020532 \\ -1.5155440 & -0.65450287 & 0.28111896 & 1.09580804 \\ \end{pmatrix}

Nous pouvons désormais calculer les corrélations entre \mathbf{A}, \mathbf{B} et \mathbf{C_A}, \mathbf{C_B},

cor(\mathbf{B}, \mathbf{C_A}) = \begin{pmatrix} -0.9983231 & 0.03766023 & -0.02915787 & -0.002240457 \\ -0.3025849 & -0.11210117 & 0.73769532 & 0.017213797 \\ -0.4516889 & -0.82836922 & -0.17580138 & -0.006344769 \\ 0.7464322 & -0.48029888 & 0.23043986 & -0.058506989 \\ \end{pmatrix}

cor(\mathbf{A}, \mathbf{C_B}) = \begin{pmatrix} -0.99942865 & 0.005357258 & -0.01972378 & -0.002567494 \\ -0.09359495 & -0.354372038 & 0.19463497 & 0.160046597 \\ -0.35921736 & -0.895262927 & -0.02084901 & -0.004969892 \\ -0.92477377 & 0.269298886 & -0.19023740 & -0.015025710 \\ \end{pmatrix}

Nous pouvons désormais projeter nos variables dans le plan en deux dimensions (choix motivé par simplicité de lecture étant donné qu’il s’agit d’un exemple),

addb.png

– Les variables A ^2, B ^2 ne sont pas assez proches du cercle de corrélation pour être interprétées.

– Deux groupes sont à relever, le premier concerne les variables B ^1, A ^1, A ^4 soit que la possibilité de prédire B ^1 à partir d’une combinaison linéaire des variables A ^1, A ^4. Le second concerne les variables A ^3, B ^3, soit un lien très fort entre elles.

– Les deux groupes décrits ci-dessus sont indépendants étant donné qu’ils forment un angle de 90°.

– Enfin, la variable B ^4 est anti-corrélée (angle de 180°) au premier groupe décrit et indépendante au second (angle de 90°).

\bullet Application informatique:

Procédure SAS: https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/statug_cancorr_sect005.htm

Package et fonction Rhttps://cran.r-project.org/web/packages/CCA/index.html

\bullet Bibliographie:

– Relations Between Two sets of Variates de Harold Hotelling.

– Probabilités, analyse des données et Statistique de Gilbert Saporta.

– Data mining et statistique décisionnelle. L’intelligence des données de Stéphane Tufféry.

– Comprendre et utiliser les statistiques dans les sciences de la vie de Bruno Falissard.

– Analyses factorielles simples et multiples de Brigitte Escofier et Jérôme Pagès.

– La présentation powerpoint: http://iml.univ-mrs.fr/~reboul/canonique.pptx.pdf