[R-sig-ME] Replicating SAS results in R with unstructured covariance matrix

Viechtbauer Wolfgang (STAT) wolfgang.viechtbauer at maastrichtuniversity.nl
Thu Jan 16 18:58:00 CET 2014


For corSymm, 'form' needs to be:

"a one sided formula of the form ~ t, or ~ t | g, specifying a time covariate t and, optionally, a grouping factor g. A covariate for this correlation structure must be integer valued. When a grouping factor is present in form, the correlation structure is assumed to apply only to observations within the same grouping level; observations with different grouping levels are assumed to be uncorrelated. Defaults to ~ 1, which corresponds to using the order of the observations in the data as a covariate, and no groups."

So, yes, with corSymm(form = ~ 1 | SUBJECT), gls() will assume that the first measurement for a particular subject corresponds to time = 1. If that's not the case (and that can of course happen if rows with missing data have been deleted), then things get misalligned. Then you need the time covariate, so that things can be matched up properly.

Best,
Wolfgang

> -----Original Message-----
> From: Tony K.-T. [mailto:tkamth at gmail.com]
> Sent: Thursday, January 16, 2014 18:13
> To: Viechtbauer Wolfgang (STAT)
> Cc: r-sig-mixed-models at r-project.org; Charles Determan Jr
> Subject: Re: [R-sig-ME] Replicating SAS results in R with unstructured
> covariance matrix
> 
> Dear Wolfgang,
> 
> Thanks for your response.
> 
> This was an agonizing ordeal to say the least, but the inclusion of a
> "consecutive" integer time value seemed to have made the difference in my
> case, the results are replicating.  The only reasoning that I can come up
> with now is due to missing repeated measurement for some of the subjects,
> had we left it to just ... correlation = corSymm(form = ~ 1 | SUBJECT)...,
> the package risks mixing up the order in the covariance matrix in
> different subjects, the specification of weights= varIdent(form = ~ 1 |
> TIME) is not enough.   (e.g. assign TIME 5 measurements to TIME 1 if TIME
> 5 is the very first recording of the Subject j).   Correct me if you think
> I am wrong because I would assume that the package would handle this.
> 
> I will make some test on this later on.
> 
> Thank you for your help,
> 
> Tony
> 
> On Thu, Jan 16, 2014 at 12:14 AM, Viechtbauer Wolfgang (STAT)
> <wolfgang.viechtbauer at maastrichtuniversity.nl> wrote:
> It's been a while since I used SAS for mixed-effects model, but I think
> the model:
> 
> PROC MIXED data=Comb method=reml;
>   CLASS FAC1 TIME SUBJECT FAC2;
>   MODEL RESPONSE = BIAS FAC2 FAC1 TIME TIME*FAC1 / ddfm=Residual solution;
>   REPEATED TIME / subject=SUBJECT type=un;
> RUN;
> can be fit with gls() using:
> 
> gls(RESPONSE ~ BIAS + factor(FAC2) + factor(TIME)* factor(FAC1),
> correlation = corSymm(form = ~ TIME | SUBJECT), weights = varIdent(form =
> ~ 1 | TIME), data=Comb)
> 
> TIME needs to be integer valued. SUBJECT should be a factor. ddfm=Residual
> implies that the fixed effects are tested with t-tests using df = n-
> rank(X) (where X is the model matrix), while gls() uses the normal
> distribution to compute those p-values. But this is a minor issue, except
> in those pesky borderline cases, but then again neither that t-
> distribution nor that normal distribution is exactly right and one should
> withhold judgement anyway.
> 
> It would be nice if you could provide feedback whether the syntax above
> did the trick.
> 
> Best,
> Wolfgang
> 
> --
> Wolfgang Viechtbauer, Ph.D., Statistician
> Department of Psychiatry and Psychology
> School for Mental Health and Neuroscience
> Faculty of Health, Medicine, and Life Sciences
> Maastricht University, P.O. Box 616 (VIJV1)
> 6200 MD Maastricht, The Netherlands
> +31 (43) 388-4170 | http://www.wvbauer.com
> 
> 
> > -----Original Message-----
> > From: r-sig-mixed-models-bounces at r-project.org [mailto:r-sig-mixed-
> models-
> > bounces at r-project.org] On Behalf Of Charles Determan Jr
> > Sent: Wednesday, January 15, 2014 21:27
> > To: Tony K.-T.
> > Cc: r-sig-mixed-models at r-project.org
> > Subject: Re: [R-sig-ME] Replicating SAS results in R with unstructured
> > covariance matrix
> >
> > Hi Tony,
> >
> > Unfortunately I never did solve this problem.  I experimented endlessly
> > with all sorts of combinations of correlation structures available with
> > lme.  Unless someone reads this will a wonderful solution to replicate
> the
> > unstructure structure analysis from SAS I can't help.  The compound
> > symmetry correlation structure was the only that really matched up well.
> > I'm sorry I couldn't be more help.  I ended up moving on to using other
> > multivariate analyses like PLSDA and Random Forest because of the
> > seemingly
> > incompatible analyses.  I wanted to make sure anyone could replicate my
> > analysis independent of the statistical program.  I poke at it
> > occasionally
> > but still nothing for the unstructured analysis.  If I ever do I will be
> > sure to post it.
> >
> > Wish you the best in you analysis,
> > Charles



More information about the R-sig-mixed-models mailing list