# NOT RUN {
set.seed(1)
n <- 32 # number of species
p <- 30 # number of traits
tree <- pbtree(n=n) # phylogenetic tree
R <- crossprod(matrix(runif(p*p),p)) # a random symmetric matrix (covariance)
# simulate a dataset
Y <- mvSIM(tree, model="BM1", nsim=1, param=list(sigma=R))
X <- rnorm(n) # continuous
grp <- rep(1:2, each=n/2)
dataset <- list(y=Y, x=X, grp=as.factor(grp))
# Model fit
model1 <- mvgls(y~x, data=dataset, tree=tree, model="BM", method="LOO")
# Multivariate test
(multivariate_test <- manova.gls(model1, nperm=999, test="Pillai"))
# MANOVA on a binary predictor
model2 <- mvgls(y~grp, data=dataset, tree=tree, model="lambda", method="LOO")
# Multivariate test
(multivariate_test <- manova.gls(model2, nperm=999, test="Pillai", verbose=TRUE))
# When p<n we can use non-penalized approaches and parametric tests
model2b <- mvgls(y[,1:2]~grp, data=dataset, tree=tree, model="lambda", method="LL")
(multivariate_test <- manova.gls(model2b, test="Pillai"))
# }
Run the code above in your browser using DataLab