[R] cross-classified random factors in lme without blocking

Sundar Dorai-Raj sundar.dorai-raj at pdf.com
Sat Nov 15 19:29:26 CET 2003

Gordon Smyth wrote:

> Many thanks for help from Peter Dalgaard, Douglas Bates and Bill 
> Venables. As a result of their help, here is a working example of using 
> lme to fit an additive random effects model. The model here is 
> effectively y~a+b with a and b random:
> y <- rnorm(12)
> a <- gl(4,1,12)
> b <- gl(3,4,12)
> u <- gl(1,1,12)
> library(nlme)
> fm <- lme(y~1,random=list(u=pdBlocked(list(pdIdent(~a-1),pdIdent(~b-1)))))
> summary(fm)
> I still can't see though how to extract the three variance components 
> (for a and b and for the residual) from the fitted object 'fm'.
> Thanks
> Gordon

Would this work for you? It still needs some parsing to extract sigma_a 
and sigma_b, but that should be simple.

v <- as.matrix(fm$modelStruct$reStruct$u)
c(sqrt(diag(v)), Residual = 1) * fm$sigma


More information about the R-help mailing list