[R] mixed model fitting between R and SAS

array chip arrayprofile at yahoo.com
Tue Aug 9 00:49:50 CEST 2011


Dear Thierry,

Thanks a lot for pointing me to the right direction! I still have some questions, really appreciate if you could provide any help:


Is there a relationship between the nested mixed model that I used vs. the model that you gave (using biop location as random slope of pid), i.e. 


lme(y~age + time * trt, random=~1|pid/biopsy.site, data = test, correlation=corAR1())

vs.
lme(y~age + time * trt, random=~0  + biopsy.site|pid, data = test,  correlation=corAR1())

In my nested mixed model, a variance of pid and a variance of biopsy.site within pid will be estimated. In your mixed model, there is no variance estimated at the pid level , instead variance for each biopsy.site is given. I thought the statistical model was always the same for both mixed models:

y_ijk=fixed_effect + b_i + b_ij + e_ijk

where b_i is the random effect for pid, and v_ij is the random effect for biopsy.site within pid. I thought that the difference is in my nested mixed model, b_ij is independent of each other and has the same variance, whereas in your mixed model, b_ij is modeled by the pdClasses() chosen. If my thought was correct, then my model should be the same as 


lme(y~age + time * trt, random=list(pid=pdIdent(~0  + biopsy.site)), data = test,  correlation=corAR1())

But they are not the same. What did I misunderstand here?

Many thanks

John




----- Original Message -----
From: "ONKELINX, Thierry" <Thierry.ONKELINX at inbo.be>
To: array chip <arrayprofile at yahoo.com>; "r-sig-mixed-models at r-project.org" <r-sig-mixed-models at r-project.org>
Cc: 
Sent: Monday, August 8, 2011 1:19 AM
Subject: RE: [R] mixed model fitting between R and SAS

Please don't cross-post.

- corAR1() models the correlation between the residuals of the two time points. 
- if you want a specific correlation structure for biopsy locations the you must use on of the pdClasses() and use biopsy location as random slope of pid rather than random effect nested in pid.

#basic structure = positive definitive symmetrical variance/covariance matrix
lme(y~age + time * trt, random=~0  + biopsy.site|pid, data = test,  correlation=corAR1(~time))
#no correlation between biopsy location and different variance
lme(y~age + time * trt, random=list(pid  = pdDiag(~0  + biopsy.site), data = test,  correlation=corAR1(~time))
#no correlation between biopsy location and equal variance
lme(y~age + time * trt, random=list(pid  = pdIdent(~0  + biopsy.site), data = test,  correlation=corAR1(~time))

Note that since you have only two biopsy locations there will be no difference between pdSymm (the default) and pdCompSymm

Best regards,

Thierry
----------------------------------------------------------------------------
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek
team Biometrie & Kwaliteitszorg
Gaverstraat 4
9500 Geraardsbergen
Belgium

Research Institute for Nature and Forest
team Biometrics & Quality Assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium

tel. + 32 54/436 185
Thierry.Onkelinx at inbo.be
www.inbo.be

To call in the statistician after the experiment is done may be no more than asking him to perform a post-mortem examination: he may be able to say what the experiment died of.
~ Sir Ronald Aylmer Fisher

The plural of anecdote is not data.
~ Roger Brinner

The combination of some data and an aching desire for an answer does not ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey

> -----Oorspronkelijk bericht-----
> Van: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
> Namens array chip
> Verzonden: maandag 8 augustus 2011 8:48
> Aan: r-sig-mixed-models at r-project.org
> CC: r-help
> Onderwerp: [R] mixed model fitting between R and SAS
> 
> Hi al,
> 
> I have a dataset (see attached), which basically involves 4 treatments for a
> chemotherapy drug. Samples were taken from 2 biopsy locations, and biopsy
> were taken at 2 time points. So each subject has 4 data points (from 2 biopsy
> locations and 2 time points). The objective is to study treatment difference.
> 
> I used lme to fit a mixed model that uses "biopsy.site nested within pid" as a
> random term, and used corAR1() as the correlation structure for between the 2
> time points:
> 
> 
> library(nlme)
> 
> test<-read.table("test.txt",sep='\t',header=T,row.names=1)
> fit<-lme(y~age + time * trt, random=~1|pid/biopsy.site, data = test,
> correlation=corAR1())
> 
> First, by above model specification, corAR1() is used for the correlation between
> the 2 time points; what is the correlation structure implicitly used for between
> biopsy locations? How do I specify a particular correlation structure for between
> biopsy locations in this situation?
> 
> Second, does anyone know how to write the above mixed model in SAS? One of
> my colleagues wrote the following, but it gave me different results:
> 
> proc mixed data=test;
> 
> class time trt pid biopsysite;
> model y=age time trt time*trt;
> random biopsysite
> repeated pid / type=ar(1)
> run;
> 
> Is there anyone familiar with SAS and know if the above SAS code does what the
> R code does?
> 
> Many thanks
> 
> John




More information about the R-help mailing list