I have ecological community data for about 100 sites across the United States, and a question I'm interested in is how and why these communities differ. To answer this, I've calculated taxonomic distances between community pairs (turnover, calculated using vegdist in the R package vegan), which is my response variable. I also have several environmental predictor variables that I think could explain differences in community composition/vegetation type. These include both categorical (substrate type) and continuous (Mean Annual Temp, Annual Precipitation, Temp Seasonality, Snowcover Duration) predictor variables. PERMANOVA (adonis2) appears to be the ideal approach to understand which predictors best explain turnover.
My issue is there are several other variables that I would like to to account for before I run the PERMANOVA. These include latitude and longitude, area, and survey date (days into the year) of each site.
Is it reasonable to run a dbrda() first, using turnover as the response and these variables I need to account for as the predictors, and use the residuals of this analysis as the response for a PERMANOVA analysis with the predictors I am actually interested in? Or, are there certain assumptions that cannot be met if I take this approach?
Thanks in advance!
2 Answers 2
It is good to understand that adonis2(<model>) is identical to anova(dbrda(<model>)). So you should not take residuals from dbrda to adonis2, but you should define and test your model in one analysis, dbrda. Function dbrda knows partial models that you could use in your case. Crucial difference between partial models (term Condition) and regression on residuals is that partial models know the linear dependencies between partialling terms (Condition) and model terms (constraints), whereas regression on residuals does not. These partial terms (Conditions) are just those variables that you would like to account for before main analysis.
This concerns CRAN release of vegan (now version 2.7-2). In the development version of vegan in github (now 2.8-0) adonis2 can also handle partial models. There the difference between dbrda and adonis2 is just the taste of method (some people think adonis2 is sweeter, but it is just added sugar).
-
$\begingroup$ Thank you! This was very helpful. I had read that I could "detrend" a distance/turnover matrix by taking the residuals of a simple
lmso I wondered if I could do the same here using residuals fromdbrda. I am happy to see I can use theConditionterm indbrdaandadonis2in vegan 2.8. Thanks again for your help! $\endgroup$Joe– Joe2025年11月24日 20:00:17 +00:00Commented 10 hours ago
I'm not sure I understood your variables. Which specific distance coefficient have you used? vegan::vegdist has several of them.
If your response variable is a distance matrix per se, you can use a db-RDA in vegan::capscale or vegan::dbrda and include all your predictor variables. But first, test for and reduce multicollinearity, check usdm::vifstep. There's no need for an additional test nor using the residuals of the first analysis.
Explore related questions
See similar questions with these tags.