I am working with a dataset of microbial species abundances at time points (baseline, 8h, 24h, 48h, 72h, 96h, 120h) for 23 subjects and have weighted unifrac, unweighted unifrac, and Bray-curtis dissimilarity matrices. Of the 23 subjects (variable name = SubjectString), 8 are infected and 15 are healthy. I am looking to find an appropriate call to determine the effect of SubjectString. Originally this is the call I was using and expected results for Infection, SubjectString, and their interaction:

adonis(formula = dm ~ SubjectString * Infection, data = map,         permutations = 999) 

Permutation: free
Number of permutations: 999

Terms added sequentially (first to last)

               Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
SubjectString  22    7.9834 0.36288  2.4309 0.34619  0.001 ***
Residuals     101   15.0771 0.14928         0.65381           
Total         123   23.0604                 1.00000           
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

However, SubjectString drops out of the results (I believe this has something to do with unequal DFs...). For my knowledge, why exactly is this? And importantly, is there an appropriate call / test to investigate SubjectString?

Any insight is appreciated.. I am relatively new to PERMANOVA and every time I find myself studying it I become increasingly confused!


1 Answer 1


Infection and subject are linearly dependent; if I'm estimating a separate mean for each subject, knowing whether or not they were infected tells me nothing new, there is no additional variation in the response that Infection can add. In R's terminology the main effect and interaction of Infection with SubjectString are aliased and it is not possible to estimate their effect once we include SubjectString in the model.

Why not just include Infection in the model and restrict permutations within levels of SubjectString (something like)

ctrl <- with(map, how(blocks = SubjectString, nperm = 999))
adonis(dm ~ Infection, data = map, permutations = ctrl)
  • $\begingroup$ I have played with using strata; however, I am trying to find the appropriate test to determine the amount of variation explained by SubjectString ... $\endgroup$
    – Funsaized
    Commented Dec 12, 2017 at 22:22
  • $\begingroup$ Then you can't include both SubjectString and Infection into the model. Once you know SubjectString, there is nothing new that Infection can bring to the table - the Infection part is simply not identifiable given SubjectString. $\endgroup$ Commented Dec 12, 2017 at 22:24
  • $\begingroup$ Hmm ok thanks for your explanation! Looks like need to look into simply excluding infection from the model or other options. $\endgroup$
    – Funsaized
    Commented Dec 12, 2017 at 22:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.