How to extract R{i} from lme object?
--- Renaud Lancelot <renaud.lancelot at cirad.fr> wrote:
Hi Peng, Peng wrote: [snip]
I am still wondering whether there is a function
like
getVarCov(), so that I can get R var-cov matrix directly. I looked through the function list of
nlme,
but I cannot find. Peng
R>library(nlme)
R>data(Orthodont)
R>fm1 <- lme(distance ~ age, data = Orthodont) #
random is ~ age
R>
R>lapply(pdMatrix(fm1$modelStruct$reStruct), "*",
fm1$sigma^2)
$Subject
(Intercept) age
(Intercept) 5.414722 -0.32102403
age -0.321024 0.05126664
Comment: pdMatrix returns the list of var-cov
matrices of the random
effects (one matrix for each level of the possibly
multilevel
structure). For some computational reason, these
matrices are scaled by
the residuals variance: you have to multiply them by
the residuals variance.
If you really want a matrix (the above is a list
with one component),
you can do:
R>lapply(pdMatrix(fm1$modelStruct$reStruct), "*",
fm1$sigma^2)$Subject
(Intercept) age
(Intercept) 5.414722 -0.32102403
age -0.321024 0.05126664
Hi, Renaud, I think reStruct gives the structure of random effects, not the within group errors. And I happened to want the structure for the later one, especially when the within group errors are differently structured between groups. Regards, Peng ------------------------------ Peng Liu | Division of Statistics | Northern Illinois University | De Kalb, IL 60115, USA | E-mail: pliu at math.niu.edu | ------------------------------
Best, Renaud -- Dr Renaud Lancelot, vétérinaire CIRAD, Département Elevage et Médecine Vétérinaire (CIRAD-Emvt) Programme Productions Animales http://www.cirad.fr/fr/pg_recherche/page.php?id=14 ISRA-LNERV tel +221 832 49 02 BP 2057 Dakar-Hann fax +221 821 18 79 (CIRAD) Senegal e-mail renaud.lancelot at cirad.fr