My goal is to test whether native and invasive plants overlap in multivariate trait space while accounting for phylogenetic relatedness, and simultaneously determining which environmental variables are most important for explaining the variation in the traits. Phylogenetic history should be treated as a correction factor here because the goal is not to test different evolutionary models (see below).

A subset of the data can be downloaded here:

ordat <- read.csv(“Data_stackexchange.csv”, header=TRUE)
  • The dependent variables are plant traits found in columns 3 through 6: Thickness, Photo, PerN, and LMA.
  • The independent variables are Nativity, Tair_MEAN, and Rainfall_MEAN.

Previously, I estimated phylogenetic signal for each trait individually using the phylosig function. I also conducted a phylogenetically controlled PCA using phyl.pca. The phylogenetic PCA doesn’t allow you to include environmental variables. I also tried a redundancy analysis using the rda function in the vegan package, but this doesn’t take phylogenetic relatedness into account.

The model for the rda was of the form (with continuous variables log-transformed):

mod1 <- rda(ordat[,c(3,4,5,6)]~ Nativity+Condition(Tair_MEAN,Rainfall_MEAN), distance="euclidean", center=TRUE, scale=TRUE)


In this model, Nativity is the single constraining variable and the environmental variables are conditional variables. I’m able to test whether the effect of Nativity (invasive or native) is statistically significant using anova(mod1).

I’m aware of the mvMORPH and Rphylopars packages, and procD.pgls in the geomorph package as multivariate analyses that account for phylogenetic relatedness. But these are designed with the goal of fitting different evolutionary models, and they don’t allow you to include environmental covariates. I also don’t want to do a phylogenetic generalised least squares (pGLS) because those only work on one trait at a time. Dean Adams’ D-PGLS approach is appropriate for multivariate analyses but it’s unclear to me whether it can take both quantitative and qualitative predictors simultaneously.

I would really appreciate if someone can shed some light on 1) whether the functions mvgls (multivariate linear model with phylogenetic structure) and manova.gls (phylogenetic MANCOVA) in mvMORPH are appropriate, and if so, 2) can someone provide sample code to perform this analysis in R (including visualizing it)?

The phylogenetic relationships for my species (specieslist_May2020) can be extracted and visualized from the reference tree (GBOTB) with files found here:

cont <- read.csv("specieslist_May2020.csv", as.is=TRUE)
cont$Species <- gsub(" ", "_", cont$species)
splist <- unique(cont$Species)
tree <- read.tree("GBOTB.tre")
site.tree <- congeneric.merge(tree, splist) 
Species <- as.character(cont$Species)
setdiff(cont$Species, site.tree$tip.label)
SitePhy <- drop.tip(site.tree, setdiff(site.tree$tip.label, Species))
plot(SitePhy, cex=0.5)

Your Answer

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

Browse other questions tagged or ask your own question.