Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0...

10
Master Biologie Intégrative 2017-2018 Biostatistiques avancées Responsable du cours : Yves Desdevises Analyse multivariable Les méthodes d’analyses multivariables (« multivariées », souvent utilisé, n’est pas une bonne traduction mais est acceptable) ont l’avantage de considérer simultanément des ensembles de variables, et ainsi de prendre en compte leurs relations en permettant de mieux comprendre la structure des données (de façon descriptive), voire de les interpréter statistiquement à l’aide de tests spécifiques. La régression multiple est ainsi une méthode d’analyse multivariable, et a déjà été vue. Nous allons voir ici les types de méthodes les plus courant et les plus simples (il en existe bien d’autres) : les ordinations sans contrainte, les groupements, et un test statistique, le test de Mantel. Nous illustrons ces méthodes avec 2 fichiers, qui concernent les mêmes objets, 10 cafés d’une grande ville européenne : Le fichier cafe_car.txt contient 3 caractéristiques liées au « standing » de l’établissement : existence d’une spécialité, présence d’un hôtel, gamme de prix. Le fichier cafe_cli.txt donne des informations sur les catégories socio-professionnelles qui fréquentent ces cafés. Pour un grand nombre d’analyses, nous aurons besoin du package vegan, qui doit avoir été installé préalablement et qu’il convient de charger : library(vegan) Ordinations ACP Les cafés sont ils structurés en fonction de leur standing, et si oui, quelles sont les variables qui semblent expliquer les différents groupes ? Comme les variables ne sont pas affectées par le problème du double-zéro, nous pouvons réaliser une analyse en composantes principales (ACP). Avec la version basique de R : cafenv=read.table(file.choose(),header=T) summary(prcomp(cafenv,center=TRUE,scale=TRUE)) Importance of components: PC1 PC2 PC3 Standard deviation 1.3291 1.0386 0.39330 Proportion of Variance 0.5889 0.3596 0.05156 Cumulative Proportion 0.5889 0.9484 1.00000 Histogramme des valeurs propres : Travaux Dirigés n o 6 Topo

Transcript of Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0...

Page 1: Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0 0.5 1.0 1.5 2.0 2.5 CA1 A2 C Cadres_superieurs Etudiants Ouvriers Meres_de_famille

Master Biologie Intégrative 2017-2018

Biostatistiques avancées

Responsable du cours : Yves Desdevises

Analyse multivariable

Les méthodes d’analyses multivariables (« multivariées », souvent utilisé, n’est pas une bonne traduction mais est acceptable) ont l’avantage de considérer simultanément des ensembles de variables, et ainsi de prendre en compte leurs relations en permettant de mieux comprendre la structure des données (de façon descriptive), voire de les interpréter statistiquement à l’aide de tests spécifiques. La régression multiple est ainsi une méthode d’analyse multivariable, et a déjà été vue. Nous allons voir ici les types de méthodes les plus courant et les plus simples (il en existe bien d’autres) : les ordinations sans contrainte, les groupements, et un test statistique, le test de Mantel. Nous illustrons ces méthodes avec 2 fichiers, qui concernent les mêmes objets, 10 cafés d’une grande ville européenne : Le fichier cafe_car.txt contient 3 caractéristiques liées au « standing » de l’établissement : existence d’une spécialité, présence d’un hôtel, gamme de prix. Le fichier cafe_cli.txt donne des informations sur les catégories socio-professionnelles qui fréquentent ces cafés. Pour un grand nombre d’analyses, nous aurons besoin du package vegan, qui doit avoir été installé préalablement et qu’il convient de charger : library(vegan) Ordinations ACP Les cafés sont ils structurés en fonction de leur standing, et si oui, quelles sont les variables qui semblent expliquer les différents groupes ? Comme les variables ne sont pas affectées par le problème du double-zéro, nous pouvons réaliser une analyse en composantes principales (ACP). Avec la version basique de R : cafenv=read.table(file.choose(),header=T) summary(prcomp(cafenv,center=TRUE,scale=TRUE)) Importance of components: PC1 PC2 PC3 Standard deviation 1.3291 1.0386 0.39330 Proportion of Variance 0.5889 0.3596 0.05156 Cumulative Proportion 0.5889 0.9484 1.00000 Histogramme des valeurs propres :

Travaux Dirigés n o 6 Topo

