Le coefficient de corrélation et le test associé de Bravais-Pearson

Karl_Pearson

Karl Pearson

\bullet Historique :

\begin{tabular}{|l|c|c|} \hline Bloc & 21/05/2013-V1 & 03/06/2020-V2 \\ \hline Historique &  & Cr\'eation \\ \hline Sommaire &  & Cr\'eation \\ \hline Pr\'esentation & Cr\'eation & MAJ \\ \hline Le Coeff... de corr... et le test de... & Cr\'eation & Restreint au Coeff... de corr... de Pearson \\ \hline Le test de nul... du Coeff... &  & Cr\'eation \\ \hline Tendance lorsque... & Cr\'eation & MAJ \\ \hline Annexe th\'eo... & Cr\'eation & MAJ \\ \hline Exemple & Cr\'eation & MAJ \\ \hline Appli... info... & Cr\'eation & Devient Appli... sous R \\ \hline Appli... sous SAS &  & Cr\'eation \\ \hline Bibliographie & Cr\'eation & MAJ \\ \hline \end{tabular}

\bullet Sommaire :

  • Présentation
  • Le coefficient de corrélation de Pearson
    • Evolution du coefficient de corrélation
    • Le coefficient de corrélation de Daniels
  • Le test de nullité du coefficient
    • La table de la loi de Student
    • Calcul de la p-valeur exacte
    • Conditions pour le rejet H_0
  • Tendance lorsque n \rightarrow + \infty
  • Annexe théorique
    • Démonstration du coefficient de corrélation de Bravais-Pearson
    • Démonstration du test de nullité du coefficient de corrélation
  • Exemple
  • Application sous R
  • Application sous SAS
  • Bibliographie

\bullet Présentation :

Publié en 1896 par Karl Pearson, le coefficient de corrélation de Bravais-Pearson, également appelé coefficient de corrélation linéaire, et son test associé sont des approches paramétriques permettant de mesurer et de tester si deux variables continues appariées X ^1, X ^2, suivant une loi normale bi-variée, sont corrélées.

On notera que l’aspect apparié des deux variables est abusif, le coefficient s’applique aussi bien à des variables temporelles qu’à des variables non appariées. Il serait plus concret de parler de variables conjointes.

Dans le cas où l’échantillon est trop petit, on a plutôt recours au coefficient de corrélation de Spearman qui se base sur les rangs de (X ^1, X ^2) ou encore une variante plus pessimiste, le coefficient de corrélation de Kendall.

Enfin, il faut garder à l’esprit que corrélation et causalité ne sont pas intrinsèquement liées. En effet, deux variables peuvent être corrélées sans pour autant que la variabilité de l’une explique celle de l’autre. On a alors recours au coefficient de corrélation partielle dans ce cas afin de déterminer si la relation qui unie deux variables ne provient pas d’un troisième variable cachée.

\bullet Le coefficient de corrélation de Pearson :

Hypothèse préliminaire: variables continues appariées et normalités.

L’idée qui se cache derrière la formule du coefficient de corrélation est d’imaginer une droite optimale pour laquelle les couples de points (X_i ^1, X_i ^2), \forall i \in [1,n] seraient les plus proches possibles relativement à la variance de leur distribution respective. En notant n le nombre d’observations, et en se basant sur ce principe, on a la formule suivante :

r_p (X ^1,X ^2) = \frac{\sum_{i = 1} ^n (X_i ^1 - \overline{X ^1}) \cdot (X_i ^2 - \overline{X ^2})}{\sqrt{\sum_{i = 1} ^n (X_i ^1 - \overline{X ^1})^2 \cdot \sum_{i = 1} ^n (X_i ^2 - \overline{X ^2})^2}}

Le coefficient de corrélation de Pearson varie dans l’intervalle [-1 , 1]. De façon « universellement arbitraire » on parle de,

– corrélation positive : lorsque l’une des variables est fonction croissante de l’autre. L’Angle formé entre les deux variables tend alors vers 0 ^{\circ} si le coefficient r_p \in [0.7 , 1] ;

