Le test partiel de Mantel

add.png

\bullet Présentation:

Publié par Nathan Mantel , le test partiel de Mantel est une approche non paramétrique permettant de tester si deux matrices de distance/proximité distinctes D^1, D^2, de même rang/taille n \times n, sont corrélés en contrôlant l’effet d’une troisième matrices de distance/proximité D ^3. Le test partiel de Mantel est une extension au test de Mantel.

L’idée qui se cache derrière le test partiel de Mantel est donc de vérifier que la corrélation entre D ^1, D ^2 n’est pas le résultat d’une corrélation cachée avec D ^3, masquant ainsi la vrai corrélation qui est en fait due à D ^3.

Le test partiel de Mantel reste principalement une approche linéaire puisque basé soit sur le coefficient de corrélation partielle de Pearson, Kendall ou encore Spearman. Il convient de garder cette propriété à l’esprit lors de son application.

De plus, le test partiel de Mantel est faussé si nous sommes en présence d’auto-corrélations spatiales.

\bullet L’indice-corrélation:

Hypothèse préliminaire: Matrices de distance de même rang/taille.

Soit trois matrices de distance D^1, D^2, D ^3. Le test partiel de Mantel procède en quatre étapes.

La première étape est de reconsidérer la configuration des matrices de distance D ^1, D ^2, D ^3 sous le format vectoriel suivant,

V_{D ^1} = ((D ^1)_1 ^1, \cdots, (D ^1)_n ^1, (D ^1)_2 ^2, \cdots, (D ^1)_n ^2, \cdots, (D ^1)_{n-1} ^{n - 1}, (D ^1)_n ^{n - 1}, (D ^1)_n ^n)

V_{D ^2} = ((D ^2)_1 ^1, \cdots, (D ^2)_n ^1, (D ^2)_2 ^2, \cdots, (D ^2)_n ^2, \cdots, (D ^2)_{n-1} ^{n - 1}, (D ^2)_n ^{n - 1}, (D ^2)_n ^n)

V_{D ^3} = ((D ^3)_1 ^1, \cdots, (D ^3)_n ^1, (D ^3)_2 ^2, \cdots, (D ^3)_n ^2, \cdots, (D ^3)_{n-1} ^{n - 1}, (D ^3)_n ^{n - 1}, (D ^3)_n ^n)

La seconde est de calculer le coefficient de corrélation partielle normalisé R_M (D ^1, D ^2 / D ^3) entre V_{D ^1}, V_{D ^2} sachant V_{D ^3}. L’ approche est relativement flexible puisqu’elle permet alors de considérer les corrélations partielles au sens de Pearson, Kendall ou encore Spearman. Rappelons la formule du coefficient de corrélation partielle:

R_M (D ^1, D ^2 / D ^3) = \frac{corr(D ^1, D ^2) - corr(D ^1, D ^3) \cdot corr(D ^2, D ^3)}{\sqrt{1 - corr(D ^1, D ^3) ^2} \cdot \sqrt{1 - corr(D ^2, D ^3) ^2}}

L’étape trois qui suit consiste à effectuer un grand nombre de permutations b \in [1, \cdots, B] des deux matrices de distance et calculer le coefficient de corrélation partielle normalisé R_M (D ^1, D ^2 / D ^3) ^b sur chacune des versions des matrices. La raison pour laquelle nous ne pouvons passer directement par le test associé aux différentes versions du coefficient de corrélation partielle est qu’en réalité il nécessite l’hypothèse d’indépendance des données, chose qui n’est pas assurée ici et qui justifie l’approche par permutation.

Enfin, la quatrième et dernière étape consiste à construire l’histogramme de la distribution des R_M (D ^1, D ^2 / D ^3) ^b, \forall b \in [1, B]. Nous pouvons alors construire le test en fonction de la probabilité que R_M (D ^1, D ^2 / D ^3) soit considéré comme un outlier de cette distribution. Pour se faire, nous pouvons utiliser le test basé sur les permutations et qui fournit directement la p-valeur sans devoir passer par la table d’une loi de distribution,

p = \frac{\sharp \lbrace b / R_M (D ^1, D ^2 / D ^3) ^b \geq R_M \rbrace + 1}{B + 1}

L’hypothèse H_0 est: « La corrélation que nous avons cru déceler entre D ^1, D ^2 est en fait due à D ^3 / R_M (D ^1, D ^2 / D ^3) = 0« .

Tendance pour le rejet de H_0:

