OPTION LS=76 NOCENTER; /* Model y=metal + ingot +e */ /* Levels 3 7 */ %LET SEED = 1234567; %LET nickelm =70.0; /* Under null */ %LET ironm = 73.0; %LET copperm = 70.0; %LET s2_res = 10.37; /* see p.37 */ %LET s2_ingot = 11.45; %LET nblock = 20; %let nsim = 10000; data noise; s1=sqrt(&s2_res);s2=sqrt(&s2_ingot); /* Note the & sign for defined numbers */ do sim = 1 to ≁ do ingot= 1 to &nblock; e1 = rannor(&seed);b=s2*e1; metal='nickel';e2 =s1*rannor(&seed);y=&nickelm+b+e2;OUTPUT; metal='iron';e2 =s1*rannor(&seed);y=&ironm+b+e2;OUTPUT; metal='copper';e2 =s1*rannor(&seed);y=&copperm+b+e2; OUTPUT; end; end; run; PROC PRINT DATA=noise (obs=50); /* output noise data */ RUN; PROC SORT DATA=noise;BY sim; /* Data analysis per simulation */ ods exclude all; ods noresults; proc mixed data=noise; by sim; class ingot metal; model y = metal ; random ingot; ods output covparms=cpsim tests3=t3sim; run; ods exclude none; ods results; PROC PRINT DATA=cpsim (obs=10); TITLE 'What is in cpsim?'; run; PROC PRINT DATA=t3sim (obs=10); TITLE 'What is in t3sim?'; run; proc sort data=cpsim; by covparm; run; proc means data=cpsim; /* check the variance component estimates */ by covparm; var estimate; run; data t3sim; /* significance level or power */ set t3sim; if probf < 0.05 then sig = 1; else sig = 0; proc sort data=t3sim; by effect; proc means data=t3sim mean; by effect; var sig; run;