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 plots=all; class habitat; model rootroot=habitat; run; data abt; input force flux @@; datalines; 14.87 1 16.81 1 15.83 1 15.47 1 13.60 1 14.76 1 17.40 1 14.62 1 18.43 2 18.76 2 20.12 2 19.11 2 19.81 2 18.43 2 17.16 2 16.40 2 16.95 3 12.28 3 12.00 3 13.18 3 14.99 3 15.76 3 19.35 3 15.52 3 8.59 4 10.90 4 8.60 4 10.13 4 10.28 4 9.98 4 9.41 4 10.04 4 11.55 5 13.36 5 13.64 5 12.16 5 11.62 5 12.39 5 12.05 5 11.95 5 ; run; proc glm data=abt plots=all; class flux; model force=flux; means flux / hovtest=bf; run; data servo; input time loc @@; logtime=log(time); datalines; 4.41 1 100.65 1 14.45 1 47.13 1 85.21 1 8.24 2 81.16 2 7.35 2 12.29 2 1.61 2 106.19 3 33.83 3 78.88 3 342.81 3 44.33 3 ; * look at diagnostic plots; proc glm data=servo plots=all; class loc; model time=loc; means loc; run; * Box-Cox transformation; proc transreg data=servo; model boxcox(time) = class(loc); run; *Transformed--still needs remedial measures; proc glm data=servo plots=all; class loc; model logtime=loc; means loc; run; *TRANSREG does not like 0 value in data set; proc transreg data=rooting; model boxcox(activity)=class(habitat); run; * Kruskall-Wallis test; proc npar1way data=servo; class loc; var time; run; proc npar1way data=servo; class loc; var logtime; run; data abt; input force flux @@; datalines; 14.87 1 16.81 1 15.83 1 15.47 1 13.60 1 14.76 1 17.40 1 14.62 1 18.43 2 18.76 2 20.12 2 19.11 2 19.81 2 18.43 2 17.16 2 16.40 2 16.95 3 12.28 3 12.00 3 13.18 3 14.99 3 15.76 3 19.35 3 15.52 3 8.59 4 10.90 4 8.60 4 10.13 4 10.28 4 9.98 4 9.41 4 10.04 4 11.55 5 13.36 5 13.64 5 12.16 5 11.62 5 12.39 5 12.05 5 11.95 5 ; proc sort data=abt; by flux; run; proc mixed data=abt; class flux; model force=flux / solution; repeated / group=flux; * different variance for each flux; run; *Another way to use Welch-Satterthwaite approximation; proc glm data=abt; class flux; model force=flux; means flux / welch; run; proc mixed data=abt; class flux; model force=flux / ddfm=satterth; * denominator degrees freedom; repeated / group=flux; * Games-Howell adjustment; lsmeans flux / adjust=smm adjdfe=row; run; proc glimmix data=abt; class flux; model force=flux; random _residual_ / group=flux; covtest homogeneity; lsmestimate flux "1 vs 2" -1 1 0 0 0, "3 vs 4" 0 0 -1 1 0 / adjust=simulate; run;