Page 2: Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0 0.5 1.0 1.5 2.0 2.5 CA1 A2 C Cadres_superieurs Etudiants Ouvriers Meres_de_famille

plot(prcomp(cafenv,center=TRUE,scale=TRUE))

ACPr

Variances

0.0

0.5

1.0

1.5

Diagramme d’ordination : biplot(prcomp(cafenv,center=TRUE,scale=TRUE))

-0.6 -0.4 -0.2 0.0 0.2

-0.6

-0.4

-0.2

0.0

0.2

PC1

PC2

Grutli

Armourins

BeaulacBeaux-Arts

Casa_d'Italia

Croc'NatureChina_Town

Cafe_des_Parcs

Portes-Rouges

Eurotel

-3 -2 -1 0 1

-3-2

-10

1

Specialite

Hotel

Prix

Avec vegan : library(vegan) ACP=rda(cafenv,scale=T) ACP Call: rda(X = cafenv, scale = T) Inertia Rank Total 3 Unconstrained 3 3 Inertia is correlations Eigenvalues for unconstrained axes: PC1 PC2 PC3 1.7666 1.0787 0.1547 Pour une projection et un biplot qui conservent la position des objets

Page 3: Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0 0.5 1.0 1.5 2.0 2.5 CA1 A2 C Cadres_superieurs Etudiants Ouvriers Meres_de_famille

summary(ACP,scaling=1) Call: rda(X = cafenv, scale = T) Partitioning of correlations: Inertia Proportion Total 3 1 Unconstrained 3 1 Eigenvalues, and their contribution to the correlations Importance of components: PC1 PC2 PC3 Eigenvalue 1.7666 1.0787 0.15469 Proportion Explained 0.5889 0.3596 0.05156 Cumulative Proportion 0.5889 0.9484 1.00000 Scaling 1 for species and site scores * Sites are scaled proportional to eigenvalues * Species are unscaled: weighted dispersion equal on all dimensions * General scaling constant of scores: 2.279507 Species scores PC1 PC2 PC3 Specialite 0.4933 -2.0806 -0.7899 Hotel -1.6434 0.2050 -1.5663 Prix -1.5006 -0.9084 1.4557 Site scores (weighted sums of species scores) PC1 PC2 PC3 Grutli 0.22475 0.31090 0.10771 Armourins 0.49212 0.47276 -0.15166 Beaulac -1.06012 0.08073 -0.08847 Beaux-Arts -0.04262 0.14904 0.36707 Casa_d'Italia 0.42129 -0.51803 -0.20699 Croc'Nature 0.15391 -0.67989 0.05238 China_Town 0.15391 -0.67989 0.05238 Cafe_des_Parcs 0.22475 0.31090 0.10771 Portes-Rouges 0.49212 0.47276 -0.15166 Eurotel -1.06012 0.08073 -0.08847 biplot(ACP,scaling=1)

Page 4: Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0 0.5 1.0 1.5 2.0 2.5 CA1 A2 C Cadres_superieurs Etudiants Ouvriers Meres_de_famille

-2.0 -1.5 -1.0 -0.5 0.0 0.5

-2.0

-1.5

-1.0

-0.5

0.0

0.5

PC1

PC2

Specialite

Hotel

Prix

Grutli

Armourins

BeaulacBeaux-Arts

Casa_d'Italia

Croc'NatureChina_Town

Cafe_des_Parcs

Portes-Rouges

Eurotel

Même analyse avec projection conservant les corrélations entre les variables : summary(ACP,scaling=2) Call: rda(X = cafenv, scale = T) Partitioning of correlations: Inertia Proportion Total 3 1 Unconstrained 3 1 Eigenvalues, and their contribution to the correlations Importance of components: PC1 PC2 PC3 Eigenvalue 1.7666 1.0787 0.15469 Proportion Explained 0.5889 0.3596 0.05156 Cumulative Proportion 0.5889 0.9484 1.00000 Scaling 2 for species and site scores * Species are scaled proportional to eigenvalues * Sites are unscaled: weighted dispersion equal on all dimensions * General scaling constant of scores: 2.279507 Species scores PC1 PC2 PC3 Specialite 0.3785 -1.2476 -0.1794 Hotel -1.2611 0.1229 -0.3557 Prix -1.1515 -0.5447 0.3305 Site scores (weighted sums of species scores) PC1 PC2 PC3 Grutli 0.29288 0.5185 0.4743 Armourins 0.64131 0.7884 -0.6679 Beaulac -1.38150 0.1346 -0.3896 Beaux-Arts -0.05554 0.2485 1.6165 Casa_d'Italia 0.54900 -0.8639 -0.9115 Croc'Nature 0.20057 -1.1338 0.2307 China_Town 0.20057 -1.1338 0.2307 Cafe_des_Parcs 0.29288 0.5185 0.4743 Portes-Rouges 0.64131 0.7884 -0.6679 Eurotel -1.38150 0.1346 -0.3896

