proc import out=contrast datafile="W:\courses\stat706\contrast.txt" replace; run; data a; set contrast; /* Variables for Yandell approach */ plin=percent; pquad=plin*plin; /* And some other variables for an orthogonality */ /* discussion */ llin=(percent-25)/5; lquad=llin*llin-2; run; proc sgplot data=a; scatter y=strength x=percent; xaxis label="Percent Cotton"; yaxis label="Breaking Strength (psi)"; run; proc sort data=a; by percent; proc means data=a; by percent; var strength; run; proc glm data=a; class percent; model strength=percent; estimate '1 vs 2' percent 1 -1 0 0 0; run; /* Orthogonality demo */ proc glm data=a; model strength=plin pquad; run; proc glm data=a; model strength=pquad plin; proc glm data=a; model strength=llin lquad; run; proc glm data=a; model strength=lquad llin; run; /* Orthogonol polynomial contrasts */ proc glm data=a; class percent; model strength=percent; contrast 'linear + quadratic' percent -2 -1 0 1 2, percent 2 -1 -2 -1 2; contrast 'linear + quadratic lof' percent -1 2 0 -2 1, percent 1 -4 6 -4 1; run; /* Orthogonal polynomial contrast tests in PROC GLM */ proc glimmix data=a; class percent; model strength=percent; lsmestimate percent 'linear' -2 -1 0 1 2, 'quadratic' 2 -1 -2 -1 2, 'cubic' -1 2 0 -2 1, 'quartic' 1 -4 6 -4 1; run; /*Yandell approach*/ data b; set a; plin=percent; pquad=plin*plin; proc glm; class percent; model strength=plin pquad percent/ss1; run;