| Code | Comments |
|---|---|
| data one;
options nodate nonumber ps=2000; infile 'K:\wcourses\st732\dental.dat'; input obs child age dist gender; proc glm; class age gender child; model dist=gender child(gender) age age*gender; random child(gender) / test; |
title "Proc GLM - Split Plot Analysis of Dental Data"; |
| data two; title "Dental via Repeated Statement"; infile 'K:\srcis\st732\dental.dat2.txt' firstobs=2; input child Age8 Age10 Age12 Age14 gender; proc glm;class gender; model age8 age10 age12 age14=gender /nouni; repeated age 4 (8 10 12 14) polynomial/ summary printm; |
title "Proc GLM with the Repeated Statement;" Note that each line of data has 4 values |
| data two; title "Dental via Repeated Statement"; infile 'K:\srcis\st732\dental.dat2.txt' firstobs=2; input child Age8 Age10 Age12 Age14 gender; proc glm;class gender; model age8 age10 age12 age14=gender/nouni; manova h=gender; |
title "Manova of Dental data"; Note that each line of data has 4 values |
| data one; infile 'K:\wcourses\st732\dental.dat'; input obs child age dist gender; proc mixed;class gender child age; model dist=gender age gender*age; repeated / type=cs subject=child r rcorr; * repeated / type=cs subject=child(gender) r rcorr; |
title "Proc Mixed - Split Plot Analysis of Dental Data";
use "child(gender)" if child id's are not unique |
| data one; infile 'K:\wcourses\st732\dental.dat'; input obs child age dist gender; proc mixed;class gender child age; model dist=gender age gender*age; random intercept/subject=child(gender); * random child(gender); |
title "Proc Mixed - Split Plot - Random Effect Version";
Random effects version of the split plot analysis using |
| data one; infile 'K:\wcourses\st732\dental.dat'; input obs child age dist gender; proc mixed;class gender child age; model dist=gender age gender*age; random intercept/subject=child(gender); repeated / type=ar(1) subject=child(gender) group=gender r rcorr=1,12; |
title "Proc Mixed - Split Plot - Random Effect Version";
Random effects version with additional "repeated" |
| data one; infile 'K:\wcourses\st732\dental.dat'; input obs child age dist gender; proc mixed;class gender child; model dist=gender gender*age / noint solution; * model dist=gender age gender*age /solution; repeated / type=cs subject=child r rcorr; * repeated / type=csh group=gender subject=child r rcorr; |
title "Linear in Age, explicit slopes";
* 2nd model gives "difference parameterization" |
| data one; infile 'K:\wcourses\st732\dental.dat'; input obs child age dist gender; proc mixed;class gender child; model dist=gender gender*age/ noint solution; random intercept age / type=un subject=child g gcorr v=1,17 vcorr=1,17; repeated / group=gender subject=child r=1,17 rcorr=1,17; estimate 'diff in mean slope' gender*age 1 -1; contrast 'overall gender diff' gender 1 -1, gender*age 1 -1; |
title "Random Intercept and Slope for Dental Data";
repeated with group=gender gives different |
|
data hips; infile 'K:\srcis\st732\hips\hips.dat.txt'; input patient gender age week h; week2=week**2; time=week; proc mixed data=hips; class patient time gender; model h = gender gender*week gender*week2/ noint solution corrb; repeated time / type =ar(1) subject=patient rcorr; contrast 'equal slopes' gender 0 0 gender*week 1 -1 gender*week2 0 0; contrast 'equal quad slopes' gender 0 0 gender*week 0 0 gender*week2 1 -1; |
title "Hips Data with equal spacing but missing data"; |
| data ultra; infile 'K:\srcis\st732\ultra\ultra.dat.txt'; input subject tmp ufr center; * rescale the pressures; tmp=tmp/100; proc mixed data=ultra;class subject center; model ufr = center center*tmp / noint solution covb; random intercept tmp / type=un subject=subject g gcorr v vcorr; * repeated / subject=subject r rcorr; contrast '1 vs 2' center*tmp 1 -1 0; contrast '1 vs 3' center*tmp 1 0 -1; contrast '2 vs 3' center*tmp 0 1 -1; |
title "Ultra Data with random intercept and slope";
* repeated statement not needed, diagonal |
| data ultra; infile 'K:\srcis\st732\ultra\ultra.dat.txt'; input subject tmp ufr center; * rescale the pressures; tmp=tmp/100; tmp2=tmp**2; proc mixed data=ultra;class subject center; model ufr = center center*tmp center*tmp2 / noint solution; repeated / type = sp(pow)(tmp) subject=subject r rcorr; |
title "Ultra Data with ar structure with unequal spacing"; |
| data pdat; infile 'K:\wcourses\st732\press.dat'; input id time press weight age prev diet; prevdiet="00"; if prev=0 and diet=1 then prevdiet="01"; if prev=1 and diet=0 then prevdiet="10"; if prev=1 and diet=1 then prevdiet="11"; proc mixed data=pdat;class id prevdiet; model press = age prev time*prevdiet / solution ddfm=kr; random intercept time / type=un subject=id g gcorr v vcorr; contrast 'slope diff. prev' time*prevdiet 1 1 -1 -1; contrast 'slope diff. diet' time*prevdiet 1 -1 1 -1; |
Makes one-way factor out of 2 by 2 factorial. All 4 slopes are printed, noint option not required. ddfm=kr is the usual preferred option for F approximations. measurements are at different time values for each person. |