singg

Singular G structures

One author (RT) has proposed a strategy for fitting models with singular variance structures which has the working title Singular G. Singular G matrices can be fitted using the XFA model (Thompson et al. 2003) but this other approach will allow other structures and could provide an alternative computational stratergy for XFA models. The basic algorithm is based on the concept of absorption and the identity:
| Gu-1 0 | = | 0 I |
| 0 0 | | 0 -Gu|
| Gu-1 0 | = | 0 I |
| 0 0 | | 0 -Gu|
and using v(=G-1uu) in computing the working right hand sides.

Now we are interested in the case where Gu is singular so instead of adding G-1u in the mixed model equations, we insert an equal number of empty equations and add the right hand side of the identity. Then, when absorbing the expanded equations (part of the process of solving the mixed model equations), if a pivot (diagonal element) is zero, a check is made that all covariances are zero, and if not, the equations are reordered so that a related equation is absorbed first. The original pivot is then no longer zero and is absorbed in due course.

This strategy has been implemented for the DIAG, US and CHOLkC variance structures. However, the parameterization of G needs to be such that the singularity can be defined by setting a parameter to zero. This is easy for DIAG, feasible after reordering with CHOLkC and quite limiting with US. Thus for DIAG, singular means some variances are zero, for US, singular means some variances and all associated covariances are zero (a very restrictive definition of singular), and for CHOLkC, singular means some conditional variances are zero. Thus, the most useful form is CHOLkC with reordering.

The present implementation requires doubling the factor size, and is requested with a qualifier on the variance structure definition line. The xfa() model term is one option for doubling the factor size as used in the following example. However, for reordering the levels as well as doubling the size, the !SUBSET qualifier is required (see example below).

A sample test job follows:
 Balanced Sire model  Zero components
  row y1 y2 y3 y4 Sire *
 bse.asd !skip 1 !DOPART $1 !MAXIT 35 !BRIEF

 y4 y1 y3 y2 ~ Trait !r Sire.xfa(Tr,4)
 1 2 1
 0
 Tr 0 US !GP
 10*0

 Sire.xfa 2
 Sire

 !PART 1
 xfa 0 US  !SING  !GPPPZZZPPZP
 10*0

 !PART 2
 xfa 0 US !GU !SING
 10*0

 !PART 3
 xfa 0 CHOL3C !SING
 10*0

 !PART 4
 xfa 0 CHOL2C !SING  !GP
 10*0

 !PART 5
 xfa 0 CHOL1C !SING !GP
 10*0

 !PART 6
 xfa 0 CHOL3C !SING !GPPPPPZPPZP
 10*0
As an example of using the !SUBSET qualifier to reorder the levels of a factor, assume there are 14 levels of site and define Site as say
!SUBSET Site site 2 4 6 8 14 12 10 9 7 5 3 1 11 13 14*0 and then
 ...
  !r Site.geno
 ...
 Site.geno 2
 Site 0 Chol4C !SING
 ...
 geno
It turns out that the fit of a particular degree (k) of CHOLkC is very dependent on the order.

There are ideas for extending this option but they have not been implemented.

Return to start