options nocenter ps=64 ls=79; data uneq; infile 'weer.dat'; input trt $ y @@; proc sort; by trt; proc glm; /* usual analysis of variance */ class trt; model y = trt / ss1; means trt; proc means noprint data=uneq; by trt; /* get mean and SD */ var y; output out=means mean=my std=sy; data weight; merge uneq means; by trt; wt = 1 / (sy * sy); /* weights = 1 / variance */ levene = abs(y - my); /* Levene's absolute deviations */ proc glm; /* use 1/variance as weight */ class trt; model y = trt / ss1; weight wt; means trt; proc sort data=uneq; by y; /* replace data by ranks */ data rank; set uneq; ry = _N_; /* rank of y */ proc glm; /* Kruskal-Wallis Test */ class trt; model ry = trt / ss1; means trt; proc glm data=weight; /* Levene's test of Unequal Variances */ class trt; model levene = trt / ss1; means trt;