projs.2canon {dae}R Documentation

A canonical analysis of the relationships between two sets of projectors


Computes the canonical efficiency factors for the joint decomposition of two structures or sets of mutually orthogonally projectors (Brien and Bailey, 2009), orthogonalizing projectors in the Q2 list to those earlier in the list of projectors with which they are partially aliased. The results can be summarized in the form of a skeleton ANOVA table.


projs.2canon(Q1, Q2)



A list whose components are objects of class "projector".


A list whose components are objectsof class "projector".


Two loops, one nested within the other, are performed. The first cycles over the components of Q1 and the nested loop cycles over the components of Q2. The joint decomposition of the two projectors in each cycle, one from Q1 (say Q1[[i]]) and the other from Q2 (say Q2[[j]]) is obtained using proj2.combine. In particular, the nonzero canonical efficiency factors for the joint decomposition of the two projectors is obtained. The nonzero canonical efficiency factors are the nonzero eigenvalues of Q1[[i]] %*% Q2[[j]] %*% Q1[[i]] (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.

However, a warning occurs if any pair of Q2 projectors (say Q2[[j]] and Q2[[k]]) do not have adjusted orthgonality with respect to any Q1 projector (say Q1[[i]]), because they are partially aliased. That is, if Q2[[j]] %*% Q1[[i]] %*% Q2[[k]] is nonzero for any pair of different Q2 projectors and any Q1 projector. When it is nonzero, the projector for the later term in the list of projectors is orthogonalized to the projector that is earlier in the list. A list of such projectors is returned in the aliasing component of the p2canon.object. The entries in the aliasing component gives the amount of information that is aliased with previous terms.


A p2canon.object.


Chris Brien


Brien, C. J. and R. A. Bailey (2009). Decomposition tables for multitiered experiments. I. A chain of randomizations. The Annals of Statistics, 36, 4184 - 4213.

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

summary.p2canon, efficiencies.p2canon, projs.combine.p2canon, pstructure ,
proj2.efficiency, proj2.combine, proj2.eigen, efficiency.criteria in package dae, eigen.

projector for further information about this class.


## 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 projectors using pstructure
unit.struct <- pstructure(~ Block/Unit, data = PBIBD2.lay)
trt.struct <- pstructure(~ trt, data = PBIBD2.lay)

##obtain combined decomposition and summarize
unit.trt.p2canon <- projs.2canon(unit.struct$Q, trt.struct$Q)

[Package dae version 3.2-13 Index]