Commit def7eed6 authored by magali's avatar magali
Browse files

html et rmd f3w

parent 0c8354d2
......@@ -135,7 +135,49 @@ table(get_variable(frogs.data, "Group_bis"))
```{r variable-3, eval = TRUE, echo=TRUE}
table(get_variable(frogs.data, "Cohorte"))
```
# Vérification de l'effet cohorte
Est-ce que cohorte et groupe sont très corrélés ou non ?
<div class="alert alert-info" role="alert">Il faut savoir si la cohorte est une variable de confusion potentielle ou non et donc il faut calculer un tableau de contingence croisé Cohorte / Group_bis et faire un test de Khi-2 et test de Fisher sur ce tableau.</div>
```{r table contingence, eval = TRUE, echo=TRUE}
table(get_variable(frogs.data, "Group_bis"), get_variable(frogs.data, "Cohorte"))
```
<div class="alert alert-warning" role="alert">Nous avons pratiquement les mêmes proportions pour cohorte 1 et 2 dans chaque groupe (ce n'est pas exactement pareil mais ça s'en rapproche suffisamment pour que l'effet cohorte ne pollue pas trop l'effet groupe)</div>
<div class="alert alert-info" role="alert">Je fais ensuite un test de Khi-2 et test de Fisher sur ce tableau de contingence</div>
```{r test-correlation, eval = TRUE, echo=TRUE}
chisq.test(table(get_variable(frogs.data, "Group_bis"), get_variable(frogs.data, "Cohorte")))
fisher.test(table(get_variable(frogs.data, "Group_bis"), get_variable(frogs.data, "Cohorte")))
```
<div class="alert alert-warning" role="alert">Pour les 2 tests, la pvalue = 0.9 donc le résultat est non significatif, donc il n'y a pas de lien fort entre l'effet cohorte et l'effet groupe.
Il n'y a pas d'associations entre la cohorte et le groupe dans le design expérimental et l'estimation de l'effet groupe ne sera pas systématiquement corrompue par l'effet cohorte.
Ça ne veut pas dire pour autant qu'il n'y a pas d'effet cohorte (voir permanova plus bas, il y a un faible effet) mais ça justifie de pooler les échantillons quand on étudies l'effet groupe.
Je peux donc réaliser un pool des 2 cohortes pour l'analyse</div>
```{bash}
Ce qu'il faudrait calculer en plus pour savoir si la cohorte est une variable de confusion potentielle c'est un tableau de contingence croisé Cohorte / Group_bis par exemple avec
table(get_variable(frogs.data, "Group_bis"), get_variable(frogs.data, "Cohorte"))
pour voir à quel point les deux quantités sont corrélés (ou au contraire indépendantes) et donc à quel point l'effet cohorte peut polluer ton effet groupe.
Dans un monde idéal, les échantillons sont équirépartis entre cohorte et groupe (autant de cohorte 1 que de cohorte 2 dans chaque groupe). L'effet cohorte est source de variabilité et induit du bruit mais ne change pas l'estimation de l'effet groupe.
Dans un monde pourri, certains groupes sont intégralement attribués à la cohorte 1 et d'autres intégralement à la cohorte 2. Dans ce monde, il est impossible d'estimer l'effet groupe indépendamment de l'effet cohorte (il lui est subordonné).
```
# Visualisation de l'abondance par échantillon {.tabset}
......@@ -1066,7 +1108,7 @@ family.palette<- c("S-A" = "#A2E06F",
"AG" = "#8C67A9")
p <- plot_ordination(frogs.data.rare, ord, color = "Group_bis")
p <- plot_ordination(frogs.data.rare, ord, color = "Group_bis", shape="Cohorte")
p <- p + theme_bw() + ggtitle("MDS + Bray Curtis")+ scale_color_manual(values = family.palette)
p <- p +geom_point(size=2)+ stat_ellipse(aes(group = Group_bis), size = 1)+
annotate(geom="text", x=0.5, y = 0.3, label = "S-A", size = 5, color = "#A2E06F")+
......@@ -1085,12 +1127,29 @@ Analyse multivariée de la variance par permutations basée sur les matrices de
* Adonis sur la matrice Bray Curtis
<div class="alert alert-warning" role="alert">Permanova pour vérifier l'effet cohorte</div>
```{bash}
Réponse Mahendra: Le plus simple consiste à pooler toutes tes données et à faire par exemple une PERMANOVA sur l'effet cohorte pour vérifier s'il est significatif et correspond à une valeur élevée de R2. Si oui, ce serait l'effet à mettre en premier dans ton modèle de PERMANOVA, puisque la procédure teste les effets séquentiellement
> Donc vu ces 2 résultats, c'est impossible de faire un pool ???
Pas exactement, ça veut dire que l'effet cohorte existe mais est finalement assez faible par rapport à la variance observée. C'est plutôt positif, ça veut dire que les deux cohortes sont certes systématiquement différentes mais que les différences sont très faibles par rapport à la variabilité induite par les groupes (dans ton exemple) et qu'il n'est donc pas absolument nécessaire de travailler par cohorte. Si le R2 de la cohorte avait été du même ordre de grandeur que celui du groupe, le problème aurait été différent.
Encore une fois, ce qui va vraiment compter c'est ton design: est-ce que cohorte et groupe sont très corrélés ou non?
Il faut surtout travailler cohorte par cohorte si:
- ton effet cohorte est confondu avec l'effet qui t'intéresse (par exemple l'effet groupe)
ou si
- ton effet cohorte est "très fort" par rapport à l'effet qui t'intéresse (du même ordre de grandeur) et risque de masquer avec l'effet qui t'intéresse (par exemple ici l'effet groupe) par la structure qu'il induit.
```
```{r 35-adonis-bc-1, eval=TRUE}
adonis(dist.bc ~ Group + Group_bis ,data = as(sample_data(frogs.data.rare), 'data.frame'))
adonis(dist.bc ~ Cohorte + Group_bis ,data = as(sample_data(frogs.data.rare), 'data.frame'))
```
Df: degree of freedom.
Sums Of Sqs: sum of squares.
Sums Of Sqs: sum of squares.
MeanSqs: sum of squares by degree of freedom.
......@@ -1101,6 +1160,22 @@ R2: partial R-squared.
Pr(>F) p-value based
<div class="alert alert-warning" role="alert">La pval sur l'effet cohorte est de 0,003 donc les 2 cohortes sont significativement différentes.
Le R2 sur l'effet cohorte est très petit 0,04056 ce qui signifie qu'il y a qu'environ 4% de la variance qui est expliquée par l'effet cohorte donc beaucoup trop de variation inexpliqué.
Le R2 sur l'effet group est de 0.36497, il est plus élevé que celui de l'effet cohorte.
Ces résultats montre que l'effet cohorte existe mais est finalement assez faible par rapport à la variance observée.
Cela veut dire que les deux cohortes sont certes systématiquement différentes mais que les différences sont très faibles par rapport à la variabilité induite par les groupes.
Ce résultat confirme les résultats des tests Khi-2 et Fisher, nous pouvons pooler les cohortes.</div>
```{bash}
Plus précisément, en incluant "cohorte" avant "group_bis", tu contrôles pour (= neutralise) l'effet cohorte quand tu calcules l'effet groupe sur les données poolés. Si tu faisais le modèle avec juste "Group_bis", tu aurais peut-être un R2 un peu plus grand mais qui serait un mélange de Cohorte et de Group_bis. Contrôler l'effet de nuisance "Cohorte" est la bonne façon de faire pour estimer l'effet "Group_bis".
```
### Plot ordination Jaccard
......@@ -1108,7 +1183,7 @@ Pr(>F) p-value based
ord <- ordinate(frogs.data.rare, method = "MDS", distance = "cc")
p <- plot_ordination(frogs.data.rare, ord, color = "Group_bis")
p <- plot_ordination(frogs.data.rare, ord, color = "Group_bis", shape="Cohorte")
p <- p + theme_bw() + ggtitle("MDS + Jaccard")+ scale_color_manual(values = family.palette)
p <- p +geom_point(size=2)+ stat_ellipse(aes(group = Group_bis), size = 1)+
annotate(geom="text", x=0.4, y = -0.4, label = "S-A", size = 5, color = "#A2E06F")+
......@@ -1123,7 +1198,7 @@ plot(p)
* Adonis sur la matrice Jaccard
```{r 35-adonis-jac-1, eval=TRUE}
adonis(dist.jac ~ Group_bis,data = as(sample_data(frogs.data.rare), 'data.frame'))
adonis(dist.jac ~ Cohorte + Group_bis,data = as(sample_data(frogs.data.rare), 'data.frame'))
```
### Plot ordination Unifrac
......@@ -1132,7 +1207,7 @@ adonis(dist.jac ~ Group_bis,data = as(sample_data(frogs.data.rare), 'data.frame'
```{r 30-ord-plot-unifrac,fig.width=10,fig.height=5, eval=TRUE}
ord <- ordinate(frogs.data.rare, method = "MDS", distance = "unifrac")
p <- plot_ordination(frogs.data.rare, ord, color = "Group_bis")
p <- plot_ordination(frogs.data.rare, ord, color = "Group_bis", shape="Cohorte")
p <- p + theme_bw() + ggtitle("MDS + Unifrac")+ scale_color_manual(values = family.palette)
p <- p +geom_point(size=2)+ stat_ellipse(aes(group = Group_bis), size = 1)+
annotate(geom="text", x=0.1, y = -0.2, label = "S-A", size = 5, color = "#A2E06F")+
......@@ -1148,7 +1223,7 @@ plot(p)
* Adonis sur la matrice Unifrac
```{r 36-adonis-uni-1, eval=TRUE}
adonis(dist.uf ~ Group_bis,data = as(sample_data(frogs.data.rare), 'data.frame'))
adonis(dist.uf ~ Cohorte + Group_bis,data = as(sample_data(frogs.data.rare), 'data.frame'))
```
### Plot ordination Weighted Unifrac
......@@ -1156,7 +1231,7 @@ adonis(dist.uf ~ Group_bis,data = as(sample_data(frogs.data.rare), 'data.frame')
```{r 31-ord-plot-Wunifrac,fig.width=10,fig.height=5, eval=TRUE}
ord <- ordinate(frogs.data.rare, method = "MDS", distance = "wUnifrac")
p <- plot_ordination(frogs.data.rare, ord, color = "Group_bis")
p <- plot_ordination(frogs.data.rare, ord, color = "Group_bis", shape="Cohorte")
p <- p + theme_bw() + ggtitle("MDS + Weighted Unifrac")+ scale_color_manual(values = family.palette)
p <- p +geom_point(size=2)+ stat_ellipse(aes(group = Group_bis), size = 1)+
annotate(geom="text", x=0.1, y = -0.22, label = "S-A", size = 5, color = "#A2E06F")+
......@@ -1171,7 +1246,7 @@ plot(p)
* Adonis sur la matrice wUnifrac
```{r 37-adonis-wuni-1, eval=TRUE}
adonis(dist.wuf ~ Group_bis,data = as(sample_data(frogs.data.rare), 'data.frame'))
adonis(dist.wuf ~ Cohorte + Group_bis,data = as(sample_data(frogs.data.rare), 'data.frame'))
```
## Clustering des échantillons {.tabset}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment