options nocenter ps=100 ls=80;		/* One-Way Random Effects Model */
data twoway;
   infile 'wheat.dat';			/* MJ 18/19 */
   input variety $ y;

proc glm;				/* THE OLD PROC GLM */
   class variety;
   model y = variety / ss1 solution;
   random variety;
*  lsmeans variety / stderr; /* produces same results as estimate below */
   estimate 'grand mean' intercept 1;
   estimate 'variety A' intercept 1 variety 1;
   estimate 'variety B' intercept 1 variety 0 1;
   estimate 'variety C' intercept 1 variety 0 0 1;
   estimate 'variety D' intercept 1 variety 0 0 0 1;

proc varcomp;				/* THE BETTER PROC VARCOMP */
   class variety;
   model y = variety;
proc varcomp method=type1;
   class variety;
   model y = variety;
proc varcomp method=ml;
   class variety;
   model y = variety;
proc varcomp method=reml;
   class variety;
   model y = variety;

proc mixed;				/* THE NEW PROC MIXED */
   class variety;
   model y = ;
   random variety / solution;
   estimate 'grand mean' intercept 1;
   estimate 'variety A' intercept 1 | variety 1;
   estimate 'variety B' intercept 1 | variety 0 1;
   estimate 'variety C' intercept 1 | variety 0 0 1;
   estimate 'variety D' intercept 1 | variety 0 0 0 1;
