I have an experiment designed as a split plot design with the whole plot as a RCBD. I am evaluating photosynthesis in plants growing under two CO2 concentrations (whole plots) and i am evaluating three genotypes. I took 5 photosynthesis measurements over 5 weeks.
Block = 2
CO2 conc = 2
Genotype = 3
n plants per treatment combination = 4
time =5
If i had just one time point I would analyze this as a RCBD split plot design. However I am confused in how to analyze this as repeated measures and obtaining comparisons. Which works better proc mixed or proc gimmix? Which code can I use? and when I input the data, should I add time as another factor or should I just add 5 columns for each measure?
Thanks!
Time should be another factor. Either MIXED or GLIMMIX will work. Here is a sample of GLIMMIX code.
proc glimmix data=yourdata;
class block co2 genotype time plantid;
model photo=co2|genotype|time/ddfm=kr2;
random intercept/subject=block; /* You may want interactions with block included here, depending on homogeneity of variance, etc.*/
random time/type=ar(1) subject=plantid(block*co2*genotype) residual;
lsmeans <what goes in here depends on the comparisons of interest. This might be better done with LSMESTIMATE>;
run;
Steve Denham
Thank you for your reply.
I still have some questions though.
Is this code fitting a split plot model?
To identify the error terms I had on paper something like this:
Block
CO2
block*co2 error1 (WP error)
geno
co2*geno
geno*block(co2) error2
time
block*time error3
time*trt
block*time*trt error4
time*geno
time*trt*geno
error
I understand that this is the model for a split plot design in time with whole plot in RCBD.
How do I specify the error term for each factor and interactions in the sas code? For example, test co2 with error1, test geno with error2, test time with error 3, and so on. Similarly, how can I determine the lsmeans given that there are different error terms?
Also time cannot be randomized because these are measurements taken during five weeks, should I ignore this or is there a way to include this in the model?
Thanks
You can force these error terms by changing the RANDOM statement to:
random intercept co2 geno*co2/subject=block:
The random residual specification for time will handle all errors correctly.
Do not be surprised (or alarmed) if the G matrix is found to be non-singular. This will almost certainly be due to one of the variance components being zero (REML estimate). GLIMMIX handles this correctly.
I may be mistaken, but I think my original code, and the code with the replaced RANDOM statement right up there, will give the same tests with the same degrees of freedom.
One of the great things about MIXED and GLIMMIX is that they correctly test effects against the proper "error" terms. Remember, these are NOT mean squares that are being compared, but are quadratic forms. While the skeleton ANOVA (to blatantly steal a term from Walt Stroup) is useful in making sure that you have correctly captured the design, it is somewhat misleading if you let it lead you to thinking of various "mean square error terms".
Steve Denham
Hi Steve,
Could you explain more about how the terms included in random statement depend on homogeneity of variance?
Could you also explain more or give related reference that why "there (the error terms in message 3) are NOT mean squares that are being compared, but are quadratic forms"?
Thanks, Xuelin.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.
Find more tutorials on the SAS Users YouTube channel.