options ls=105 nocenter; /* this program creates replicated data for problem 13.31 with MSE=143 */ /* it can be used to produce interaction plots, or to double check contrast sums of squares for problem 5, hw4 */ data one; * length age $5; input age @; do gender=1 to 2; do sleep = 4 to 8 by 2; input testscore @; output; end; end; cards; 1 35 72 80 45 78 90 2 34 28 60 10 32 80 ; run; data triplicated; set one; do triplicate=1 to 3; testscore2=testscore + (triplicate-2)*sqrt(143); output; end; run; proc print data=triplicated (obs=10); title "triplicated data"; run; proc glm data=triplicated; class age gender sleep; model testscore2=age|gender|sleep; lsmeans age*sleep/pdiff adj=tukey; contrast "sleep linear " sleep -1 0 1; contrast "sleep nonlinear " sleep 1 -2 1; contrast "sleep linear for young folks " sleep -1 0 1 age*sleep -1 0 1; contrast "sleep linear for older folks " sleep -1 0 1 age*sleep 0 0 0 -1 0 1; contrast "sleep nonlinear for young folks " sleep 1 -2 1 age*sleep 1 -2 1; contrast "sleep nonlinear for older folks " sleep 1 -2 1 age*sleep 0 0 0 1 -2 1; estimate "sleep linear for young folks " sleep -1 0 1 age*sleep -1 0 1; estimate "sleep linear for older folks " sleep -1 0 1 age*sleep 0 0 0 -1 0 1; estimate "sleep nonlinear for young folks " sleep 1 -2 1 age*sleep 1 -2 1; estimate "sleep nonlinear for older folks " sleep 1 -2 1 age*sleep 0 0 0 1 -2 1; contrast "linear sleep-by-age interaction" age*sleep 1 0 -1 -1 0 1; contrast "quadratic sleep-by-age interaction" age*sleep 1 -2 1 -1 2 -1; run; *proc glimmix data=triplicated; proc mixed data=triplicated; class age gender sleep; model testscore2=age|gender|sleep; *lsmeans age*sleep/slicediff=age adj=scheffe; /* for use with GLIMMIX */ lsmeans age*sleep/pdiff adj=tukey; ods output diffs=diffs; run; proc print data=diffs; title "simple sleep effects for fixed age (avg over gender)"; where age=_age; run; proc print data=lsm; run; data lsm; set lsm; age_gender=age||gender; run; symbol1 value=dot i=join width=5; symbol2 value=triangle i=join; symbol3 value=square i=join; symbol4 value=diamond i=join; /*proc gdevice catalog=sashelp.devices;*/ *filename output "sleep1.eps"; *goptions device=pslepsfc gsfname=output gsfmode=replace; proc gplot data=lsm; title "2nd order interaction"; where effect="age_gender_sleep"; plot testscore2lsmean*sleep=age_gender; run;quit; *filename output "sleep2.eps"; proc gplot data=lsm; title "1st order interaction between age and sleep"; where effect="age_sleep"; plot testscore2lsmean*sleep=age; run;quit; *filename output "sleep3.eps"; proc gplot; title "1st order interaction between gender and sleep"; where effect="gender_sleep"; plot testscore2lsmean*sleep=gender; run;quit; *filename output "sleep4.eps"; proc gplot; title "1st order interaction between age and gender"; where effect="age_gender"; plot testscore2lsmean*age=gender; run;