Grosso-modo, la p-valeur issue du test partiel de Mantel peut être traduite comme la part du nombre de statistiques de test partiel de Mantel R_M (D ^1, D ^2 / D ^3) ^b, b \in [1,B], générée par permutations, supérieures à R_M (D ^1, D ^2 / D ^3). Ce qui revient à étudier la rareté de R_M (D ^1, D ^2 / D ^3) sous l’hypothèse H_0 et par conséquent la probabilité que la configuration des données telle qu’elle est observée implique que nous nous écartons de l’hypothèse de non-corrélation des matrices de distances au travers d’un coefficient de corrélation partielle non nulle au sens statistique du terme.

\bullet Tendance lorsque n \longrightarrow \infty:

Le test partiel de Mantel se base sur le coefficient de corrélation partielle de Pearson, Kendall ou Spearman et sur le test des permutations.

Par construction, les trois coefficients évoqués ne sont pas influencés par la taille d’échantillon. Pour ce qui est du test des permutations, il s’agit d’une approche empirique se basant sur la génération des coefficients de corrélation partielle calculés sur les différents échantillons construis par permutation. La formule d’usage du test montre bien qu’il n’y a pas d’influence de la taille d’échantillon dans son calcul.

Nous pouvons en conclure que le test partiel de Mantel n’est pas influencé par la taille d’échantillon.

\bullet Annexe théorique:

Nous proposons ici une esquisse de la démonstration de l’espérance et de la variance de Z = \sum_i \sum_j X_{i,j} Y_{i,j}, la dérivation de la variance permutationnée à partir de nos deux matrices de distance \mathbf{X}, \mathbf{Y}.

Soit deux matrices de tailles n \times n, X_{i,j}, Y_{i,j} présentant la particularité d’avoir leur diagonale nulle. Supposons que les permutations pour X_{i,j} ne concernent que les lignes et pour Y_{i,j} les colonnes, et que le nombre de permutations est le même pour les deux matrices. Enfin, la probabilité de tirer un élément n’appartenant pas à la diagonale est la même que celle pour tout les n (n - 1) autres éléments.

Tout d’abords, pour l’espérance nous pouvons écrire,

E[Z] = E[\sum_i \sum_j X_{i,j} Y_{i,j}] = \sum_i \sum_j X_{i,j} E[Y_i,j] = \sum_i \sum_j X_{i,j} \sum_i \sum_j \frac{Y_{i,j}}{n (n - 1)}

Et donc pour la variance,

var(Z) = \sum_i \sum_j X_{i,j} X_{k,l} cov(Y_{i,j}, Y_{k,l})

Avec,

cov(Y_{i,j}, Y_{k,l}) = E[Y_{i,j} Y_{k,l}] - E[Y_{i,j}] E[Y_{k,l}],

E[Y_{i,j}] = E[Y_{k,l}] = \sum_i \sum_j \frac{Y_{i,j}}{n (n - 1)}

Par conséquent,

var(Z) = \sum_i \sum_j X_{i,j} X_{k,l} cov(Y_{i,j}, Y_{k,l})

= \sum_i \sum_j X_{i,j} X_{k,l} E[Y_{i,j} Y_{k,l}] - \frac{\sum_i \sum_j X_{i,j} X_{k,l} (\sum_i \sum_j Y_{i,j}) ^2}{n ^2 (n - 1) ^2}

= \sum_i \sum_j X_{i,j} X_{k,l} E[Y_{i,j} Y_{k,l}] - \frac{(\sum_i \sum_j X_{i,j}) ^2 (\sum_i \sum_j Y_{i,j}) ^2}{n ^2 (n - 1) ^2}

Il nous reste encore à déterminer: \sum_i \sum_j E[Y_{i,j} Y_{k,l}] qui, en réalité, dépend de sept différents scénarios qui peuvent intervenir,

– Cas 1: Y_{i,j} Y_{i,j} = Y_{i,j} ^2 \Rightarrow E[.] = \frac{\sum_i \sum_j Y_{i,j} ^2}{n (n - 1)}

– Cas 2: Y_{i,j} Y_{j,i} \Rightarrow E[.] = \frac{\sum_i \sum_j Y_{i,j} Y_{j,i}}{n (n - 1)}

– Cas 3: Y_{i,j} Y_{i,l} \Rightarrow E[.] = \frac{\sum_i (\sum_j Y_{i,j}) ^2 - \sum_i \sum_j Y_{i,j} ^2}{n (n - 1) (n - 2)}

