I am running a mixed model for a small sample with 3 groups - 10 in each group. I am interested in whether the outcome variable (continuous) mean is significantly different by group. I have longitudinal data on 3 timepoints. I also have data for right and left eye. How should i model my random effects with such a small sample? I am getting a convergence error with the below code:
proc mixed data = dat;
class subject group eye;
model y= group /solution;
random group /sub = subject(visit eye) type=un;
lsmeans group / pdiff adjust=tukey;
run;
using type=un may often fail to converge because of the large number of parameters being estimated. Have you tried eg compound symmetry or another structure. My feeling is that in an analysis plan they will often prespecify type=un but will note that something else will be tried if convergence isn't achieved
is one of the timepoints your baseline, or you're saying you have 3 post-baseline timepoints?
edit: why 'group' in the random statement? this example may help, they analyse eye data using proc mixed: http://www2.sas.com/proceedings/sugi29/188-29.pdf
looks like you are fitting a random coefficients model. They fit a random coefficients model here and discuss the note you are seeing in the log: https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_mixed_sect0... ie
Estimated G matrix is not positive definite.
did the patients receive a different treatment in each eye so that they act as their own control? if not, you could eg take the average for both eyes within a patient and simplify your dataset. That would make the analysis and interpretation simpler
They didnt receive a different treatment in each eye. I thought about doing that, but due to the small sample size, I thought it would be better to model both eyes as nested within ID. I read that the output for this would be interpreted as the average between each eye. Is that correct?
Does the response change over time? If so, then time needs to be incorporated as a fixed effects factor in your MODEL statement.
If the response is a function of time, does the response have a linear relationship with time? If you have not done so already, plot response versus time for each subject in each group to visually assess the nature of the relationship. With only 3 timepoints for each subject, you don't have many options other than linearity--but unfortunately lack of options does not mean that the linearity assumption is valid. As @pau13rown notes, allowing regression parameters (like slope) to vary among subjects (i.e., a random slopes model) is a possible (but not necessarily required) approach for this analysis. The plot would provide input into whether slopes vary appreciably.
If both eyes received the same treatment (in other words, if each subject was assigned to only one group), then the experimental unit for the group factor is a subject; eyes are essentially subsamples and should not be incorporated in the model as if they are independent replications. You can use a dataset with observations at the eye-level; the correct model specification will implicitly average over the two eyes. Or as @pau13rown notes, you could use the mean over the two eyes as the response in a simpler model. If you have data for both eyes for all subjects, the test for group effect will be the same with both approaches; there is no sample size advantage to one approach or the other.
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.