/* Multiple comparisons with the pea data */
options ls=80 ps=59 nodate;
data peas;
input sugar $ length @@;
cards;
cntl 75 cntl 67 cntl 70 cntl 75 cntl 65 cntl 71 cntl 67
cntl 67 cntl 76 cntl 68 glu2 57 glu2 58 glu2 60 glu2 59
glu2 62 glu2 60 glu2 60 glu2 57 glu2 59 glu2 61 fru2 58
fru2 61 fru2 56 fru2 58 fru2 57 fru2 56 fru2 61 fru2 60
fru2 57 fru2 58 glu1fru1 58 glu1fru1 59 glu1fru1 58 glu1fru1 61
glu1fru1 57 glu1fru1 56 glu1fru1 58 glu1fru1 57 glu1fru1 57
glu1fru1 59 suc2 62 suc2 66 suc2 65 suc2 63 suc2 64 suc2 62
suc2 65 suc2 65 suc2 62 suc2 67
;

/* Run this procedure to get the contrasts from Examples 3.5 and 3.6. */
/* Using Fisher's (lsd), Scheffe's, Bonferroni's, and Tukey's methods */
/* All contrasts were multiplied by constants to get integer values for the c_ij's
   Thus, the estimates and standard errors provided here are different than they are
   in table from Examples 3.5, 3.7-3.9; however, the ratio of the estimates and standard
   errors is the same since multiplication by constant affects both in the same way. */

/* Example 3.5. */
proc glm;
class sugar;
model length = sugar / solution;
means sugar / lsd;

estimate
'F vs. G' sugar 0 1 0 -1 0;
estimate 'FG vs. S' sugar 0 1 1 1 -3;
estimate 'C vs. GFS' sugar 4 -1 -1 -1 -1;
estimate 'F,G vs. GF' sugar 0 1 -2 1 0;

contrast 'F vs. G' sugar 0 1 0 -1 0;
contrast 'FG vs. S' sugar 0 1 1 1 -3;
contrast 'C vs. GFS' sugar 4 -1 -1 -1 -1;
contrast 'F,G vs. GF' sugar 0 1 -2 1 0;
run;

/* Example 3.6. */
proc glm;
class sugar;
model length = sugar / solution;
means sugar / cldiff lsd scheffe;

estimate
'F vs. S' sugar 0 1 0 0 -1;
contrast 'F vs. S' sugar 0 1 0 0 -1;
run;

/* Example 3.10; gives hypothesis tests */
proc glm;
class sugar;
model length = sugar / solution;
means sugar / lsd scheffe bon tukey;
run;

/* Example 3.10; gives confidence intervals */
proc glm;
class sugar;
model length = sugar / solution;
means sugar / cldiff lsd scheffe bon tukey;
run;