– de corrélation négative : lorsque l’une des variables est fonction décroissante de l’autre. L’Angle formé entre les deux variables tend alors vers 180 ^{\circ} si le coefficient r_p \in [-1 , -0.7].

Plus r_p converge en valeur absolue vers 1 et plus la corrélation entre les deux variables est forte. A contrario plus il tend vers 0 et plus l’orthogonalité entre les deux vecteurs est forte, ce qui implique l’absence de corrélation.

Il faut bien garder à l’esprit que le coefficient de corrélation de Pearson mesure la qualité de la relation linéaire entre les deux échantillons. Ainsi, par exemple, une relation quadratique ne sera pas décelée par cet outil statistique. Ci-dessous quelques exemples tirés du site wikipédia et assez représentatif de ce que peut détecter ce coefficient.

add

Evolution du coefficient de corrélation : 

Soit (X ^1, X ^2). Trivialement, le coefficient de corrélation tend vers 1 lorsque X ^1 \longrightarrow a \cdot X ^2 + b, (c,b) \in REn effet, si cela devient le cas on obtient  :

r_p (X ^1, X ^2) = \frac{\sum_i (X_i ^1 - \overline{X ^1}) \cdot (X_i ^2 - \overline{X ^2})}{\sqrt{\sum_i (X_i ^1 - \overline{X ^1}) ^2 \cdot \sum_i (X_i ^2 - \overline{X ^2}) ^2}}

\longrightarrow \frac{\sum_i (a \cdot X_i ^2 + b - \overline{a \cdot X_i ^2 + b}) \cdot (X_i ^2 - \overline{X ^2})}{\sqrt{\sum_i (a \cdot X_i ^2 + b - \overline{a \cdot X_i ^2 + b}) ^2 \cdot \sum_i (X_i ^2 - \overline{X ^2}) ^2}} = r_p (a \cdot X ^2 + b, X ^2)

= \frac{\sum_i (a \cdot (X_i ^2 - \overline{X ^2}) + b - b) \cdot \sum_i (X_i ^2 - \overline{X ^2})}{\sqrt{\sum_i (a \cdot (X_i ^2 - \overline{X^2}) + b - b) ^2} \cdot \sqrt{\sum_i (X_i ^2 - \overline{X ^2})^2}}

= \frac{a \cdot \sum_i (X_i ^2 - \overline{X ^2}) ^2}{\sqrt{a ^2} \cdot \sqrt{\sum_i (X_i ^2 - \overline{X ^2}) ^4}}

= 1

On remarque que le numérateur, soit la cohérence des fluctuations entre X ^1 et X ^2, ne peut jamais être plus grand que le dénominateur, soit l’estimation optimiste de ces fluctuations. Etant donné que la formule consiste en un ratio distance relative sur distance euclidienne, cela explique que le coefficient varie entre -1 et 1.

Le coefficient de corrélation de Daniels :

Les coefficients de corrélation de Pearson, Kendall et Spearman peuvent être considérés comme des cas particuliers d’un même et unique formule appelée coefficient de corrélation de Daniels.

Pour toute paire d’observations i_1,i_2 \in [1,n], on note a_{i_1,i_2}, b_{i_1,i_2} les indices respectivement associés aux variables X ^1, X ^2. La formule du coefficient de corrélation de Daniels est alors :

r_{(X ^1, X ^2)} ^D = \frac{\sum_{i_1} \sum_{i_2} a_{i_1,i_2} \cdot b_{i_1,i_2}}{\sqrt{(\sum_{i_1} \sum_{i_2} a_{i_1,i_2} ^2) \cdot (\sum_{i_1} \sum_{i_2} b_{i_1,i_2} ^2)}}

Il varie également dans l’intervalle [-1; +1] et les conclusions sont les mêmes que pour le coefficient de corrélation de Pearson.

On peut alors retrouver le coefficient de corrélation de Pearson en posant a_{i_1,i_2} = (X_i ^1 - \overline{X ^1}) et b_{i_1,i_2} = (X_i ^2 - \overline{X ^2}).

\bullet Le test de nullité du coefficient :