Page 5: Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0 0.5 1.0 1.5 2.0 2.5 CA1 A2 C Cadres_superieurs Etudiants Ouvriers Meres_de_famille

biplot(ACP,scaling=2)

-1.5 -1.0 -0.5 0.0 0.5

-1.0

-0.5

0.0

0.5

PC1

PC2

Specialite

Hotel

Prix

Grutli

Armourins

Beaulac

Beaux-Arts

Casa_d'Italia

Croc'NatureChina_Town

Cafe_des_Parcs

Portes-Rouges

Eurotel

Il est possible de générer directement les 2 diagrammes avec la fonction cleanplot.pca.R, qu’il faut charger : cleanplot.pca(ACP,point=T)

-1.5 -1.0 -0.5 0.0 0.5

-3-2

-10

1

PCA - scaling 1

PC1

PC2

GrutliArmourins

Beaulac Beaux-Arts

Casa_d'ItaliaCroc'NatureChina_Town

Cafe_des_ParcsPortes-Rouges

Eurotel

Specialite

Hotel

Prix

-1.0 -0.5 0.0 0.5

-2-1

01

2

PCA - scaling 2

PC1

PC2

Grutli

Armourins

BeaulacBeaux-Arts

Casa_d'Italia

Croc'NatureChina_Town

Cafe_des_Parcs

Portes-Rouges

Eurotel

Specialite

Hotel

Prix

Cette fonction génère également un cercle des corrélations pour juger de l’importance des variables. AFC On veut maintenant classer les cafés en fonction de leur fréquentation. Le tableau correspondant est un tableau de contingence, qui contient des fréquences. Ces données sont sensibles au double-zéro (l’absence de la même catégorie de personnes à plusieurs cafés ne signifie pas forcément que ces cafés se ressemblent), il convient donc de réaliser une analyse factorielle des correspondances (AFC). Cette analyse permet simultanément de voir si les clients eux-mêmes forment des groupes. library(vegan) cafcli=read.table(file.choose(),header=T)

Page 6: Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0 0.5 1.0 1.5 2.0 2.5 CA1 A2 C Cadres_superieurs Etudiants Ouvriers Meres_de_famille

AFC=cca(cafcli) AFC Call: cca(X = cafcli) Inertia Rank Total 0.7366 Unconstrained 0.7366 5 Inertia is mean squared contingency coefficient Eigenvalues for unconstrained axes: CA1 CA2 CA3 CA4 CA5 0.4874 0.1744 0.0387 0.0203 0.0159 On peut ensuite effectuer la projection en préservant la position des lignes (cafés) : summary(AFC,scaling=1) Call: cca(X = cafcli) Partitioning of mean squared contingency coefficient: Inertia Proportion Total 0.7366 1 Unconstrained 0.7366 1 Eigenvalues, and their contribution to the mean squared contingency coefficient Importance of components: CA1 CA2 CA3 CA4 CA5 Eigenvalue 0.4874 0.1744 0.03867 0.02028 0.01589 Proportion Explained 0.6617 0.2367 0.05250 0.02753 0.02157 Cumulative Proportion 0.6617 0.8984 0.95090 0.97843 1.00000 Scaling 1 for species and site scores * Sites are scaled proportional to eigenvalues * Species are unscaled: weighted dispersion equal on all dimensions Species scores CA1 CA2 CA3 CA4 CA5 Cadres_superieurs 1.3520 -0.18671 0.2603 -0.2914 0.8996 Etudiants -0.8257 -0.06475 -0.2713 1.7621 0.7652 Ouvriers -0.9774 -0.91405 1.0331 -0.7390 -0.3708 Meres_de_famille -0.4489 -0.46587 -2.6743 -1.1493 -0.1323 Ecolos -0.5091 2.51626 0.2932 -0.6206 -0.1101 Cadres_moyens 1.1042 -0.02429 -0.1105 0.9851 -2.4251 Site scores (weighted averages of species scores) CA1 CA2 CA3 CA4 CA5 Grutli -0.3068 -0.1510 0.026429 0.452112 -0.01159 Armourins -0.7669 -0.1410 -0.214581 -0.006517 0.07170 Beaulac 1.1148 -0.1569 0.018431 0.053046 0.09096 Beaux-Arts 0.3483 -0.1327 -0.408484 -0.051577 -0.21860 Casa_d'Italia -0.3925 -0.2718 -0.007916 -0.176876 0.02085 Croc'Nature -0.2330 1.1470 0.043793 -0.046778 0.08650 China_Town 0.3634 0.5187 0.021136 0.038128 -0.20138 Cafe_des_Parcs -0.1825 -0.3080 0.502810 -0.078241 -0.22177 Portes-Rouges -0.7400 -0.1645 0.075342 -0.002925 0.07245 Eurotel 1.2198 -0.1635 0.052057 -0.051212 0.13196 plot(AFC,scaling=1)

