/* x5_7.sas */ /* Purpose: */ title1 'Example 5.7.'; data a; do e=1 to 4; do d=1 to 2; do c=1 to 4; do b=1 to 2; do a=1 to 2; input x @; output; end; end; end; end; end; cards; 3810 6340 4080 6660 3004 5470 2833 6220 4210 7640 3910 6510 3810 8100 4570 8310 6230 9050 6370 8650 5720 8390 5620 7300 6190 9720 6860 9960 8530 10210 7450 10650 4350 6450 3800 6920 3380 6330 3308 6280 3310 6040 3302 6670 4380 8010 4860 8100 6250 9090 6700 9000 6060 8770 5820 9180 5660 8540 5690 8720 7130 10170 7350 9430 3690 6510 3590 6510 2758 5740 2945 6950 3445 6690 3273 5980 4160 7370 4670 7380 6630 8680 6360 8440 5630 8200 5170 8310 6180 8060 5700 8210 7380 9560 7610 9400 4390 7470 4700 7210 3810 6830 3320 6020 2684 6010 3080 5630 5270 8010 4640 7540 7170 9370 7460 8800 6280 9240 6170 8680 5790 7980 5180 7960 7350 10510 7590 10420 ; proc print data=a; title2 'List of data.'; proc anova data=a; class a b c d e; model x=a|b|c|d|e; title2 'Sums of squares and degrees of freedom from crossed model.'; proc glm data=a; class a b c d e; model x=a b(e*c) a*b(e*c) c a*c d a*d b*d(e*c) a*b*d(e*c) c*d a*c*d e(c) a*e(c) d*e(c) a*d*e(c); random b(e*c) a*b(e*c) c a*c b*d(e*c) a*b*d(e*c) c*d a e(c) a*e(c) d*e(c) a*d*e(c); /* random .... /test; cannot be performed due to Var(Error)=. */ title2 'Model as specified.'; proc glm data=a; class a b c d e; model x=a c a*c d a*d e(c); random c a*c e(c) /test; title2 'Resulting model.'; run;