– Cas 4: Y_{i,j} Y_{k,j} \Rightarrow E[.] = \frac{\sum_j (\sum_i Y_{i,j}) ^2 - \sum_i \sum_j Y_{i,j} ^2}{n (n - 1) (n - 2)}

– Cas 5 et 6: Y_{i,j} Y_{k,i} ou Y_{i,j} Y_{j,l}, \Rightarrow E[.] = \frac{\sum_i (\sum_j Y_{i,j}) (\sum_j Y_{j,i}) - \sum_i \sum_j Y_{i,j} Y_{j,i}}{n (n - 1) (n - 2)}

– Cas 7: Y_{i,j} Y_{k,l}

\Rightarrow E[.] = \frac{(\sum_i \sum_j Y_{i,j}) ^2 + \sum_i \sum_j Y_{i,j} ^2 + \sum_i \sum_j Y_{i,j} Y_{j,i} - \sum_i (\sum_j Y_{i,j}) ^2 - \sum_i (\sum_j Y_{j,i}) ^2 - 2 \sum_i (\sum_j Y_{i,j}) (\sum_i Y_{j,i})}{n (n - 1)}

Si nous revenons au terme que nous devons déterminer et que nous sommons les différents cas, nous obtenons,

\sum_i \sum_j E[Y_{i,j} Y_{k,l}] = \sum_{cas = 1, 2, 3, 4, 5, 6, 7} = \frac{(\sum_i \sum_j Y_{i,j}) ^2}{n ^2 (n - 1) ^2}

\bullet Exemple

Soit les trois échantillons ci-dessous,

\mathbf{X.1},

add1

\mathbf{X.2},

add2

\mathbf{X.3},

add3

Nous cherchons à étudier si une influence de \mathbf{X.3} sur la relation entre \mathbf{X.1}, \mathbf{X.2} existe.

Nous pouvons calculer les trois matrices de distance (selon la distance euclidienne) suivantes,

D ^1 = D_{X.1} = \begin{pmatrix} 2.399264 & . & . & . & . & . & . & . & . \\ 7.883224 & 7.958839 & . & . & . & . & . & . & . \\ 5.581541 & 4.117230 & 8.640587 & . & . & . & . & . & . \\ 6.477795 & 5.247828 & 6.099585 & 3.546381 & . & . & . & . & . \\ 14.219664 & 14.846993 & 12.669898 & 13.049674 & 11.692279 & . & . & . & . \\ 13.368063 & 13.713546 & 12.330534 & 11.865003 & 10.416548 & 2.760591 & . & . & . \\ 13.325713 & 13.327427 & 13.407675 & 11.447057 & 10.251806 & 6.066312 & 3.370239 & . & . \\ 12.72644 & 12.109136 & 14.411002 & 9.212519 & 9.383110 & 9.598256 & 7.515112 & 5.428889 & . \\ 13.652585 & 12.723470 & 14.743105 & 9.583766 & 9.497679 & 10.645900 & 8.491044 & 6.351465 & 2.067250 \\ \end{pmatrix}

D ^2 = D_{X.2} = \begin{pmatrix} 8.468249 & . & . & . & . & . & . & . & . \\ 8.654206 & 2.590268 & . & . & . & . & . & . & . \\ 10.206204 & 10.165236 & 8.618267 & . & . & . & . & . \\ 11.584485 & 8.59487 & 6.787107 & 4.276539 & . & . & . & . & . & . \\ 11.291854 & 14.396110 & 13.733477 & 10.068224 & 13.259764 & . & . & . & . \\ 11.658895 & 13.683473 & 13.383251 & 14.044991 & 15.817861 & 7.021182 & . & . & . \\ 14.062164 & 13.049449 & 12.617794 & 15.302861 & 15.838310 & 10.891903 & 5.262154 & . & . \\ 16.256160 & 15.665912 & 14.480963 & 12.450512 & 14.028966 & 7.979774 & 8.511634 & 8.294253 & . \\ 18.757977 & 17.508699 & 16.48445 & 14.675626 & 15.968192 & 10.218107 & 10.347856 & 9.414303 & 2.783625 \\ \end{pmatrix}