Page 7: Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0 0.5 1.0 1.5 2.0 2.5 CA1 A2 C Cadres_superieurs Etudiants Ouvriers Meres_de_famille

-1 0 1 2

-1.0

-0.5

0.0

0.5

1.0

1.5

2.0

2.5

CA1

CA2

Cadres_superieursEtudiants

Ouvriers

Meres_de_famille

Ecolos

Cadres_moyens

GrutliArmourins BeaulacBeaux-Arts

Casa_d'Italia

Croc'Nature

China_Town

Cafe_des_Parcs

Portes-Rouges Eurotel

Pour optimiser la position des colonnes (catégories de clients) : summary(AFC,scaling=2) Call: cca(X = cafcli) Partitioning of mean squared contingency coefficient: Inertia Proportion Total 0.7366 1 Unconstrained 0.7366 1 Eigenvalues, and their contribution to the mean squared contingency coefficient Importance of components: CA1 CA2 CA3 CA4 CA5 Eigenvalue 0.4874 0.1744 0.03867 0.02028 0.01589 Proportion Explained 0.6617 0.2367 0.05250 0.02753 0.02157 Cumulative Proportion 0.6617 0.8984 0.95090 0.97843 1.00000 Scaling 2 for species and site scores * Species are scaled proportional to eigenvalues * Sites are unscaled: weighted dispersion equal on all dimensions Species scores CA1 CA2 CA3 CA4 CA5 Cadres_superieurs 0.9439 -0.07796 0.05118 -0.04150 0.11339 Etudiants -0.5765 -0.02704 -0.05336 0.25094 0.09645 Ouvriers -0.6823 -0.38168 0.20317 -0.10524 -0.04673 Meres_de_famille -0.3134 -0.19454 -0.52592 -0.16368 -0.01668 Ecolos -0.3554 1.05073 0.05766 -0.08839 -0.01388 Cadres_moyens 0.7709 -0.01014 -0.02174 0.14028 -0.30567 Site scores (weighted averages of species scores) CA1 CA2 CA3 CA4 CA5 Grutli -0.4395 -0.3617 0.13439 3.17470 -0.09197 Armourins -1.0986 -0.3377 -1.09117 -0.04577 0.56887 Beaulac 1.5968 -0.3758 0.09372 0.37249 0.72162 Beaux-Arts 0.4989 -0.3179 -2.07719 -0.36217 -1.73426 Casa_d'Italia -0.5621 -0.6509 -0.04025 -1.24201 0.16538 Croc'Nature -0.3338 2.7467 0.22269 -0.32847 0.68626

Page 8: Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0 0.5 1.0 1.5 2.0 2.5 CA1 A2 C Cadres_superieurs Etudiants Ouvriers Meres_de_famille

China_Town 0.5206 1.2421 0.10748 0.26773 -1.59765 Cafe_des_Parcs -0.2614 -0.7376 2.55685 -0.54940 -1.75944 Portes-Rouges -1.0600 -0.3940 0.38312 -0.02054 0.57479 Eurotel 1.7472 -0.3916 0.26472 -0.35961 1.04691 plot(AFC,scaling=2)

-1 0 1 2

-0.5

0.0

0.5

1.0

1.5

2.0

2.5

CA1

CA2

Cadres_superieursEtudiants

Ouvriers

Meres_de_famille

Ecolos

Cadres_moyens

GrutliArmourins BeaulacBeaux-Arts

Casa_d'Italia

