# Making your PROC MIXED into REPEATED measures ANOVA

What if you wanted to turn your PROC MIXED into a repeated measures ANOVA using PROC GLM. Why would you want to do this? Well, I don’t know why you would want to do it but I wanted to do it because I wanted to demonstrate for my class that both give you the same fixed effects F value and significance.

I started out with the Statin dataset from the Cody and Smith textbook. In this data set, each subject has three records,one each for drugs A, B and C. To do a mixed model with subject as a random effect and drug as a fixed effect, you would code it as so. Remember to include both the subject variable and your fixed effect in the CLASS statement.

Proc mixed data = statin ;

class subj drug ;

model ldl = drug ;

random subj ;

To do a repeated measures ANOVA with PROC GLM you need three variables for each subject, not three records.

**First, create three data sets** for Drug A, Drug B and Drug C.

Data one two three ;

set statin ;

if drug = ‘A’ then output one ;

else if drug = ‘B’ then output two ;

else if drug = ‘C’ then output three ;

**Second, sort these datasets and as you read in each one, rename LDL** to a new name so that when you merge the datasets you have three different names. Yes, I really only needed to rename two of them, but I figured it was just neater this way.

proc sort data = one (rename= (ldl =ldla)) ;

by subj ;

proc sort data= two (rename = (ldl = ldlb)) ;

by subj ;

proc sort data=three (rename =(ldl = ldlc)) ;

by subj ;

**Third, merge the three datasets by subject.**

data mrg ;

merge one two three ;

by subj ;

Fourth, run your repeated measures ANOVA .

Your three times measuring LDL are the dependent . It seems weird to not have an independent on the other side of the equation, but that’s the way it is. In your REPEATED statement you give a name for the repeated variable and the number of levels. I used “drug” here to be consistent but actually, this could be any name at all. I could have used “frog” or “rutabaga” instead and it would have worked just as well.

proc glm data = mrg ;

model ldla ldlb ldlc = /nouni ;

repeated drug 3 (1 2 3) ;

run ;

Now you can be happy.

Very informative, thanks so much