Skip to content

Mixed Models providing a correlation structure.

5 messages · Simon Blomberg, Marcio, Kevin Wright

#
Hi folks, 
I was wondering how to run a mixed models approach to analyze a linear
regression with a user-defined covariance structure.

I have my model
y = xa +zb +e and 
b ~ N (0, C*sigma_square). (and a is a fixed effects)

I would like to provide R the C (variance-covariance) matrix 

I can easily provide an example, but at this point I am first trying to know
what is the best package the allows an unstructured covariance matrix.

I was trying the function lme in the package nlme but I didn't have success
in the defining the option "correlation"

Thanks


--
View this message in context: http://r.789695.n4.nabble.com/Mixed-Models-providing-a-correlation-structure-tp4635569.html
Sent from the R help mailing list archive at Nabble.com.
#
You need to look at the corSymm correlation class for nlme models.

Essentially, in your lme call, you need to do 
correlation=corSymm(mat[lower.tri(mat)], fixed=TRUE)

Where mat is your (symmetric) variance-covariance matrix. Remember to 
make sure that the rows and columns of mat are in the same order as in 
your data frame.

Cheers,

Simon.
On 06/07/12 11:43, Marcio wrote:

  
    
#
Aah. From your model description, you are more interested in the 
covariance structure of the random effects, rather than the residuals. 
You will then need to use the pdSymm class in the specification of the 
random effects. See Pinheiro and Bates pp 157-166.

Cheers,

Simon.
On 06/07/12 11:43, Marcio wrote:

  
    
5 days later
#
Dear Simon,
Thanks for the quick reply.
Unfortunately I don't have access to Pinheiro and Bates. I tried googling
the pdSymm and lme but I still cannot get the syntax right.

In my model, I only have 1 random factor with repetitions (groups) (e.g. 2
records per each level)
I am pasting bellow a very small example (2 records and 2 levels) which
demonstrates the error I am having.
The syntax of lme is obviously wrong, and any help would be appreciated:

Thanks
[,1] [,2]
[1,]  1.0  0.5
[2,]  0.5  1.0
Y              Random
1  0.24037680      1
2  0.03477704      1
3 -1.83389279      2
4 -0.84793117      2
Error in `Names<-.pdMat`(`*tmp*`, value = c("(Intercept)", "Random")) : 
  Length of names should be 1

--
View this message in context: http://r.789695.n4.nabble.com/Mixed-Models-providing-a-correlation-structure-tp4635569p4636141.html
Sent from the R help mailing list archive at Nabble.com.
#
Why did you use the 'lower.tri' syntax?

Does this work for you?

lme(Y~Random, data = DATA,
random = list(Random = pdSymm(CovM,~Random)))

Kevin
On Wed, Jul 11, 2012 at 9:27 AM, Marcio <mresende at ufl.edu> wrote: