Can I fit a dbRDA on the following dataset:

CommunityData.distance <- matrix(c(0.58,0,0,0,0,0,0.26,0.20,0,0,0,0,0.64,0.21,0.22,0,0,0,0.18,0.40,0.91,0.78,0,0,0.37,0.23,0.68,0.91,0.25,0,0.86,0.25,0.92, 0.85,0.74,0.36), nrow=6, ncol=6, byrow = TRUE)

Envdata <- data.frame(Plot = c(1, 1, 2, 2, 3, 3), Temperature = c(0.5, 0.5, 1, 1, 2.5, 2.5), Species = c(A, B, A, B, A, B))

dbRDA <- capscale(CommunityData.distance <- Species + Temperature, data=Envdata)

I am primarily concerned about the repeated measure of temperature for two different samples.


This is fine; temperature won't be able to account for (model) any of the within-plot variation in the data, only the between-plot variation, because the data are constant within and only vary between plots.

You can't include plot and temperature in the model as explanatory effects nor can you control for one variable and then try to estimate the effect of the other. plot and temperature are the same data, just rescaled. You could force differences say by treating temperature as linear but including plot as a factor as the factor representation of plot (by two additional variables on top of the intercept compared with one additional parameter if you treat temperature as linear).

You should now probably use the dbrda() in {vegan} to fit this model, in place of capscale().


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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