Skip to content
Prev 14866 / 20628 Next

Replicating analysis in asreml in lme4

This is very late, but I'm posting it for completeness.

Thanks to Aravind for the question and to Ben for the tip.  Here's how you
would use lme4/lsmeans:

   require(lme4)

  cov2sed <- function(x){
  # Convert var-cov matrix to SED matrix
  # sed[i,j] = sqrt( x[i,i] + x[j,j]- 2*x[i,j] )
  n <- nrow(x)
  vars <- diag(x)
  sed <- sqrt( matrix(vars, n, n, byrow=TRUE) +
                 matrix(vars, n, n, byrow=FALSE) - 2*x )
  diag(sed) <- 0
  return(sed)
  }

  # Same as asreml model m4
  m5 <- lmer(yield ~ 0 + gen + rep + (1|rep:block), dat)

  require(lsmeans)
  ls5 <- lsmeans(m5, "gen")
  con <- ls5 at linfct # contrast matrix
  sed5 <- cov2sed(con %*% vcov(m5) %*% t(con)) # SED between genotypes
  # Average variance of difference between genotypes
  mean(sed5[upper.tri(sed5)]^2) # .07010875 matches 'vblue' from asreml
On Sun, Jul 31, 2016 at 8:50 PM, Ben Bolker <bbolker at gmail.com> wrote:

            

  
    
Message-ID: <CAKFxdiTh28hBGgoBS-_-pOft2N7vCudESDaBy8P9UXoySjYCyA@mail.gmail.com>
In-Reply-To: <a9e6fc12-c3c0-f381-ca8e-aff6b08a0a3d@gmail.com>