adonis em vegan: ordem das variáveis ou uso de estratos
On Fevereiro 15, 2021 by admin Estou usando a função adonis()
no vegan
pacote para determinar 1) se as espécies hospedeiras co-ocorrentes variam em sua comunidade microbiana em vários locais, e 2) se os locais são diferentes. Eu examinei todas as postagens sobre CV e SO, e não há uma resposta clara sobre como determinar a significância de vários fatores usando a função adonis.
Fiz isso pela primeira vez, conforme sugerido por https://stackoverflow.com/questions/26768779/vegan-adonis-unbalanced-design-ss-type-ii-or-iii :
onde jacc é uma matriz de dissimilaridade usando a métrica jaccard
adonis <- adonis(jacc ~ Species + Site, data = df_compare) adonis Call: adonis(formula = jacc ~ Species + Site, data = df_compare) Permutation: free Number of permutations: 999 Terms added sequentially (first to last) Df SumsOfSqs MeanSqs F.Model R2 Pr(>F) Species 2 0.6055 0.30273 1.7690 0.04981 0.004 ** Site 4 2.1378 0.53445 3.1231 0.17587 0.001 *** Residuals 55 9.4122 0.17113 0.77432 Total 61 12.1554 1.00000 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Em seguida, inverta a ordem:
adonis_2 <- adonis(jacc ~ Site + Species, data = df_compare) adonis_2 Call: adonis(formula = jacc ~ Site + Species, data = df_compare) Permutation: free Number of permutations: 999 Terms added sequentially (first to last) Df SumsOfSqs MeanSqs F.Model R2 Pr(>F) Site 4 2.4385 0.60962 3.5623 0.20061 0.001 *** Species 2 0.3048 0.15238 0.8904 0.02507 0.716 Residuals 55 9.4122 0.17113 0.77432 Total 61 12.1554 1.00000 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Mas eu não sei como interpretar isso, porque a ordem é importante e Não tenho certeza se há diferenças entre as espécies.
Depois de algumas pesquisas, decidi usar estratos.
Acho que isso está dizendo: as espécies co-ocorrentes são diferentes quando você compare apenas espécies nos mesmos locais.
species_adonis <- adonis(jacc ~ Species, strata = df_compare$Site, data = df_compare) species_adonis Call: adonis(formula = jacc ~ Species, data = df_compare, strata = df_compare$Site) Blocks: strata Permutation: free Number of permutations: 999 Terms added sequentially (first to last) Df SumsOfSqs MeanSqs F.Model R2 Pr(>F) Species 2 0.6055 0.30273 1.5464 0.04981 0.335 Residuals 59 11.5500 0.19576 0.95019 Total 61 12.1554 1.00000
Então, para fazer a pergunta sobre o site, usei espécies no bloqueio.
Acho que isso está dizendo: os sites são diferentes quando você apenas compara as mesmas espécies
site_adonis <- adonis(jacc ~ Site, strata = df_compare$Species, data = df_compare) Call: adonis(formula = jacc ~ Site, data = df_compare, strata = df_compare$Species) Blocks: strata Permutation: free Number of permutations: 999 Terms added sequentially (first to last) Df SumsOfSqs MeanSqs F.Model R2 Pr(>F) Site 4 2.4385 0.60962 3.5761 0.20061 0.001 *** Residuals 57 9.7169 0.17047 0.79939 Total 61 12.1554 1.00000 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Minha conclusão é que a comunidade microbiana em uma determinada espécie difere entre os locais, mas que a comunidade microbiana não difere entre espécie hospedeira.
A minha abordagem está correta ou estou interpretando mal o uso de estratos (ou seja, bloqueio)?
Ou há uma maneira de de alguma forma fazer a média dos testes quando mudei a ordem das variáveis ?
Resposta
Como você mesmo observou, ao executar dois modelos da Adonis com seus fatores fixos invertidos, você verá que ambas as variações atribuído a cada fator e os valores P diferem a cada vez. Isso ocorre em experimentos desequilibrados como o seu, onde os graus de liberdade associados a cada fator diferem.
Pela descrição de seu experimento, parece um caso clássico de um desenho aninhado em que a espécie está aninhada no local. Neste caso, o modelo que você está procurando deve ser semelhante a este:
adonis <- adonis(jacc ~ Site / Species, strata = Site, data = df_compare)
.
Observe que o aninhamento deve ser ser declarado na formulação do modelo, bem como nos estratos (ver resposta de Jari Oksanen ).
Comentários
- você pode atualizar o link para a resposta do Oksanen?
- Desculpe, não consigo encontrar um novo link. O fórum foi encerrado.
Deixe uma resposta