data rooting; input habitat $ activity @@; rootroot=sqrt(activity); datalines; BLH 139 BLH 228 BLH 275 CTS 45 CTS 127 CTS . U 0 U 45 U 16 MS 145 MS 124 MS 240 ; run; proc glm data=rooting; class habitat; model rootroot=habitat / solution clparm; * solution not needed; lsmeans habitat; * not needed; estimate "Upland vs. Floodplain" habitat 1 1 1 -3/divisor=3; run; proc glimmix data=rooting; class habitat; model rootroot=habitat; lsmestimate habitat 1 1 1 -3 / cl divisor=3; run; * Tukey example ; data rooting; input habitat $ activity @@; rootroot=sqrt(activity); datalines; BLH 139 BLH 228 BLH 275 CTS 45 CTS 127 CTS . U 0 U 45 U 16 MS 145 MS 124 MS 240 ; proc glm data=rooting; class habitat; model rootroot=habitat; lsmeans habitat/ pdiff adjust=tukey alpha=0.05 cl lines; run; * Scheffe example, p. 734 & pp. 754-755 ; * glimmix does simultaneous testing and CI’s ; * use either adjust=scheffe or adjust=bon ; proc glimmix data=rooting; class habitat; model rootroot=habitat; lsmestimate habitat "Floodplain vs upland" -2 -2 -2 6, "Dry vs Wet" 3 -3 -3 3, "Cypress-Tupelo vs. Muck Swamp" 0 6 -6 0 / adjust=scheffe alpha=0.1 cl divisor=6; run;