I have a research experiment to analyze where I would like to know if there is an interaction between two experimental factors. Let's say that the experiment has 4 replications (rep) and 4 treatments (trt) and I will call the measured variable xyz. I use the following language:
proc glm;
class rep trt;
model xyz=rep|trt;
run;
The output will return dots in place of where p-values usually are. If I remove the interaction term from the model statement, I can get a p-value for rep and trt. Why does SAS not return p-values with more terms in the model? Is it a degrees of freedom issue?
There is no room for error in your model, or in other words, you used up all your DFs.
The terms are
Overall mean : 1 df
treatment means : 3 df
replicate means : 3 df
interaction treatment x replicate means : 3x3 = 9 df
Total : 16 df = nb of observations
Your model has enough terms to fit each observation exactly. Without an estimate of error, you cannot derive p-values.
PG
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!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.