[R-sig-ME] equivalent of lme4::rePCA() for lme models

Phillip Alday me @end|ng |rom ph||||p@|d@y@com
Tue Feb 2 14:00:42 CET 2021


No, but you can implement it yourself; it's literally just the PCA/SVD
of the random-effects matrices:

> lme4:::rePCA.merMod
function (x)
{
    chfs <- getME(x, "Tlist")
    nms <- names(chfs)
    unms <- unique(nms)
    names(unms) <- unms
    svals <- function(m) { # this is applied each of the RE matrices
        vv <- svd(m, nv = 0L)
        names(vv) <- c("sdev", "rotation")
        vv$center <- FALSE
        vv$scale <- FALSE
        class(vv) <- "prcomp"
        vv
    }
    structure(lapply(unms, function(m)
svals(Matrix::bdiag(chfs[which(nms ==
        m)]))), class = "prcomplist")
}

You'll have to look at the nlme documentation to see how those are
stored internally. I don't remember off the top of my head.

Phillip

On 2/2/21 4:55 am, Simon Harmel wrote:
> Dear All,
> 
> I was wondering if there is any `lme4::rePCA()` equivalent for
> `nlme::lme()` models (a reproducible example is below)?
> 
> --Thanks, Simon
> 
> library(nlme)
> 
> dat <- read.csv('https://raw.githubusercontent.com/hkil/m/master/mv.l.csv')
> 
> m22 <- lme(value ~0 + name, random = ~0 + name| Student, data = dat,
>           correlation = corSymm(), weights = varIdent(form = ~1|name))
> 
> 	[[alternative HTML version deleted]]
> 
> _______________________________________________
> R-sig-mixed-models using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>



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