A la formule du coefficient de corrélation est associée la statistique du test de nullité qui permet de déterminer si r_p est significativement différent de 0,

t = (n-2) ^{\frac{1}{2}} \cdot \frac{\vert r_p (X ^1,X ^2) \vert}{\sqrt{1 - r_p (X ^1, X ^2) ^2}}

Elle suit une loi de Student à n-2 degrés de liberté. L’hypothèse H_0 est :

La pente formée entre les deux variables est nulle / r_p = 0

Avec T_{1 - \alpha} la valeur seuil de la distribution de la statistique de test T pour une confiance \alpha, les hypothèses alternatives sont alors,

H_1: r_p > 0, soit T > T_{1 - \alpha}, pour un test unilatéral à droite ;

H_1: r_p < 0, soit T > T_{\alpha}, pour un test unilatéral à gauche ;

H_1: r_p \neq 0, soit |T| > T_{\frac{\alpha}{2}}, pour un test bilatéral.

La table de la loi de Student :

add

Calcul de la p-valeur exacte :

La loi de distribution à laquelle reporter la statistique de test de nullité du coefficient de corrélation de Pearson est celle de Student. En prenant d le nombre de degrés de liberté et restant dépendant de n, B(z,\frac{1}{2},\frac{d}{2}) la fonction Bêta incomplète et B(\frac{1}{2},\frac{d}{2}) la fonction Bêta. Le calcul de la p-valeur associée à la statistique de test est alors,

– Dans le cas bilatéral :

p = P(t_{obs} > t_{n,\frac{\alpha}{2}}) = 1 - \frac{B(z,\frac{1}{2},\frac{d}{2})}{B(\frac{1}{2},\frac{d}{2})}

– Dans le cas unilatéral à droite :

p = P(t_{obs} > t_{n,\alpha}) = \frac{1}{2} + \frac{1}{2} \frac{B(z,\frac{1}{2},\frac{d}{2})}{B(\frac{1}{2},\frac{d}{2})}

– Dans le cas unilatéral à gauche :

p = P(t_{obs} > t_{n,1-\alpha}) = \frac{1}{2} - \frac{1}{2} \frac{B(z,\frac{1}{2},\frac{d}{2})}{B(\frac{1}{2},\frac{d}{2})}

Avec,

z = \frac{\frac{t_{obs} ^2}{d}}{1 + \frac{t_{obs} ^2}{d}} ;

B(\frac{1}{2},\frac{d}{2}) = \frac{\Gamma(\frac{1}{2}) \Gamma(\frac{d}{2})}{\Gamma(\frac{1}{2} + \frac{d}{2})} = \sqrt{\pi}\frac{ \Gamma(\frac{d}{2})}{\Gamma(\frac{d + 1}{2})} ;

B(z;\frac{1}{2},\frac{d}{2}) = \sqrt{z} (2 + \sum_{k = 1} ^K \frac{\prod_{j = 1} ^k (j - \frac{d}{2})}{k ! (\frac{1}{2} + k)} z ^k), qui converge assez rapidement pour K faible.

Conditions pour le rejet de H_0:

Plus la statistique t est grande et plus on a de chance de rejeter H_0. En effet, r_p variant dans [-1, 1], ce qui implique que lorsque r_p ^2 \longrightarrow 1 alors le dénominateur, \sqrt{1 - r_p ^2} tend vers 0 et donc t \longrightarrow + \infty.

Concrètement, la valeur réelle informative n’est pas le p-value du test de nullité du coefficient mais le coefficient de corrélation. Il peut arriver qu’un coefficient | r_p | > 0.7 ne soit associé à un test significatif. En effet, ce n’est pas parce que la pente formée entre les deux variables vaut 0 qu’il n’y a pas la once d’une relation linéaire.

\bullet Tendance lorsque n \longrightarrow \infty :  

