| three.point.compute {phylolm} | R Documentation |
Computations with a (generalized) three-point structured tree
Description
Computes P'V^{-1}Q and the \log(\det V) of a (generalized) three-point structured matrix.
Usage
three.point.compute(phy, P, Q = NULL, diagWeight = NULL,
check.pruningwise = TRUE, check.names = TRUE)
Arguments
phy |
a rooted phylogenetic tree of type phylo with branch
lengths, to represent the 3-point structured matrix |
P, Q |
two matrices. |
diagWeight |
a vector containing the diagonal elements of the
diagonal matrix |
check.pruningwise |
If FALSE, the tree is assumed to be in pruningwise order. |
check.names |
if FALSE, the row names of |
Value
vec11 |
|
P1 |
|
PP |
|
Q1 |
|
QQ |
|
PQ |
|
logd |
|
Note
The matrix V is assumed to be V = D V_0 D where D is the diagonal
matrix with non-zero diagonal elements in diagWeight, and where
V_0 is the 3-point structured covariance matrix
determined by phy and its branch lengths. Note that D do
not correspond to measurement error terms.
The number of rows in P and Q and the length of diagWeight need
to be the same as the number of tips in the tree. When Q = NULL, the
function only returns 1'V^{-1}1, P'V^{-1}1 and P'V^{-1}P.
Author(s)
Lam Si Tung Ho, Robert Lachlan
References
Ho, L. S. T. and Ané, C. (2014). "A linear-time algorithm for Gaussian and non-Gaussian trait evolution models". Systematic Biology 63(3):397-408.
See Also
Examples
tre1 = rtree(500)
tre2 = transf.branch.lengths(phy=tre1, model="OUrandomRoot",
parameters = list(alpha = 0.5))
Q = rTrait(n=2,tre1)
y = rTrait(n=1,tre1)
P = cbind(1,y)
three.point.compute(tre2$tree,P,Q,tre2$diagWeight)