/* ch 7 3-way anova */ options ls=72; DATA beads; INPUT sizelet $ sizecat finglet $ finglnth fingcat color $ colcat time comment $; htime=log10(tan((time*3.14159/180)/2)-.3); code=sizecat*10+fingcat; letcode=trim(sizelet)||trim(finglet)||trim(color); LINES; s 1 t 64 1 o 1 100 original s 1 a 72 2 o 1 140 original s 1 b 76 3 o 1 93 original m 2 t 70 1 o 1 85 original m 2 a 71 2 o 1 45 original m 2 b 79 3 o 1 105 original l 3 t 70 1 o 1 40 original l 3 a 75 2 o 1 37 original l 3 b 77 3 o 1 35 original s 1 t 63 1 b 2 119 oldrep s 1 a 72 2 b 2 127 oldrep s 1 b 79 3 b 2 70 oldrep m 2 t 69 1 b 2 49 oldrep m 2 a 71 2 b 2 133 oldrep m 2 b 80 3 b 2 86 oldrep l 3 t 65 1 b 2 44 oldrep l 3 a 75 2 b 2 35 oldrep l 3 b 77 3 b 2 53 oldrep s 1 t 64 1 o 1 106 newrep s 1 a 72 2 o 1 125 newrep s 1 b 76 3 o 1 92 newrep m 2 t 70 1 o 1 94 newrep m 2 a 71 2 o 1 51 newrep m 2 b 79 3 o 1 133 newrep l 3 t 70 1 o 1 43 newrep l 3 a 75 2 o 1 43 newrep l 3 b 77 3 o 1 37 newrep s 1 t 63 1 b 2 105 newrep s 1 a 72 2 b 2 115 newrep s 1 b 79 3 b 2 86 newrep m 2 t 69 1 b 2 63 newrep m 2 a 71 2 b 2 58 newrep m 2 b 80 3 b 2 95 newrep l 3 t 65 1 b 2 39 newrep l 3 a 75 2 b 2 37 newrep l 3 b 77 3 b 2 34 newrep ; proc print; proc glm; classes sizecat fingcat colcat; model htime=sizecat fingcat colcat sizecat*fingcat sizecat*colcat fingcat*colcat sizecat*fingcat*colcat; Means sizecat fingcat colcat; MEANS sizecat / scheffe CLDIFF ALPHA=0.10; lsmeans sizecat /pdiff=all cl adjust=scheffe alpha=.10; estimate 'or_vs_bl' colcat 1 -1/divisor=2; proc sort data=beads; by sizecat fingcat colcat; proc means noprint mean ; var htime; by sizecat fingcat colcat; output out=beadmean mean=av_htime; proc print; var sizecat fingcat colcat av_htime; proc sort; by colcat sizecat fingcat; proc plot; by colcat; plot av_htime*sizecat=fingcat/vpos=19 hpos=60; /* means only ok with equal ss */ /* ch 7 3-way anova with interaction plots*/ /* ... note additional data */ run; quit;