On s’intéresse désormais à la résistance du test de nullité du coefficient de corrélation de Pearson au fur et à mesure que la taille d’échantillon croît. On fixe le ratio à 0.001, soit un cas fictif correspondant à un coefficient proche de 0. L’on va s’intéresser à l’influence du facteur (n - 2) ^{\frac{1}{2}} sur la statistique de test. Le résultat attendu est forcément que quelque soit la taille de l’échantillon, on ne rejettera pas l’hypothèse H_0 de nullité du coefficient. Le graphique ci-dessous montre l’évolution de la p-valeur p associée à la statistique de test t_{test} fixée lorsque n croît de 10 à 100 000 observations :

De manière hâtive, on reste en adéquation avec l’hypothèse de construction de la statistique de test jusqu’à n = 1641 (p > 20 \%). Jusqu’à n = 38409, on se forcera à rejeter H_0 avec un risque assez fort compris entre 20 \% et 5 \%. Enfin, à n = 66344 la p-valeur passe en dessous des 1 \%.

Cette simulation montre que le test de nullité du coefficient de corrélation de Pearson est atteint par la malédiction des grands échantillons. Cependant, et même s’il faut relativiser ce constat car ici on prend une statistique de test particulièrement faible, on peut également voir qu’il offre une certaine marge et permet de travailler sur des échantillons assez importants.

\bullet Annexe théorique :

On présente ici une esquisse de la démonstration du coefficient de corrélation de Bravais-Pearson ainsi que celle du test de nullité qui lui est associé.

Démonstration du coefficient de corrélation de Bravais-Pearson :

Soit l’ensemble des classes de variables aléatoires munit du produit scalaire < X^1,X^2 > = E(X^1 X^2) et de la norme || X || = (E(X) ^2) ^{\frac{1}{2}}, formant ainsi un espace d’Hilbert L ^2. Dans cet espace, l’écart-type \sigma et la covariance \Sigma sont alors, respectivement, la norme et le produit scalaire des variables centrées.

Ainsi, si on considère l’ensemble des variables constantes on forme la droite D de L ^2, E[X] devient alors la projection orthogonale de X sur D car le minimum de E[(X - a)^2] est atteint pour a = E[X].

En se servant de la formule de Köning-Huyghens on a :

E[(X - a) ^2] = V(X) + (E[X] - a) ^2

Soit deux variables de notre espace X^1, X^2. Or,

cov(X^1,X^2) = < X^1 - E[X^1], X^2 - E[X^2] >

Et en se servant de l’inégalité de Schwarz, on obtient :

| cov(X^1,X^2) | \geq || X^1 - E[X^1] || \cdot || X^2 - E[X^2] || \Rightarrow | cov(X^1,X^2) | \geq \sigma_{X^1} \sigma_{X^2}

L’angle formé par X^1 - E[X^1] et X^2 - E[X^2] est donc égale à \frac{cov(X^1,X^2)}{\sigma_{X^1} \sigma_{X^2}} d’où la notion d’orthogonalité dans la corrélation entre X^1, X^2. Alors :

\rho = \frac{cov(X^1,X^2)}{\sigma_{X^1} \sigma_{X^2}} \Rightarrow -1 \leq \rho \leq 1

Démonstration du test de nullité du coefficient de corrélation :

Cette démonstration peut s’étendre aux tests associés aux coefficient de  corrélation de Spearman et Kendall.

De manière général, la qualité du coefficient de corrélation b peut s’écrire :

t = \frac{b}{\sqrt{var(b)}}

En utilisant l’abréviation SCE = somme des carrés des écarts non expliqués et par définition de la variance, on a,

var(b) = \frac{SCE}{(n- 2) \cdot (n - 1) \cdot var(X^1)}

Via les abréviations SCT = somme des carrés des écarts totaux qui par définition vaut :

SCT= var(X ^2) \times (n - 1)

, et SCR = somme des carrés des écarts expliqués qui par définition vaut :

SCR = r ^2 \times SCT

On rappelle que :

SCE = SCT - SCR = SCT \times (1 - r ^2) = var(X ^2) \cdot (n - 1) \cdot (1 - r ^2)

Par conséquent,

var(b) = \frac{var(X ^2) \cdot (n - 1) \cdot (1 - r ^2)}{(n - 2) \cdot (n - 1) \cdot var(X ^1)} = \frac{var(X ^2) \cdot (1 - r ^2)}{(n- 2) \cdot var(X^1)}

