adonis em vegan: ordem das variáveis ​​ou uso de estratos

9

Estou usando a adonis()função no veganpacote 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. Examinei todas as postagens no CV e no 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 /programming/26768779/vegan-adonis-unbalanced-design-ss-type-ii-or-iii :

em que 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 não sei como interpretar isso, porque a ordem é importante e não tenho muita certeza se há diferenças entre as espécies.

Após algumas pesquisas, decidi usar os estratos.

Penso que isto está dizendo: as espécies co-ocorrentes são diferentes quando você só compara 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  

Depois, para fazer a pergunta sobre o local, usei espécies no bloqueio.

Eu acho que isso está dizendo: os sites são diferentes quando você compara apenas a mesma espécie

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 de uma determinada espécie difere entre os locais, mas que a comunidade microbiana não difere entre as espécies hospedeiras.

Minha abordagem está correta ou estou interpretando mal o uso de estratos (por exemplo, bloqueio)?

Ou existe uma maneira de obter uma média dos testes quando mudei a ordem das variáveis?

Carly MW
fonte

Respostas:

4

Como você se notou, executando dois modelos adonis com seus fatores fixos invertidos, você vê que a variação atribuída a cada fator e os valores P diferem a cada vez. Isso ocorre em projetos desequilibrados como o seu, onde os graus de liberdade associados a cada fator diferem.
A partir da descrição do seu experimento, parece um caso clássico de um design aninhado em que Species está aninhado no Site. Neste caso, o modelo que você está procurando deve olhar como este:
adonis <- adonis(jacc ~ Site / Species, strata = Site, data = df_compare).
Observe que o aninhamento deve ser declarado na formulação do modelo e nos estratos (ver resposta de Jari Oksanen ).

Roey Angel
fonte