/* data
taken from "The SAS System for Linear Models" */
/* A
balanced factorial experiment consists of all possible combinations of levels
of two or more */
/*
factors. Factorial experiments are used
to investigate not only overall differences between */
/*
levels of each factor (main effects), but also how levels of one factor affect
the response variable */
/*
across levels of another factor (interactions). Consider the following example.
Suppose that 3 seed */
/*
growth promoting methods (METHOD) are applied to seeds from each of five
varieties (VARIETY) of turf */
/*
grass. Six pots are planted with seed
from each METHODxVARIETY combination.
The resulting 90 pots are */
/*
randomly placed in a uniform growth chamber and the dry matter yields (YIELD)
are measured after */
/*
clipping at the end of 4 weeks. */
data
grasses;
input method $ variety y1 y2 y3 y4 y5 y6 ;
y1=y1/10; y2=y2/10; y3=y3/10; y4=y4/10;
y5=y5/10; y6=y6/10;
cards;
A 1 221 241 191 221 251 181
A 2 271 151 206 286 151 246
A 3 223 258 228 283 213 183
A 4 198 283 268 273 268 268
A 5 200 170 240 225 280 225
B 1 135 145 115 60 270 180
B 2 169 174 104 194 119 154
B 3 157 102 167 197 182 122
B 4 151
65 171 76 136 211
B 5 218 228 188 213 163 143
C 1 190 220 200 145 190 160
C 2 200 220 255 165 180 175
C 3 164 144 214 199 104 214
C 4 245 160 110 75 145 155
C 5 118 143 213 63 78 138
;
data fctorial; set grasses; drop y1-y6;
yield=y1; output;
yield=y2; output;
yield=y3; output;
yield=y4; output;
yield=y5; output;
yield=y6; output;
run;
proc
print data=fctorial ;
run ;
/* sort
data by method and variety */
proc
sort data=fctorial ;
by method variety ;
/*
calculate the means for each treatment level combination */
proc
means data=fctorial noprint ;
by method variety ;
output out=factmean mean=yldmean ;
run ;
proc
print data=factmean ;
run ;
/*
create a simple interaction plot */
proc
gplot data=factmean ;
plot yldmean*variety = method ;
symbol i = join ;
run ;
/* run
the 2-way analysis of variance */
proc
glm data=fctorial ;
class method variety ;
model yield = method variety method*variety
;
run ;
quit ;