On en déduit donc que :

t = \frac{b}{\sqrt{\frac{var(X ^2) \cdot (1 - r^2)}{(n - 2) \cdot var(X ^1)}}} = \frac{b \cdot \sqrt{var(X ^1)} \cdot \sqrt{n - 2}}{\sqrt{var(X ^2)} \cdot \sqrt{1 - r ^2}}

On reconnait la formule du coefficient de corrélation de Pearson basée sur le calcul de la pente :

r = \frac{\sqrt{var(X)}}{\sqrt{var(Y)}} \times b

On retrouve alors la formule du test de nullité du coefficient de corrélation :

t = \sqrt{n-2} \times \frac{r}{\sqrt{1 - r ^2}}

\bullet Exemple :

Soit les deux variables X ^1, X^2 suivantes,

\begin{tabular}{|c|c|} \hline X1 & X2 \\ \hline 3.1101 & 0.8970 \\ \hline 4.1008 & 2.0949 \\ \hline 4.7876 & 3.0307 \\ \hline 7.0677 & 4.0135 \\ \hline 6.0858 & 5.0515 \\ \hline 4.9309 & 6.0261 \\ \hline 4.0449 & 6.9059 \\ \hline 3.0101 & 7.9838 \\ \hline 5.9495 & 8.9854 \\ \hline 6.8729 & 9.9468 \\ \hline 1.0898 & 11.1682 \\ \hline 1.9868 & 11.9124 \\ \hline 2.9853 & 12.9516 \\ \hline 10.0080 & 13.9288 \\ \hline 8.9052 & 14.8826 \\ \hline 8.0411 & 15.9808 \\ \hline 2.0826 & 16.9726 \\ \hline 1.0536 & 18.1530 \\ \hline 9.0649 & 18.9751 \\ \hline 10.0826 & 19.8936 \\ \hline \end{tabular}

Ci-dessous le nuage de point associé au croisement des deux variables :

add

Dans un premier temps, on a \overline{X ^1} = 5.26301 et \overline{X ^2} = 10.48771. Le coefficient de corrélation de Pearson vaut alors :

r_p= \frac{-2.15291 \times (-9.590715) + \ldots + 9.405885 \times 4.81959}{\sqrt{(-2.15291) ^2 + \ldots + 9.405885 ^2} \times \sqrt{(-9.590715) ^2 + \ldots + 4.81959 ^2}} = \frac{86.55974}{\sqrt{662.2609}} = 0.2640795

La statistique de test est :

t = \sqrt{18} \cdot \frac{0.2640795}{\sqrt{1 - 0.2640795 ^2}} = 1.161631

On cherche à tester bilatéralement le rejet de l’hypothèse H_0. Sous cette approche, on génère une loi de Student à 20 - 2 = 18 degrés de liberté et l’on reporte sur le graphe ci-dessous les valeurs seuils qui correspondent aux quantiles à 20 \%, 10 \%, 5 \% et 1 \% dans le cadre bilatéral,

addb

En se reportant aux valeurs de la table de la loi de Student ci-dessus, on constate que,

