proj2.eigen {dae} | R Documentation |
Canonical efficiency factors and eigenvectors in joint decomposition of two projectors
Description
Computes the canonical efficiency factors for the joint decomposition of two projectors and the eigenvectors corresponding to the first projector (James and Wilkinson, 1971).
Usage
proj2.eigen(Q1, Q2)
Arguments
Q1 |
An object of class " |
Q2 |
An object of class " |
Details
The component efficiencies is a vector
containing the nonzero canonical
efficiency factors for the joint decomposition of the two projectors.
The nonzero canonical efficiency factors are the nonzero eigenvalues of
Q1 %*% Q2 %*% Q1 (James and Wilkinson, 1971). An eigenvalue is regarded
as zero if it is less than daeTolerance
, which is initially set to
.Machine$double.eps ^ 0.5
(about 1.5E-08).
The function set.daeTolerance
can be used to change daeTolerance
.
The component eigenvectors is an n x r matrix
, where n is the order of the
projectors and r is the number of nonzero canonical efficiency factors;
it contains the eigenvectors of Q1 corresponding to the nonzero canonical
efficiency factors. The eigenvectors for Q2 can be obtained by premultiplying
those for Q1 by Q2.
Value
A list
with components efficiencies and eigenvectors.
Author(s)
Chris Brien
References
James, A. T. and Wilkinson, G. N. (1971) Factorization of the residual operator and canonical decomposition of nonorthogonal factors in the analysis of variance. Biometrika, 58, 279-294.
See Also
proj2.efficiency
, proj2.combine
in package dae,
eigen
.
projector
for further information about this class.
Examples
## PBIBD(2) from p. 379 of Cochran and Cox (1957) Experimental Designs.
## 2nd edn Wiley, New York
PBIBD2.unit <- list(Block = 6, Unit = 4)
PBIBD2.nest <- list(Unit = "Block")
trt <- factor(c(1,4,2,5, 2,5,3,6, 3,6,1,4, 4,1,5,2, 5,2,6,3, 6,3,4,1))
PBIBD2.lay <- designRandomize(allocated = trt,
recipient = PBIBD2.unit,
nested.recipients = PBIBD2.nest)
## obtain sets of projectors
unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)
## obtain intra- and inter-block decompositions
decomp.inter <- proj2.eigen(unit.struct$Q[["Block"]], trt.struct$Q[["trt"]])
decomp.intra <- proj2.eigen(unit.struct$Q[["Unit[Block]"]], trt.struct$Q[["trt"]])
#extract intrablock efficiencies
decomp.intra$efficiencies