/* Appendix B                                        */

    /* Code for Sum-to-Zero Restrictions                 */

 proc glm;
 model milk=seq1 cow1 cow2 cow4 cow5 per1 per2 per4 per5
       trt1 trt2  resid1 resid2/ss1 solution;

 estimate 'Direct 1'     intercept 1 trt1 1;
 estimate 'Direct 2'     intercept 1 trt2 1;
 estimate 'Direct 3'     intercept 1 trt1 -1  trt2 -1;

 estimate 'Direct 1 - 2' trt1 1 trt2 -1;
 estimate 'Direct 1 - 3' trt1 2 trt2 1;
 estimate 'Direct 2 - 3' trt1 1 trt2 2;

 estimate 'Residu 1'   resid1 1;
 estimate 'Residu 2'   resid2 1;
 estimate 'Residu 3'   resid1 -1 resid2 -1;

 estimate 'Res 1 - 2' resid1  1 resid2 -1;
 estimate 'Res 1 - 3' resid1  2 resid2 1;
 estimate 'Res 2 - 3' resid1  1 resid2 2;

 estimate 'Permanent 1' intercept 1 trt1 1 resid1 1;
 estimate 'Permanent 2' intercept 1 trt2 1 resid2 1;
 estimate 'Permanent 3' intercept 1 trt1 -1 trt2 -1
          resid1 -1 resid2 -1;

 estimate 'Perm 1-2'    trt1 1 resid1 1 trt2  -1 resid2 -1;
 estimate 'Perm 1-3'    trt1 2 trt2   1 resid1 2 resid2  1;
 estimate 'Perm 2-3'    trt1 1 trt2   2 resid1 1 resid2  2;