[R] Function hatTrace in package lme4

Ben Bolker bbolker at gmail.com
Mon Oct 15 02:41:27 CEST 2012


ingaschwabe <ingaschwabe <at> gmail.com> writes:

> 
> Dear all, 
> 
> For a project I need to calculate the conditional AIC of a mixed effects
> model. 
> Luckily, I found a reference in the R help forum for a function to be used: 
> 
> CAIC <- function(model) { 
> 
>         sigma <- attr(VarCorr(model), 'sc') 
>         observed <- attr(model, 'y') 
>         predicted <- fitted(model) 
>         cond.loglik <- sum(dnorm(observed, predicted, sigma, log=TRUE)) 
> 
>         rho <- hatTrace(model) 
>         p <- length(fixef(model)) 
>         N <- nrow(attr(model, 'X')) 
>         K.corr <- N*(N-p-1)*(rho+1)/((N-p)*(N-p-2)) +
> N*(p+1)/((N-p)*(N-p-2)) 
> 
>         CAIC <- -2*cond.loglik + 2*K.corr 
> 
>         return(CAIC) 
> 
>         } 
> 
> Reference:
> http://r.789695.n4.nabble.com/Using-Conditional-AIC-with-lmer-td847899.html
> 
> However, in this function the function hatTrace of the lme4 package was used
> to calcuate rho 
> (line:  rho <- hatTrace(model) )
> 
> Sadly, R tells me that this function could not be found. A search on the
> internet revealed that this function was dropped out of the new package
> release of lme4. 
> 
> Can anyone help me with this? Is there an alternative function that gives me
> the same result as the hatTrace function? 

  You're not the first to ask about this.
  Unfortunately, this disappeared from lme4 when the internal
structures of the fitted models changed, and the computation is
not trivially easy to re-implement.  Searching with
library(sos)
findFn("{hat matrix} trace lme4") 
didn't turn up anything either.
  
  Details of the old calculation are available at

http://sourcecodebrowser.com/lme4/0.99875-9
/lmer_8c.html#ac7ea98c698b5bd4fe72bb06da1bba62a

 followups to r-sig-mixed-models <at> r-project.org

  (broken URL for gmane length limits)




More information about the R-help mailing list