Compute phylogenetic signal with two methods
This function computes phylogenetic signal using two different methods. It can also conduct the hypothesis tests for significant phylogenetic signal, and estimate phylogenetic signal incorporating sampling error following Ives et al. (2007).
phylosig(tree, x, method="K", test=FALSE, nsim=1000, se=NULL, start=NULL, control=list()) ## S3 method for class 'phylosig' plot(x, ...)
tree |
a phylogenetic tree in |
x |
vector containing values for a single continuously distributed trait. In the case of the |
method |
method to compute signal: can be |
test |
logical indicating whether or not to conduct a hypothesis test of |
nsim |
for |
se |
named vector containing the standard errors for each species. |
start |
vector of starting values for optimization of (respectively) σ^2 and λ. Only used in |
control |
list of control parameters for multidimensional optimization, implemented in |
... |
optional arguments for |
λ optimization is performed using optimize
with the range of λ set between 0 and the theoretical upper limit of λ (determined by the relative height of the most recent internal node on the tree).
plot.phylosig
creates either a plot of the null distribution of K or a likelihood surface, depending on the value of method
.
The function returns an object of class "phylosig"
. With default arguments (method="K"
, test=FALSE
, and se=NULL
), this will be a single numeric value. Otherwise, if (method="K")
, it will consist of a list with up to the following components:
K |
value of the K-statistic. |
sig2 |
rate of evolution, σ^2, for estimation with sampling error. |
logL |
log-likelihood, for estimation with sampling error. |
P |
optionally, the P-value from the randomization test. |
If (method="lambda")
, it will be a list with up to the following components:
lambda |
fitted value of λ. |
sig2 |
rate of evolution, σ^2, for estimation with sampling error. |
logL |
log-likelihood. |
logL0 |
log-likelihood for λ=0. |
P |
P-value of the likelihood ratio test. |
convergence |
value for convergence, for estimation with sampling error only. (See |
message |
message from |
Liam Revell liam.revell@umb.edu
Blomberg, S. P., T. Garland Jr., A. R. Ives (2003) Testing for phylogenetic signal in comparative data: Behavioral traits are more labile. Evolution, 57, 717-745.
Ives, A. R., P. E. Midford, T. Garland Jr. (2007) Within-species variation and measurement error in phylogenetic comparative biology. Systematic Biology, 56, 252-270.
Pagel, M. (1999) Inferring the historical patterns of biological evolution. Nature, 401, 877-884.
Revell, L. J. (2012) phytools: An R package for phylogenetic comparative biology (and other things). Methods Ecol. Evol., 3, 217-223.
## load data from Garland et al. (1992) data(mammal.tree) data(mammal.data) ## extract characters of interest ln.bodyMass<-log(setNames(mammal.data$bodyMass, rownames(mammal.data))) ln.homeRange<-log(setNames(mammal.data$homeRange, rownames(mammal.data))) ## compute phylogenetic signal K K.bodyMass<-phylosig(mammal.tree,ln.bodyMass, test=TRUE) print(K.bodyMass) plot(K.bodyMass) K.homeRange<-phylosig(mammal.tree,ln.homeRange, test=TRUE) print(K.homeRange) plot(K.homeRange) ## compute phylogenetic signal lambda lambda.bodyMass<-phylosig(mammal.tree,ln.bodyMass, method="lambda",test=TRUE) print(lambda.bodyMass) plot(lambda.bodyMass) lambda.homeRange<-phylosig(mammal.tree,ln.homeRange, method="lambda",test=TRUE) print(lambda.homeRange) plot(lambda.homeRange)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.