D ^3 = D_{X.3} = \begin{pmatrix}0.3492754 & . & . & . & . & . & . & . & . \\ 0.8894723 & 1.1749062 & . & . & . & . & . & . & . \\ 0.6387046 & 0.8614683 & 0.4566955 & . & . & . & . & . \\ 0.4195043 & 0.5402316 & 1.0671448 & 0.9395269 & . & . & . & . & . & . \\ 0.8896619 & 0.8800673 & 1.1374413 & 1.0969176 & 0.7675140 & . & . & . & . \\ 1.0559910 & 1.2815324 & 0.7830014 & 0.9729985 & 0.9764878 & 0.9133108 & . & . & . \\ 1.0493594 & 1.2805961 & 0.6923618 & 0.8704422 & 0.9995280 & 0.9869881 & 0.2586848 & . & . \\ 0.8010555 & 1.0112298 & 0.7097423 & 0.6910680 & 1.0520658 & 1.0763887 & 0.9354323 & 1.0126208 & . \\ 0.8148949 & 0.9419109 & 1.05555571 & 1.0545192 & 0.5546100 & 0.6534876 & 0.5768373 & 0.6453223 & 1.0997779 \\ \end{pmatrix}

– En première étape, nous réorganisons les matrices de distance D ^1, D ^2, D ^3 pour les transformer en vecteur afin de pouvoir appliquer le coefficient de corrélation partielle de Pearson,

V_{D ^1} = (2.399264, \cdots 13.652858,

7.958839, \cdots, 12.723470,

8.640587, \cdots 14.743105,

3.546381, \cdots, 9.583766,

11.692279, \cdots, 9.497679,

2.760591, \cdots, 10.645900,

3.370239, \cdots, 8.491044,

5.428889, 6.351465,

2.067250)

Et,

V_{D ^2} = (8.468249, \cdots, 18.757977,

2.590268, \cdots, 17.508699,

8.618267, \cdots, 16.448445,

4.276539, \cdots, 14.675626,

13.259764, \cdots, 15.968192,

7.021182, \cdots, 10.218107,

5.262154, \cdots, 10.347856,

8.294253, 9.414303,

2.783625)

Et,

V_{D ^3} = (0.3492754, \cdots, 0.8148949,

1.1749062, \cdots, 0.9419109,

0.4566955, \cdots, 1.0555571,

0.9395269, \cdots, 1.0545192,

0.7675140, \cdots, 0.5546100,

0.9133108, \cdots, 0.6534876,

0.2586848, \cdots, 0.5768373,

1.0126208, 0.6453223,

1.0997779)

– En seconde étape, nous calculons le coefficient de corrélation partielle de Pearson entre V_{D ^1}, V_{D ^2} / V_{D ^3}. Auparavant, déterminons les différents termes nécessaires basé sur le coefficient (non partielle) de Pearson,

corr(V_{D ^1}, V_{D ^2}) = 0.7421511, corr(V_{D ^1}, V_{D ^3}) = 0.3442373, corr(V_{D ^2}, V_{D ^3}) = 0.1053867

\Rightarrow R_M (D ^1, D ^2 / D ^3) = \frac{0.7421511 - 0.3442373 \times 0.1053867}{\sqrt{1 - 0.3442373 ^2} \times \sqrt{1 - 0.1053867 ^2}}

= \frac{0.7421511 - 0.03627803}{0.9388827 \times 0.9944313}

= \frac{0.7058731}{0.9336543}

= 0.7560326

– En troisième étape, nous fixons B = 999 permutations et calculons les différents R_M ^b (D ^1, D ^2 / D ^3). Nous obtenons l’histogramme de distribution des R_M (D ^1, D ^2 / D ^3), ^b, b \in [1, 999] suivant,

add1

– Enfin, pour la quatrième et dernière étape, nous construisons le test pour déterminer si R_M (D ^1, D ^2 / D ^3) peut être considéré comme un outlier. Si nous nous basons sur le test des permutations, nous obtenons,

p = \frac{\sharp \lbrace b / R_M (D ^1, D ^2 / D ^3) ^b \geq R_M (D ^1, D ^2 / D ^3) \rbrace + 1}{999 + 1} = \frac{1 + 1}{1000} = \frac{2}{1000} = 0.002

Nous avons donc une p-valeur p = 0.002 < 5 \%. Nous concluons au rejet de H_0  et donc que le coefficient de corrélation partielle entre les deux matrices de distance D ^1, D ^2 / D ^3 est différent de 0, soit que la corrélation entre D ^1, D ^2 ne dépend pas de D ^3.

\bullet Application informatique: 

Procédure SAS: http://www.stat.ncsu.edu/people/fuentes/courses/madrid/lab/mantel1.sas

Package et fonction R: http://cc.oulu.fi/~jarioksa/softhelp/vegan/html/mantel.html

\bullet Bibliographie:

– The detection of disease clustering and a generalized regression approach de Nathan Mantel

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