t_{obs} = 1.161631 < T_{18,20\%,\mbox{bilat\'eral}} = 1.330391

Maintenant, on calcul la p-valeur exacte associée à la statistique de test t_{obs} dans le cadre bilatéral et pour 20 - 2 = 18 degrés de liberté. On commence par appliquer le changement de variable,

z = \frac{\frac{1.161631^2}{18}}{1 + \frac{1.161631^2}{18}} = 0.06973795

On a,

p = 1 - \frac{0.06973795,\frac{1}{2},\frac{18}{2}}{B(\frac{1}{2},\frac{18}{2})} = 1 - \frac{0.4429825}{0.5990767} = 1 - 0.739442 = 0.260558 > 5 \%

On ne pourra pas rejeter H_0 au risque de 5 \% et on en conclut que r_p(X ^1, X^2) = 0 au sens statistique du terme.

\bullet Application sous R :

Soit l’exemple suivant :

X1 = c(3.1101,4.1008,4.7876,7.0677,6.0858,4.9309,4.0449,3.0101,5.9495,
6.8729,1.0898,1.9868,2.9853,10.0080,8.9052,8.0411,2.0826,1.0536,9.0649,10.0826)

X2 = c(0.8970,2.0949,3.0307,4.0135,5.0515,6.0261,6.9059,7.9838,8.9854,9.9468,
11.1682,11.9124,12.9516,13.9288,14.8826,15.9808,16.9726,18.1530,18.9751,19.8936)

Package et fonction R: http://stat.ethz.ch/R-manual/R-patched/library/stats/html/cor.test.html

La fonction cor.test du package stats permet d’appliquer le coefficient de corrélation de Pearson et le test de nullité associé. Le package se charge automatiquement lors du lancement de R.

On lance le coefficient de corrélation de Pearson afin d’étudier la force de la corrélation entre X^1 et X^2 et on regarde si cette dernière est statistiquement différente de 0. On procède de la manière suivante :

corr.test(X1,X2,method= « Pearson »)

Parmi les éléments à insérer les plus importants il faut relever :

– Les deux variables sur lesquelles appliquer le coefficient de corrélation : X1, X2 ;

– Le type de coefficient de corrélation : method = « pearson » ;

– On aurait pu rajouter l’instruction « alternative » qui permettra de déterminer si on veut procéder à un test bilatéral, unilatéral à gauche ou à droite. Par défaut le logiciel R lance le test dans un cadre bilatéral.

On obtient alors les résultats suivants :

addbb

On vérifie :

– Les données utilisées : « data: X1 and X2 » ;

– Le coefficient de corrélation de Pearson : « 0.2640795 » , qui est le même que celui obtenu lors des calculs manuels (cf section « Exemple » ) ;

– La statistique de test : « t = 1.1616 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple » ) ;

– La p-valeur : « p-value = 0.2606 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple » ) ;

– Et le type de test effectué : « alternative hypothesis: true correlation is not equal to 0  » .

\bullet Application sous SAS :

Soit l’exemple suivant :

data E;
input X1 X2;
cards;
3.1101 0.8970
4.1008 2.0949
4.7876 3.0307
7.0677 4.0135
6.0858 5.0515
4.9309 6.0261
4.0449 6.9059
3.0101 7.9838
5.9495 8.9854
6.8729 9.9468
1.0898 11.1682
1.9868 11.9124
2.9853 12.9516
10.0080 13.9288
8.9052 14.8826
8.0411 15.9808
2.0826 16.9726
1.0536 18.1530
9.0649 18.9751
10.0826 19.8936
;
run;

Procédure SAS : https://documentation.sas.com/?docsetId=procstat&docsetTarget=procstat_corr_toc.htm&docsetVersion=9.4&locale=en

On lance le coefficient de corrélation de Pearson afin d’étudier la force de la corrélation entre X^1 et X^2 et on regarde si cette dernière est statistiquement différente de 0. On procède de la manière suivante :

proc corr data = E pearson;
var X1 X2;
ods exclude VarInformation SimpleStats;
run;

Parmi les éléments à insérer les plus importants il faut relever :

– La table contenant nos données : data = E ;

– Le type de coefficient de corrélation : pearson ; 

– Les deux variables sur lesquelles appliquer le coefficient de corrélation : var X1 X2 ;

– L’ods output est utilisé afin de filtrer les résultats et n’afficher que ceux dont on a besoin.

On obtient alors les résultats suivants :

addbbb

On vérifie :

– Sur la première ligne de la cellule X1, X2, la valeur du coefficient de corrélation : « 0.26408 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple » ) ;

– Sur la seconde ligne de la cellule X1, X2, la p-valeur: « 0.2606 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple » ).

\bullet Bibliographie: 

– Studies in the history of Statistics and probability de Karl Pearson

– Statistique, dictionnaire encyclopédique de Yadolah Dodge

– Formules utiles pour la régression linéaire simple et la corrélation de Pearson de Daniel Borcard

– Probabilité, analyse des données et Statistiques de Gilbert Saporta