# this function fits the model of Revell & Collar (2009; Evolution) # written by Liam J. Revell 2010, 2011, 2013, 2014, 2015 evol.vcv<-function(tree,X,maxit=2000,vars=FALSE,...){ if(!inherits(tree,"phylo")) stop("tree should be object of class \"phylo\".") n<-nrow(X) # number of species m<-ncol(X) # number of traits if(hasArg(se)){ se<-list(...)$se se<-se[tree$tip.label] } else { se<-replicate(n,matrix(0,m,m),simplify=FALSE) names(se)<-tree$tip.label } SE<-matrix(0,n*m,n*m) for(i in 1:n){ ii<-0:(m-1)*n+i SE[ii,ii]<-se[[i]] } p<-ncol(tree$mapped.edge) # number of states D<-matrix(0,n*m,m) for(i in 1:(n*m)) for(j in 1:m) if((j-1)*n