Computes the canonical efficiency factors for the joint decomposition of two or more structures or sets of mutually orthogonally projectors (Brien and Bailey, 2009; Brien, 2017; Brien, 2019), orthogonalizing projectors in a set to those earlier in the set of projectors with which they are partially aliased. The results can be summarized in the form of a decomposition table that shows the confounding between sources from different sets. For examples of its use also see the vignette daeDesignNotes.pdf.
designAnatomy(formulae, data, keep.order = TRUE, grandMean = FALSE, 
              orthogonalize = "hybrid", labels = "sources", 
              marginality = NULL, check.marginality = TRUE, 
              which.criteria = c("aefficiency","eefficiency","order"), 
              aliasing.print = FALSE, 
              omit.projectors = c("pcanon", "combined"), ...)An object of class list whose components are of class 
                      formula. 
                      Usually, the terms in a single formula have the same status in the 
                      allocation of factors in the design. For example, all involve only 
                      factors that were allocated, or all involve factors that were 
                      recipients of allocated factors. The names of the components are 
                      used to identify the 
                      sources in the summary.pcanon object. They will also 
                      be used to name the terms, sources and marginality 
                      lists in the pcanon.object.
A data.frame contains the values of the factors and variables 
             that occur in formulae.
A logical indicating whether the terms should keep 
                   their position in the expanded formula projector, or 
                   reordered so that main effects precede two-factor 
                   interactions, which precede three-factor interactions and 
                   so on.
A logical indicating whether the projector for the 
                       grand mean is to be included for each structure.
A character vector indicating the method for orthogonalizing a
                      projector to those for terms that occurred previously 
                      in a single formula. Three options are available:  
                      hybrid; differencing; eigenmethods.
                      The hybrid option is the most general and uses the 
                      relationships between the projection operators for the 
                      terms in the formula to decide which projectors to 
                      substract and which to orthogonalize using eigenmethods. 
                      The differencing option subtracts, from the current 
                      projector, those previously orthogonalized projectors for 
                      terms whose factors are a subset of the  current projector's 
                      factors. The eigemethods option recursively 
                      orthogonalizes the projects using an eigenanalysis of 
                      each projector with previously orthogonalized projectors.
                      If a single value is given, it is used for all formulae.
A character nominating the type of labels to be used in 
                      labelling the projectors, and which will be used also 
                      in the output tables, such the tables of the aliasing 
                      in the structure. The two alternatives are terms and 
                      sources. Terms have all factors/variables in it 
                      separated by colons (:). Sources have factors/variables 
                      in them that represent interactions separated by hashes 
                      (#); if some factors are nested within others, the 
                      nesting factors are surrounded by square brackets 
                      ([ and ]) and separated by colons (:). 
                      If some generalized, or combined, factors have no marginal 
                      terms, the constituent factors are separated by colons 
                      (:) and if they interact with other factors in 
                      the source they will be parenthesized.
A list that can be used to supply some or all of the 
                      marginality matrices when it is desired to overwrite calculated 
                      marginality matrices or when they are not calculated. 
                      If the list is the same length as the 
                      formulae list, they will be associated in 
                      parallel with the components of formulae, irrespective of 
                      the naming of the two lists. If the number of 
                      components in marginlaity is less than the number of 
                      components in formulae then both lists 
                      must be named so that those in the marginality 
                      list can be matched with those in the 
                      formulae list.
Each component of the marginality list 
                      must be either NULL or a square 
                      matrix consisting of zeroes and ones that 
                      gives the marginalites of the terms in the formula. It must have 
                      the row and column names set to the terms from the expanded 
                      formula, including being in the same order as these terms. 
                      The entry in the ith row and jth column will be one if the 
                      ith term is marginal to the jth term i.e. the column space of the 
                      ith term is a subspace of that for the jth term and so the source 
                      for the jth term is to be made orthogonal to that for the ith term. 
                      Otherwise, the entries are zero. A row and column should not be 
                      included for the grand mean even if grandMean is TRUE.
A logical indicating whether the marginality matrix, 
                       when it is supplied, is to be checked against that computed 
                       by pstructure.formula. It is ignored when 
                       orthogonalize is set to eigenmethods.
A character vector nominating the efficiency 
                       criteria to be included in the summary of aliasing 
                       between terms within a structure. It can be 
                       none, all or some combination of 
                       aefficiency, mefficiency,
                       sefficiency, eefficiency, xefficiency, 
                       order and dforthog -- for details see
                       efficiency.criteria. 
                       If none, no summary is printed.
A logical indicating whether the aliasing between sources 
                       is to be printed.
A character vector of the types of  projectors to 
                      omit from the returned pcanon object. If 
                      pcanon is included in the vector then the 
                      projectors in these objects will be replaced with a 
                      numeric containing their degrees of freedom. 
                      If combined is included in the vector 
                      then the projectors for the combined decomposition will be 
                      replaced with a numeric containing their degrees of 
                      freedom. If none is included in the vector then no 
                      projectors will be omitted.
further arguments passed to terms.
For each formula supplied in formulae, the set of projectors is 
         obtained using pstructure; there is one projector 
         for each term in a formula. Then projs.2canon is used 
         to perform an analysis of the canonical relationships between two sets 
         of projectors for the first two formulae. If there are further formulae, 
         the relationships between its projectors and the already established 
         decomposition is obtained using projs.2canon. The core 
         of the analysis is the determination of eigenvalues of the product of 
         pairs of projectors using the results of James and Wilkinson (1971). 
         However, if the order of balance between two projection matrices is 
         10 or more or the James and Wilkinson (1971) methods fails to produce 
         an idempotent matrix, equation 5.3 of Payne and Tobias (1992) is used 
         to obtain the projection matrices for their joint decompostion.
Brien, C. J. (2017) Multiphase experiments in practice: A look back. Australian & New Zealand Journal of Statistics, 59, 327-352.
Brien, C. J. (2019) Multiphase experiments with at least one later laboratory phase . II. Northogonal designs. Australian & New Zealand Journal of Statistics, accepted for publication.
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.
Payne, R. W. and R. D. Tobias (1992). General balance, combination of information and the analysis of covariance. Scandinavian Journal of Statistics, 19, 3-23.
designRandomize, designLatinSqrSys, designPlot, 
         pcanon.object, p2canon.object, 
         summary.pcanon, efficiencies.pcanon, 
         pstructure , 
         projs.2canon, proj2.efficiency, proj2.combine, 
         proj2.eigen,  efficiency.criteria, 
         in package dae,  
         eigen.
projector for further information about this class.
# NOT RUN {
## 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 combined decomposition and summarize
unit.trt.canon <- designAnatomy(formulae = list(unit=~ Block/Unit, trt=~ trt),
                                data = PBIBD2.lay)
summary(unit.trt.canon, which.criteria = c("aeff","eeff","order"))
summary(unit.trt.canon, which.criteria = c("aeff","eeff","order"), labels.swap = TRUE)
## Three-phase sensory example from Brien and Payne (1999)
# }
# NOT RUN {
data(Sensory3Phase.dat)
Eval.Field.Treat.canon <- designAnatomy(formulae = list(
                              eval= ~ ((Occasions/Intervals/Sittings)*Judges)/Positions, 
                              field= ~ (Rows*(Squares/Columns))/Halfplots,
                              treats= ~ Trellis*Method),
                                        data = Sensory3Phase.dat)
summary(Eval.Field.Treat.canon, which.criteria =c("aefficiency", "order"))
# }
Run the code above in your browser using DataLab