Croc'Nature

China_Town

Cafe_des_Parcs

Portes-Rouges Eurotel

Groupement On peut également visualiser la structure des données en utilisant les méthodes de groupement. Il existe différentes méthodes de groupements, nous allons les groupements à liens simples et complets, et selon l’association moyenne. Le choix est relativement arbitraire, les méthodes contrastent plus ou moins les groupes. La première étape, la plus importante, consiste à calculer une matrice d’association (on va prendre les distances ici) appropriées aux variables considérées. Pour les variables « environnementales » des cafés, on choisit la distance Euclidienne, en prenant soin de standardiser les données avant (decostand dans vegan) : cafenv_std=decostand(cafenv, method="standardize") Denv=dist(cafenv_std) # distance Euclidienne : choix par défaut ou (avec vegan) Denv=vegdist(cafenv_std,method="euclidean") Pour les données d’« abondances », on choisit la distance de Bray-Curtis : Dab=vegdist(cafcli) # distance de Bray-Curtis : choix par défaut, sinon method="bray" On peut maintenant effectuer le groupement : Liens simples plot(hclust(Denv,method="single")) # idem avec Dab

Page 9: Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0 0.5 1.0 1.5 2.0 2.5 CA1 A2 C Cadres_superieurs Etudiants Ouvriers Meres_de_famille

Beaulac

Eurotel

Beaux-Arts

Grutli

Cafe_des_Parcs

Armourins

Portes-Rouges

Casa_d'Italia

Croc'Nature

China_Town

0.0

0.5

1.0

1.5

2.0

2.5

Cluster Dendrogram

hclust (*, "single")D1

Height

Beaulac

Eurotel

Casa_d'Italia

Armourins

Portes-Rouges

Grutli

Cafe_des_Parcs

Croc'Nature

Beaux-Arts

China_Town

0.05

0.10

0.15

0.20

0.25

0.30

0.35

0.40

Cluster Dendrogram

hclust (*, "single")D14

Height

Liens complets plot(hclust(Denv,method="complete")) # idem avec Dab

Beaulac

Eurotel Casa_d'Italia

Croc'Nature

China_Town

Beaux-Arts

Grutli

Cafe_des_Parcs

Armourins

Portes-Rouges

01

23

Cluster Dendrogram

hclust (*, "complete")D1

Height

Beaulac

Eurotel Beaux-Arts

China_Town

Croc'Nature

Casa_d'Italia

Armourins

Portes-Rouges

Grutli

Cafe_des_Parcs

0.0

0.2

0.4

0.6

0.8

1.0

Cluster Dendrogram

hclust (*, "complete")D14

Height

Association moyenne : plot(hclust(Denv,method="average")) # idem avec Dab

Page 10: Master Biologie Intégrative 2017-2018 Biostatistiques ...plot(AFC,scaling=2) -1 0 1 2 5 . -0 0.0 0.5 1.0 1.5 2.0 2.5 CA1 A2 C Cadres_superieurs Etudiants Ouvriers Meres_de_famille

Beaulac

Eurotel Casa_d'Italia

Croc'Nature

China_Town

Beaux-Arts

Grutli

Cafe_des_Parcs

Armourins

Portes-Rouges

0.0

0.5

1.0

1.5

2.0

2.5

3.0

Cluster Dendrogram

hclust (*, "average")D1

Height

Beaulac

Eurotel

Casa_d'Italia

Armourins

Portes-Rouges

Grutli

Cafe_des_Parcs

Croc'Nature

Beaux-Arts

China_Town

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Cluster Dendrogram

hclust (*, "average")D14

Height

Test de Mantel On cherche à savoir si les clients choisissent leurs cafés selon leurs caractéristiques, donc mesurer et tester la corrélation linéaire entre les distances entre les cafés, basées d’une part sur leurs caractéristiques (Denv), d’autre part sur leur fréquentation (Dab). Le test de Mantel est spécifiquement conçu pour cela, et teste l’hypothèse nulle (absence de lien) par permutations. mantel(Denv,Dab) # 999 permutations par défaut, modifiable via « permutations » Mantel statistic based on Pearson's product-moment correlation Call: mantel(xdis = Denv, ydis = Dab) Mantel statistic r: 0.716 Significance: 0.001 Upper quantiles of permutations (null model): 90% 95% 97.5% 99% 0.164 0.233 0.316 0.449 Permutation: free Number of permutations: 999