data a; input trt $ group period gender $ response; datalines; C 1 1 F 14 P 1 2 F 12 C 2 1 M 16 P 2 2 M 10 C 3 1 F 12 P 3 2 F 9 C 4 1 M 18 P 4 2 M 13 C 5 1 F 15 P 5 2 F 10 C 6 1 M 14 P 6 2 M 8 P 7 1 F 14 C 7 2 F 12 P 8 1 M 10 C 8 2 M 16 P 9 1 F 12 C 9 2 F 9 P 10 1 M 13 C 10 2 M 18 P 11 1 F 10 C 11 2 F 15 P 12 1 M 14 C 12 2 M 8 ; run; /* In-class first run of crossover */ proc glm data=a; class trt period group; model response=group trt period; random group/test; run; /* Same code in PROC MIXED */ proc mixed data=a; class group trt period group; model response=trt period; random group; run; /* Same code in PROC GLIMMIX */ proc glimmix data=a; class group trt period group; model response=trt period; random group; run; /* Test on gender fails */ proc glm data=a; class trt gender period group; model response=trt gender period group; run; /* Try to use ESTIMATE to generate test on Gender--fails */ proc glm data=a; class trt gender period group; model response=trt gender period group; estimate 'gender' group 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1; run; /* Clean up of above */ proc glm data=a; class trt period group; model response=trt period group; estimate 'gender' group 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1; run; /* Another approach */ proc glm data=a; class gender group trt period; model response=gender group(gender) trt period trt*gender; random group(gender)/test; run; /* Same approach--PROC MIXED */ proc mixed data=a; class gender group trt period; model response=gender trt period trt*gender; random group(gender); run; /* Same approach--PROC GLIMMIX */ proc glimmix data=a; class gender group trt period; model response=gender trt period trt*gender; random group(gender); *variance of random effect set to 0; run;